Page 59 - The Art of Designing Embedded Systems
P. 59
46 THE ART OF DESIGNING EMBEDDED SYSTEMS
The feature matrix ensures we’re all working on the right part of the
project. Build the important things first! Focus on the basic system struc-
ture-get all of it working, perfectly-before worrying about less impor-
tant features. I see project after project in trouble because the due date
looms with virtually nothing complete. Perhaps hundreds of functions
work, but the unit cannot do anything a customer would find useful. De-
velopers’ efforts are scattered all over the project so that until everything
is done, nothing is done.
The feature matrix is a scorecard. If we adopt the view that we’re
working on the important stuff first, and that until a feature works perfectly
we do not move on, then any idiot-including those warming seats in mar-
keting-can see and understand the project’s status.
(The complexity rating shown is in estimated lines of code. LOC as
a unit of measure is constantly assailed by the software community. Some
push function points-unfortunately there are a dozen variants of this-as
a better metric. Most often people who rail against LOC as a measure in
fact measure nothing at all. I figure it’s important to measure something,
something easy to count, and LOC gives a useful if less than perfect as-
sessment of complexity.)
Most projects are in jeopardy from the outset, as they’re beset by a
triad of conflicting demands (Figure 3-3). Meeting the schedule, with a
high-quality product, that does everything the 24-year-old product man-
ager in marketing wants, is usually next to impossible.
Eighty percent of all embedded systems are delivered late. Lots and
lots of elements contribute to this, but we too often forget that when de-
veloping a product we’re balancing the schedule/quality/features mix. Cut
enough features and you can ship today. Set the quality bar to near zero
FIGURE 3-3 The twisted tradeoff

