The lawyers are coming!
When I started writing firmware and for years afterward, few people outside of the electronics design community gave a thought to the countless embedded systems around them. At the time, I found it difficult to explain to most friends and relatives what exactly it was that I did for a living. Yet embedded software was all around them at home and at work--in their phones, anti-lock brakes, laser printers, and many other important products. But to these folks, "software" was something you bought in a box at a store and installed on the one "computer" you owned.
Today, of course, there are countless embedded systems per person, and our health and wellbeing are both greatly enriched by and increasingly dependent upon proper functioning of the firmware inside. Consumers now notice them and think of them as software containers--if only because they require frequent reboots and upgrades. And there is no let up in sight: several billion more such devices are produced each year.1
Lawsuits are on the rise, too. In recent years, I've been called into U.S. District Court (as an expert witness) in several dozen lawsuits involving embedded software. I've met others with similar experiences and become aware of many other cases. Popular claims range from copyright theft and patent and trade secret infringement to traditional products liability with a firmware twist. Unfortunately, the quality and reliability of our collective firmware leaves the door open to an ever-increasing number of the latter.
This code stinks!
At a recent Embedded Systems Conference, I gave a popular free talk titled "This Code Stinks! The Worst Embedded Code Ever" in which I used lousy code from real products as a teaching tool. The example code was gathered by a number of engineers from a broad swath of companies over several years.2