Embedded Development with Ruby?!

Posted by benoit on 06 Dec 2007 | Tagged as: Testing, embedded, ramblings

If you’re like me, you’ll be thinking “What has he been smoking?!”

You can blame Timo for launching me down this path. He pointed to Atomic Object’s blog entries dealing with Embedded development.
The latest entry: a presentation at RubyConf 2007, on how they used Ruby with their embedded project, a PIC based system no less.

Ruby you say!?!

I did not say in their embedded platform.

They use it to drive their unit testing… Unit Testing?! In embedded?
Yes, Ruby driving unit testing for an embedded PIC project.

It almost makes me want to move to Western Michigan…almost.

Seriously, go take a look. This gives you a glimpse of what is possible with embedded systems. Let’s all leave the printf era behind… Go learn about unit testing, agile development, refactoring. Please.

Toiling in the shadows

Posted by benoit on 06 Dec 2007 | Tagged as: ramblings

I got my engineering degree in Canada. Upon graduation, most students participate in the Iron Ring ceremony, where they receive a ring representing an engineer’s obligation to protect the public. You can spot a Canadian engineer by the ring worn on their pinkie. Part of the ceremony refers to Rudyard Kipling’s poem The Sons of Martha, forever toiling in obscurity so that others can enjoy a carefree life. A more contemporary interpretation would be the Morlocks in the time machine (the 1960 movie is a nice rendition of the H.G. Wells novel). I don’t fancy myself a cannibalistic cave dwelling troglodyte. Others might disagree.

People working in the embedded field are very much like the Sons of Martha (or the Morlocks) working in the shadows so the world at large can be a better place. embedded systems are, by their very nature, invisible.
The programming world is far from homogeneous. It has many tribes and subcultures. Some of the more obvious include Open Source, Linux, Microsoft, methodologists, academics and a number or language oriented tribes.

Each of the tribes have their rock stars. Open Source has Richard Stallman and Eric S. Raymond. Linux obviously has Linus. Microsoft (the ecosystem, not the company) has many figures with a high profile: Scott Hanselman, Carl Franklin & Richard Campbell (via DNR), BradA, ScottGu and plenty of others. Methodologists such as Kent Beck, Booch and Jackobson all left a mark. The ultimate academic Rock Star is of course Donald Knuth.

However, the embedded world does not seem to have the same figures. Jack Ganssle and Jack Crenshaw are probably the two most visible, due to their longstanding association with Embedded Systems Journal. This is very strange, as embedded software programming is a very large segment of the programming world. This reality is also reflected in the lack of on-line blogs targetting the embedded world. I dont believe the fragmented nature of the embedded world is entirely responsible for this state of affairs.

Is it that embedded programmers are more introverted than the rest? Are we simply the Morlocks to the larger community’s Elois? Am I simply blind and can’t see our own Rock Stars? What do you think, who are the embedded rock stars?

I don’t feel like one of the top 20%…

Posted by benoit on 02 Dec 2007 | Tagged as: career, ramblings

Jeff Atwood at Coding Horror recently talked about two types of programmers (triggered by Ben Collins-Sussman’s source control comments). The top 20% which are interested in professional development, and the remaining 80% which are more like 9-5 clock workers, and are not doing the magazines/blogs/conferences thing. As Jeff clarified, here’s not dissing the 80%, just pointing out that they are unreachable by conventional means.

By Jeff’s definition, I’m one of the Alpha 20% programmer by virtue of the fact that I’m a compulsive book buyer and avid blog reader. Maybe I’m just feeling insecure today, but I don’t feel like a top 20% guy. Let’s look at the competition who else would be in here:

      All the deep thinkers out there who write about methodologies while bringing home the bacon (Kent Beck, Mike Cohn, etc…)
      All the technical authors who end up being paid a pittance for books with a limited audience.

You will notice that all of the above, by virtue of their writing, could be classified as “communicators”. Clearly the exception when it comes to the programming & engineering world. But what about the “silent majority”, who are not so talkative:

Dang! They all seem to have blogs…maybe that’s the new 20%, you have to have a blog?
With all those Alpha programmers out there, I can’t help but feel intimidated. Maybe I’m just at the shallow end of the deep pool.

