For novel ideas about building embedded systems (both hardware and firmware), join the 35,000 engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
I'll present my Better Firmware Faster seminar in Melbourne and Perth, Australia February 20 and 26th. All are invited. More info here. The early registration discount ends January 20.
By Jack Ganssle
You can practically read the model number of the phone she's yakking on because her SUV is mere inches from your rear bumper as you both careen down the rain-slicked highway at 55 MPH.
Resisting the temptation to wave a single-digit greeting you sigh in temporary relief as she swerves, without signaling, across three lanes of traffic in a desperate effort to shave five seconds off her morning commute. Instantly, though, another tailgater moves into position, seemingly trying to get you to drive faster despite the mass of drivers only a half-dozen car lengths ahead. In a line in a movie theater this sort of shoving would be socially unacceptable. For some reason it's expected on the roads.
What are these people thinking? Are they really the morons their actions suggest? If so, then some huge percentage of the adult population should be committed to an institution for the criminally insane.
I always figure that most folks are a decent sort, so chalk this aggressive behavior up to their unnoticed acquisition of bad habits. New drivers progress from fear to overconfidence, back to fear after witnessing horrific accidents or their aftermath, to an easy comfort behind the wheel largely untroubled by the potential consequences of this very serious endeavor. Those death-like two-handed grips on the wheel in drivers' ed give way to steering with one's knees while shaving and drinking coffee, issuing an occasional expletive at some other driver's even worse antics.
I've been alone in a life raft in the mid-Atlantic, and just this past summer was in a bad gale 300 miles offshore that destroyed a lot of gear on our boat, but still think driving is the most dangerous thing I do. One of the scariest moments for a parent is when the teenager first takes off alone in the family car with his or her shiny new driver's license. The kid will, with practically no experience, be fractions of a second from tragedy in the casual carnage we accept on the roads. They, too, may drift into similar sorts of bad behavior as they become more comfortable behind the wheel.
Bad habits accumulate, which is why I've tried to instruct my teenagers to think once in a while about their driving. To reflect, to examine and to question their habits. "Do I tailgate? What's the upside? Has my speed been drifting up? Do I roll through stop signs?" Without that sort of self-reflection it's impossible to detect - and take appropriate action to correct - accumulated behavior that makes a mockery of the very serious responsibility of driving.
Of course "think" and "teenager" are two words that rarely go together. But that's a different issue.
Such reflection should be a part of all aspects of our lives. "Am I being good to my spouse?" "Am I happy with the way I get angry at the kids?"
In engineering, too, we drift into bad habits. Sloppy documentation, poorly-written comments, and coding shortcuts that, hopefully, usually, probably not soon, may create trouble down the road, are all unacceptable behaviors that don't illuminate any red lights. There's no cop waiting behind a billboard to tag us for writing that awfully-convoluted function. One reason for code inspections is to provide these audits, but there's nothing that substitutes for a bit of self-examination from time to time to root out these habits. and then take corrective action.
Self improvement begins with identifying that which one wishes to improve.