Dear Abbey
 |
For hints, tricks and ideas about better ways to build embedded systems, subscribe to The Embedded Muse, a free biweekly e-newsletter. No hype, just down to earth embedded talk. 23,000 other engineers subscribe. It takes just a few seconds (all we need is your email address, which is shared with absolutely no one) to subscribe to the Embedded Muse. |
Dear Abbey
Dear Abbey,
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 of the cash in the bank rather than
have a good time. Now he's talking about kicking me out of the house. After 4
years of college, don't I deserve all of the goodies?
Signed,
Still Living Off The Hog
Dear SLOTH,
If you think college was stressful, life is going to hit
you over the head with a baseball bat. Things will be far more difficult - and
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.
Abbey 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 $50k or so, with few
responsibilities or expenses. Invest $10k 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 (Abbey 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're
accumulated with the short-term loan wisely. As time goes buy and your wealth
increases it's natural to consider buying a very 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 insures you'll be a wage slave forever. Design
your life; don't just drift towards old age.
Dear Abbey,
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?
Signed,
Sick Of Stupid Schedules
Dear Sickie,
Frankly - nothing. 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. Abbey 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, then the
interests of these groups diverge.
Sometimes that's healthy. Remember Apollo? 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.
Abbey recently read in Telephone:
the First Hundred Years (by John Brooks, Harper and 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 Harold Arnold realized that 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. Abbey 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 Abbey 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. Abbey 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.
Dear Abbey,
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?
Signed,
Code Requires All Sorts of Help,
Dear CRASH,
Abbey 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." Abbey 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. Their test
first, test often and validate all changes via tests, while hardly a new
concept, 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 Abbey feels the cost of extra test jigs is worthwhile
to insure high quality code. She notes that one of the contributing factors to
the $400 million Ariane 5 failure was management's unwillingness to spend
$100k 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 this
technology. Abbey travels often and has no wish to entrust her safety to code
built without a careful design and failure mode analysis.
Dear Abbey,
I read the Aug 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 recalled! almost half for firmware errors?
Signed,
Mighty Indignant
Dear MI,
Abbey did read that article, and was most dismayed to see
the rate of recalls increase during the period 1995-2000 versus the previous 5
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 Abbey most of all wants to know: how do you recall one
of these, anyway?
Dear Abbey,
I find myself unable to commit to just one computer.
There's a hot little ARM9 model that is 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?
Signed,
On The Fence
Dear On The Fence,
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" which is published by
McGraw-Hill UK. Non-UK readers can order it through http://www.oakcomp.co.uk/TP_Books.html,
and http://www.amazon.co.uk, (but intriguingly, not at www.amazon.com).
Also, if you want to be more conservative, get the MISRA standard (www.misra.co.uk).
(Abigail
van Turing writes about matters of interest to all embedded developers.)
|