You want to be a consultant? Do this first…

Posted by benoit on 29 Nov 2007 | Tagged as: career

I fell into consulting totally by accident, and I don’t think this is unusual. You happen to have some specialized knowledge or an area of expertise. Someone learns of this and asks for your help. Voila! You’re now a consultant. Now what? If you are serious about doing consulting, regardless if it’s on a full time or part time bases, the first thing I would consider doing if forming a legal entity (i.e. a company). I can hear it now…Woah! Dude you’re crazy! I don’t have thousands of dollars to spend to create a company! What’s the point of that?

Professional Image
Companies are much more likely to want to deal with “Embedded Enterprise” than with Joe Consultant. Yes, it’s superficial, but sometimes superficial works in your favor. Joe might be paid $40-$50/hour, he’s a hired-gun after all. Embedded Enterprise would clearly no consider those rates. All the corporate overhead…

Legal Liability
Let’s face it, we live in a litigious society. Business relations sometime sour. You might get sued. If you are not incorporated, you are on the hook for defending yourself which might put a mighty crimp on your financial resources. If a legal entity is sued and it runs out of funds, well…it can always declare bankruptcy. At worst, you loose your investment in the business. Beats loosing your house.

It’s Cheap!
It cost me less than $500 to create a Limited Liability Corporation (LLC). Your mileage may vary, but in my book, that’s cheap insurance against trouble. Note that with a sole owner LLC, the company’s income or loss is reported directly on your taxes. There really is not a huge accounting burden. Follow a few simple rules (and use simple accounting software) and the burden is minimal.

Name Protection
If you incorporate, then the corporation name is registered with the state. No one else can use it (in the state). I wouldn’t go calling myself Wal-Mart Engineering (that’s begging for trouble…)

Less trouble with the bureaucracy…
A few years back, we used a consultant to perform some work. They were located remotely, but they had a computer that was provided by the company. Some state agency was leaning towards declaring this consultant an “employee” (there was also some requirement about how much supervision an employee received vs. a consultant…bureaucracy at it’s finest) which means that we would have been liable for taxes, etc… We were able to present the case that they were a consultant, but this left an impression on me. If you are incorporated, there is NO doubt that you can’t be an employee, no matter how much supervision you receive.

Those are just some of the reasons I can think of to incorporate.
Beside, doesn’t CEO sound better than engineer?

P.S. I’m not a lawyer (although I do know some) so go consult your own before you take my advice. I know a thing or two about programming and embedded systems, nothing about the law.

Beware of managers masquerading as programmers

Posted by benoit on 28 Nov 2007 | Tagged as: ramblings

Microsoft’s Visual Basic spawned an interesting phenomenon. It has made programming accessible to the masses and possible to create decent looking applications fairly easily. But it enabled “The manager masquerading as a programmer”. For the first time in history, managers obtained the power to use computers and create applications to fill some particular need they have. No longer were they beholden to the IT/programmers. They can now scratch their itch (to quote Eric Raymond). Unfortunately, I have seen this phenomenon cause problems. In this case, there is some truth to mother’s admonition to not scratch the itch, it will make it worse.

The manager has a good idea for a new product and being VB savvy, proceeds to develop the product. It becomes a viable piece of software and is moderately successful. However, little thought has originally been put into the structure of the application. This code now must be maintained and extended. In small shops, the manager (in addition to managing) now assumes both the product management role and the development role. Being human, this can lead to a myopic view of the product, with no back and forth between development & product management. This tend to lead to piecemeal features, now much forethought to product growth or architectural considerations. It also distracts the manager and prevents him from excelling in the managerial role.

Another problem can occur when the manager has a need for software to meet some internal business requirements, tracking employee time for example. Being diligent, he looks around at available commercial software, but nothing out there meets his exact needs. Being empowered by VB, he decides to roll his own software. This results in a product filled with quirks and unfinished features. It again distracts the managers from his real job.

In my experience, this seems to be more prevalent in small companies, where the manager’s job is often loosely defined and where a “time is less expensive than money” attitude sometimes prevail. It also tend to afflict managers that come from a more technical background.

Is this something you have run into or do I simply have a very skewed sample set?

« Prev - Next »