Page 206 - The Art of Designing Embedded Systems
P. 206

People Musings  193


                          Does this scenario sound familiar? A small team starts a project with
                     great  hopes  and  enthusiasm.  Along  the  way  problems  crop  up.  Sales
                     changes the features. Management reduces the product’s cost. Schedules
                     slip when compiler bugs appear. Code grows bigger than expected. Real-
                     time response isn’t adequate, so the engineers start burning the midnight
                     oil, making heroic changes to get the system out, but schedules slip more,
                     tempers flare, and when the product finally ships no one is speaking to
                     each other.
                          A week later the developers are embroiled in another product, again
                     starting with high hopes, and again doomed to encounter the same rather
                     small yet common set of problems that cause late delivery.
                          Sliding into middle age one has the chance to observe patterns in
                     one’s life, patterns we seem to repeat over and over. Einstein said, “Doing
                     the same things over and over, and expecting different results each time, is
                     clearly insane.”
                          Yet  most engineering efforts exhibit this insanity. Careening from
                     project to project, perhaps learning a little along the way but repeating the
                     same tired old patterns, is clearly dysfunctional.
                          In most organizations the engineering managers are held accountable
                     for getting the products out in the scheduled time, at a budgeted cost, with
                     a minimal number of bugs. These are noble, important goals.
                          How often, though, are the managers encouraged-no,  required-to
                     improve the process of designing products?
                          The Total Quality movement in many companies seems to have by-
                     passed engineering altogether. Every other department is held to the cold
                     light of scrutiny, its processes tuned to minimize wasted effort. Engineer-
                     ing has a mystique of dealing with unpredictable technologies and work-
                     ers immune to normal management controls. Why can’t R&D be improved
                     just like production and accounting?
                          Now, new technologies are a constant in this business. These tech-
                     nologies bring risks, risks that are tough to identify, let alone quantify.
                     We’ll always be victims of unpredictable problems.
                          Worse, software is very difficult to estimate. Few of us have the lux-
                     ury of completely and clearly specifying a project before we start. Even
                     fewer don’t  suffer from creeping featurism as the project crawls toward
                     completion.
                          Unfortunately, most engineering departments use these problems as
                     excuses for continually missing goals and deadlines. The mantra “Engi-
                     neering is an art, not a science” weaves a spell that the process of devel-
                     opment doesn’t lend itself to improvement.
                          Phooey.
   201   202   203   204   205   206   207   208   209   210   211