1. It's all about the software.
For mechanical and electrical engineers, whose education and experience revolve around hardware, it's hard to imagine that software could matter more than anything else. But in the embedded world, it does. Whether the project involves avionics, automobiles, phones, computers, thermostats, automation systems, or myriad other products, the brunt of the engineering will emanate from the software effort.
Ganssle estimates that 70 to 80 percent of electronic engineering time is devoted to software. Many products incorporate hundreds of thousands of lines of software code, and some use more than a million.
To figure out how that translates into engineering work hours, consider this: The average programmer writes about 200 lines of code per month. At that rate, a staff of 50 would need 100 months -- more than eight years -- to write a million lines of code.
Low-cost embedded applications that are less code-intensive can be served by microcontrollers
such as Texas Instruments' MSP430 line.
(Source: Texas Instruments)
"When it comes to embedded systems, software is the big engineering effort, period," said Bill Graham, product line manager for tools and lifecycle solutions at Wind River Systems, a maker of embedded operating systems. "Most experienced companies have a hardware group, which is a handful of people. And then they have a software group, which is a tremendous number of people." However, because newcomers to the embedded world almost universally underestimate the software contribution, more than a third of embedded projects are late or never delivered.
"We still hear about managers who say, 'Just change the code,' and then expect it to get done in an afternoon," Ganssle said. "But months go by, and they're still struggling with it."
2. It costs more than you think.
Cost is one factor that trips up even the most experienced embedded developers. After years of watching design teams underestimate costs, Ganssle cites this rule of thumb, which puts it in perspective: Each line of code costs between $20 and $40 to create. As a result, development of a product with a million lines of software code could cost $20 million to $40 million.
"Even people who are in the field tell me they don't believe it," Ganssle said. "But there's been way too much data collected and far too many studies done on this to argue it." Development teams who ignore such data do so at their own peril. And because so many of today's top engineers came to age in an era when software wasn't fully understood, the risks of underestimating software costs are great.
"Software is a relatively new field -- only about 50 or 60 years old -- and we're really still figuring it out," he said. "But the truth is that it's probably the most expensive thing in the history of engineering."