Let me be the first to properly welcome you to the 21st century and the new millenium. Just one short year ago, it seemed as though lifeas we know it (or at least computing as we know it) might grind to ahalt on the false millennial-eve because of short-sighted engineeringdecisions made decades earlier.
Having earned my stripes in the embedded trenches, I was quick to tellanyone who asked that there was nothing to fear on New Year's Eve1999. “Embedded developers simply don't build unneededfunctionality, like calendars, into their systems,” I must have explainedto a hundred friends and family. It seems I was right. The powerstayed on; the water ran; no elevators stuck; no airplanes fell from thesky; traffic lights continued to control access to intersections; and DickClark remained on the air, the latter however unfortunately.
But these days I'm less confident in the embedded systems to whichwe entrust our lives and livelihoods. It seems that everywhere I govendors are encouraging the inclusion of unneeded functionality, andfar too many developers are taking them up on it. Consider embeddedLinux. While not so unreasonable a choice in a few specific classes ofsystems-like set-top boxes or embedded PCsLinux is clearly overkill inthe vast majority.
How do you even begin to test the safety and reliability of a systemwith so much complexity and so many authors? Can systems madefrom a mish-mash of off-the-shelf software components and rushed tothe production floor be trusted? Who will certify that these systemsare worthy of deployment or purchase? And who will ensure that theyare safe and reliable?
Looking back now, I wonder how anyone even found time in 1999 tofix date-related bugs and/or certify systems as “Y2K compliant.” TheU.S. economy has been running at full speed for well-nigh a decade.The high-tech job market is hot and the amount of work for eachengineer to do astounding. In such a climate, anyone halfway to atechnical degree can find a job writing software for real products.Combine that with the pressures to get products to market quickly andyou've got a clear recipe for disaster.
Surely, despite such horrible past disasters as Therac-25, the worstsoftware-induced losses of life and limb lie ahead of us. We must, asan industry and to a person, insist on a higher standard ofengineering. We must test our systems and design them to ensuretheir consistent behavior. Safety and reliability must be our first goals,not our last.
I implore all of you to raise the issues of safety and reliability withinyour own companies. Avoid unneeded functionality at all cost. After all,years or decades from now, human lives or livelihoods may still dependon the engineering decisions you make today.
Return to Table of Contents