Do you have a problem in your life as an embedded systems engineer? Our esteemed columnist counsels you in your time of need.
I just graduated from college with an EE degree and have managed to snag a job in the embedded industry. I bought a new car and one of those big-screen TVs and am planning a vacation in Monaco. My dad is really furious with me and wants me to stuff all the cash in the bank rather than have a good time. Now he's talking about kicking me out of the house. After four years of college, don't I deserve all of the goodies?
Still Living Off The Hog
If you think college was stressful, life is going to hit you over the head with a baseball bat. Things will be far more difficultand far more rewarding than mastering differential equations or acing a final exam.
Your dad is right. Most stress in life comes from financial problems; money issues tear at marriages and lead to ulcers and early aging.
Emby has two words for you to take to heart: Compound Interest. It's the most constant and powerful financial tool you have, unless you were lucky enough to be born with a silver spoon in your mouth.
The stock market traditionally returns about 12% per year over the long-term. Sure, lately the market is the pits. But it will turn up; this slump will not last forever. Investing over the course of years is a sure way to achieve wealth and independence.
Do the math: you're probably making $50,000 or so, with few responsibilities or expenses. Invest $10,000 per year. The power of compound interest means you'll be a millionaire in two decades. Retire at 40 or so. That age probably sounds ancient to you right now (Emby fondly recalls her wild partying life when she was 40), but some of your high school buddies are already playing this game. They'll put in their 20 in the military and retire at 38 with a modest pension.
Buy a house via a 15-year mortgage. Interest rates are so low today you'd be a fool not to lock into a fixed-rate loan. When you retire the house will be yours, you'll have that million in the bank and a rent-free place to live. Sure, the authorities will take their share in property taxes, but that's a pittance compared to the massive mortgages most people assume and never manage to pay off.
Resist the temptation to “move up”; when the realities of life demand a change in housing, buy modestly and use the equity you've accumulated with the short-term loan wisely. As time goes by and your wealth increases, it's natural to consider buying an expensive home. But that puts the power of compound interest in the bankers' hands, not yours. Those interest payments drain your coffers and do nothing positive for you.
Avoid home equity loans. They're the quickest route to losing the capital you've built in the house.
Consume little, take pleasure in people and ideas, not shopping and things. When marriage and children arrive, continue to make wise financial decisions. Stick to a long-term plan.
Money in the bank gives you options and freedom; massive credit card balances ensures you'll be a wage slave forever. Design your life; don't just drift towards old age.
My boss is a good guy and does his best to help us create reasonable schedules. But the Big Boss could care less about engineering realities. He'll make any promise needed to placate a customer. We're left saddled with impossible schedules. What can I do?
Sick of Schedules
Franklynothing. Live with it. Big Bosses are intrinsically tied to customers and almost always view the engineering team as just an expense center used to satisfy his promises. Emby has worked with many Big Bosses over the years. Most claim to understand the realities of development, but immediately lose interest in scheduling problems when seduced by potential profits from the next impossible dream.
It's true that small companies can have pretty functional relationships between the workers and the chiefs. But when projects get big, when many managerial layers divide the decision-makers and the doers, the interests of these groups diverge.
Sometimes that's healthy. Remember the Apollo program? JFK committed the nation to an arbitrary and capricious schedule to put Americans on the moon before 1970. It was a political move, a date selected without the benefit of engineering input. A half million people were mobilized, and despite huge and at times tragic problems, the date was met. A bold vision coupled with unlimited resources can yield astonishing results.
Emby recently read in Telephone: The First Hundred Years (John Brooks, New York, NY: Harper Row, 1976) that the president of AT&T in 1909 flatly promised that telephone service between the two coasts would be available by 1914. Yet a workable telephone repeater didn't exist. Even the vacuum tube was mostly a dream. It was a bold gamble, one that anticipated invention. He said to his engineers, in effect, “we've promised it, now you find a way to do it.” The engineers struggled with inadequate technology, but in 1912, physicist Harold Arnold realized that Lee de Forest's triode, which barely worked, had too little vacuum; he perfected a high-vacuum triode that made the repeater possible. They delivered on time.
Again, a bold vision, one unachievable when first voiced, with the help of massive resources and very smart people, led to the first coast-to-coast telephone service. Emby suspects that a schedule created by the engineering group would have demanded many more years or decades since whole new technologies had to be invented.
Years ago, Emby naively thought that capricious schedules would disappear as engineers grayed. With time many of these smart and experienced developers would find roles in management and some would win coveted positions at the top of the heap, becoming the Big Bosses of today. Though that has indeed happened, few remember the lessons of their pasts. Today they're faced with demanding shareholders, customers wanting more, and fiercely aggressive competitors. Emby wishes these ex-developers could understand the errors of their ways, but she recognizes that they must respond to pressures that most of their engineers simply cannot understand. She wonders if the nature of corporations is flawed, since workers and bosses pursue divergent and conflicting goals.
My colleagues all want to adopt eXtreme Programming (XP). It sounds pretty good to me because I get to code a lot more. Design is boring, and the boss sure is happy to see us crank code. We build autopilots for commercial jets. What do you think?
Code Requires All Sorts of Help
Emby had the chance to share a number of beers with some of the XP advocates. She herself, of course, remained perfectly in control and hardly slobbered at all. When in their cups they claimed “a design will arise from the code.” Emby supposes this is fine for business software, but shudders to think about a safety-critical system built so casually.
Yet the XP folks do have some valuable insights. While hardly a new concept, their “test first, test often, and validate all changes via tests” method is profoundly important and neglected by nearly every development team. The automated tests XP requires are tougher to implement on embedded systems than for desktop apps, but Emby feels the cost of extra test jigs is worthwhile to ensure high-quality code. She notes that one of the contributing factors to the $400 million Ariane 5 failure was management's unwillingness to spend $100,000 on a test platform for the inertial navigation system.
She does wonder if the pair programming XP mandates might be too intimate for many, especially for so many socially inept developers who can't sustain a relationship with a significant other, let alone a kibitzing colleague. But such an activity does at least put two pairs of eyes on every line of code. She feels that's not as powerful as formal code inspections, but that it's much better than the current model of writing software no one ever audits.
But, please dear CRASH, do let me know if you adopt XP on your autopilots and tell me the model numbers of planes using them. Emby travels often and has no wish to entrust her safety to code built without a careful design and failure-mode analysis.
I read the August 15, 2001 Journal of the American Medical Association and was shocked to see how many pacemakers and implanted defibrillators have problems. Did you know that in the last decade over a half million of these have been recalledalmost half for firmware errors?
Distraught, Offended, Afraid
Emby did read that article and was most dismayed to see the rate of recalls increase during the period 1995 to 2000 versus the previous five years. She's sure the code got more complex due to creeping featuritus, but worries that the firmware is apparently getting worse rather than better with time.
But Emby most of all wants to know: how do you recall pacemakers and implanted defibrillators, anyway?
I find myself unable to commit to just one computer. There's a hot little ARM9 model that's fast and exciting, but the old Pentium number has been with me forever and is reliable if not so thrilling anymore. After exchanging unprotected disks, I'm afraid I've infected both with a virus. What should I do?
Conquered and Divided
It's fine to have divided loyalties between two very different machines. This is the '00s, after all! Even the most devoted PC person can't resist a run on the wild side with a Mac once in a while. But please, practice safe C.
Check out Les Hatton's Safer C: Developing Software for High-Integrity and Safety-Critical Systems published by McGraw-Hill, United Kingdom. Non-U.K. readers can order it through http://www.oakcomp.co.uk/TP_Books.html and http://www.amazon.co.uk (but intriguingly, not at http://www.amazon.com). Also, if you want to be more conservative, get the MISRA standard (http://www.misra.org.uk).
Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. Contact him at .