The world runs on software, thankfully for me and my career

I manage a team of software engineers and before that I was one of those software engineers. Typically the size of a program is measured in Lines of Code (LOC). Windows 7 is estimated to in excess of 50 million lines of code. This is likely one of the bigger programs but what most people don’t realize is there are microprocessors and software everywhere. Ignoring the common things like your computer and smartphone/tablets, there is a microprocessor in many common things like modern appliances. An automobile can have 20-30 modules all with microprocessors and software from the radio to the engine controller. There are many unseen modules busily doing their jobs without most of our knowledge or concern.

For those in the embedded software industry, I believe the conventional wisdom is that things like fighter jets or passengers jets have more lines of code than an automobile. Everyone of us in the automotive industry thought this to be true.  The example given to us by a supplier was to compare military jets with passengers jets with Mercedes S-Class (arguably one of the more expensive cars with the most electronics).

The data below  is from

Air Force F-22 Raptor: 1.7 million
F-35 Joint Strike Fighter: 5.7 million
Boeing’s 787 Dreamliner: 6.5 million
Typical Mercedes/BMW/etc: ~100 million

Not only does this go against the conventional wisdom but its not even close enough to say that is in the margin for error. This probably only makes sense to somebody in the industry but it is an interesting bit of trivia. I’ve heard that subtracting the infotainment system from the high end vehicle it is closer to 80 million which is still more than 12 times the lines of code. The development cycle and level of complexity of automobiles is increasing at a far faster rate than the aerospace industry. I guess this makes sense since new car models come out every year while new fighter jets might only be developed every 10-20 years with similar timelines for the passenger jet industry. One of the other reasons might be that there are many more car companies than there are airline manufacturers especially military grade suppliers.

Categories: Software | Leave a comment

Making a lasting impression on young engineers…

I’ve been working in the automotive electronics industry for 19+ years (I guess this means I’m officially middle aged or old depending on who you ask). Most of that time I’ve been working in software, either developing or managing a team of software engineers. Over those years, I’ve worked with countless engineers and many good co-ops/interns. More than 5 years ago I made what seemed like an innocuous comment to an engineering intern. I told her that software is usually blamed for all problems that occur in the module even if it is a hardware issue. I then told her not to let it bother her and just investigate the problem. As often happens with these types of investigations, the problem is in hardware but we end up doing a software work around because it is cheaper. Software is guilty until till proven innocent. I didn’t think much about it at the time, it was just one of those things I tell young engineers to keep them from being discouraged when they get blamed for things that are out of their control.

Since that comment, we both left that company and then ended up working for the same company again. Last Friday just as we were starting our bi-weekly knowledge sharing (a meeting where we have people who are “experts” on a topic that others may not know much about), she mentioned that she took that statement to heart and still lives by it to this day. I was surprised and thrilled and humbled that I had made such an impression on a young engineer. I have worked with many new engineers in my career and if I would have realized how much some of my off-hand remarks were absorbed I might be more careful with what I say. On the other hand, it might be good that I don’t think about or I might try too hard and say something really dumb, or at least more dumb than usual.

Categories: Software | Leave a comment

Managing Humans: Biting And Humorous Tales Of A Software Engineering Manager by Michael Loopt

Managing Humans: Biting and Humorous Tales of a Software Engineering Manager by Michael Loopt is like a study in the psychology of the workplace. This might make the book sound uninteresting but it was far from reality (as long as you work in software). Chapter 1 is “Don’t Be A Prick”, well this really captures your attention and sets the tone for the rest of the book. I was hooked. I wish I had read this book 3 years ago when I started out an a manager. I’ve been feeling my way around with my primary guiding principle “do the things I always wanted my past managers to do for me, but usually didn’t”.

I love the author’s definition of what a good manager is: “My definition of a great manager is someone with whom you can make a connection no matter where you sit in the organization chart.” This and listening better are my personal goals for 2011.

“Mangers are Not Evil” – This chapter should be read by the employees just so they get an idea that we managers to just sit around all day finding assignments for our teams. It seems like half the time we sit in meetings trying our best to keep our team out of the meetings so they can get “real work”  done.

NADD – I love this. Nerd Attention Deficit Disorder. I’m afflicted with this, even though I have never heard of it before. I rarely have less than 5 tabs in my browser open with music or a podcast in my ears while at the office or the TV on while at home. If you’ve read Peopleware, they talk about 15 minutes to make the “Context Switch” from an interruption back to developing software. I’ve worked with people like this, but I’m usually able to get back into things much quicker than that. I believe this is part of NADD.

Saying No – The management pixies are hard to avoid. Its so easy to put on that hat and say because I’m the manager, that’s why. Have to try hard not to do this and trust your employees to do the right thing. But there are those times where you have to make a decision or pass a decision down from upper management (unless you are CEO, you can always blame upper management).

The Soak – “Having no clue where to start a new project and wanting to rip someone apart in e-mail share one important characteristic. The best move in both cases is to start with a good long soak” . This is why they make browser extensions to prevent you from sending that drunken email or the flame email. Taking a break before sending that email or starting that new project is definitely a good recommendation. I’ve solved some of my most difficult problems while sleeping. There has been cases where I’ve been frustrated with a problem and decided to call it a day, and the solution hit me when I was 5 minutes from the office. Sometimes I go back and continue to work on the problem.

Status Reports 2.0 – Unfortunately, the necessary evil. Upper management needs to know what is going on with the entire organization. Luckily my boss sends his direct reports a copy of the report he sends to his boss so we at least get to see what is going on within the rest of our department. I wish my company had the open policy of putting these reports into a wiki or at least a blog but my company is still too secretive. I know I should take the initiative and put my data up there but I’m not sure how that would go over.

All in all this was a good book and fun read, definitely recommend it to everyone.

Categories: Books, Software | 1 Comment

Create a free website or blog at