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
   13   14   15   16   17   18   19   20   21   22   23