Decoding Time to Market

What's the fastest way to get a firmware project out the door? Ship junk. What's the second-fastest way to market? Here's how to predict your time to market by looking at code practices.

What's the fastest way to get a firmware project out the door? Ship junk. Try unprogrammed flash. One company I know grades developers on the size of the program; a cynic there could do very well by dumping Moby Dick (1,172,046 bytes, by my count) into memory. The system wouldn't work too well, or at all, but the project will beat all development records.

The second-fastest way is to ship insanely high-quality code. Deming, Juran, and the subsequent quality movement taught the manufacturing world that quality and speed go together. Quality stems from fabulous design that requires no rework; no rework means projects go out the door faster.

Alas, in the firmware world, that message never resonated. Most projects devote half the schedule to debugging (which implies the other half should be named "bugging"). Typical projects start with a minimum of design, followed by a furious onslaught of coding and then long days and nights wrestling with the debugger.

"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." [Wikipedia]