Page 18 - The Art of Designing Embedded Systems
P. 18
CHAPTER 2
Disciplined
Development
Sojiivare engineering is not a discipline, Its practitioners cannot
systematically make and fulfill promises to deliver sojhare systems
on time and fairly priced.
-Peter Denning
The seduction of the keyboard is the downfall of all too many em-
bedded projects.
Writing code is fun. It’s satisfying. We feel we’re making progress
on the project. Our bosses, all too often unskilled in the nuances of build-
ing firmware, look on approvingly, smiling that we’re clearly accomplish-
ing something worthwhile.
As a young developer working on assembly-language-based systems,
I learned to expect long debugging sessions. Crank some code, and figure
on months making it work. Debugging is hard work (but fun-it’s great to
play with the equipment all the time!), so I learned to budget 50% of the
project time to chasing down problems.
Years later, while making and selling emulators, I saw this pattern re-
peated, constantly, in virtually every company I worked with. In fact, this
very approach to building firmware is a godsend to the tool companies
who all thrive on developers’ poor practices and resulting sea of bugs.
Without bugs, debugger vendors would be peddling pencils.
A quarter century after my own first dysfunctional development pro-
jects, in my travels lecturing to embedded designers, I find the pattern re-
mains unbroken. The rush to write code overwhelms all common sense.
The overused word “process” (note that only the word is overused;
the concept itself is sadly neglected in the firmware world) has garnered
enough attention that some developers claim to have institutionalized a
reasonable way to create software. Under close questioning, though, the
majority of these admit to applying their rules in a haphazard manner.
5

