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

Disciplined Development  13

                         That tool is an absolute commitment to make some small but basic
                    changes to the way you develop code.
                         Given the will to change, here’s what you should do today
                         1.  Buy and use a Version Control System.
                         2.  Institute a Firmware Standards Manual.
                         3.  Start a program of Code Inspections.
                         4.  Create a quiet environment conducive to thinking.
                         More on each of  these in a few pages. Any attempt to institute just
                    one or two of these four ingredients will fail. All couple synergistically to
                    transform crappy code to something you’ll be proud of‘.
                         Once you’re up to speed on steps 1-4.  add the following:

                         5. Measure your bug rates.
                         6.  Measure code production rates.
                         7.  Constantly study software engineering.
                         Does this prescription sound too difficult? I’ve worked with compa-
                    nies that have implemented steps 1-4  in one day! Of course they tuned the
                    process over a course of months. That, though, is the very meaning of the
                    word “process”-something  that constantly evolves over time.
                         But the benefits accrue as soon as you start the process. Let’s look at
                    each step in a bit more detail.


                         Sfep  7:  Buy and Use a VCS

                         Even a one-person shop needs a formal VCS (Version Control Sys-
                    tem). It  is  truly  magical  to  be  able  to  rebuild  any  version  of  a  set  of
                    firmware, even one many years old. The VCS provides a sure way to an-
                    swer those questions that pepper every bug discussion, such as “When did
                    this bug pop up?’
                         The VCS is a database hosted on a server. It’s the repository of all of
                    the company’s code, make files. and the other bits and pieces that make up
                    a  project.  There’s  no  reason  not  to  include  hardware  files  as  well-
                    schematics, artwork, and the like.
                         A VCS insulates your code from the developers. It keeps people from
                    fiddling with the source; it gives you a way to track each and every change.
                    It controls the number of people working on modules, and provides mech-
                    anisms to create a single correct module from one that has been (in error)
                    simultaneously modified by two or more people.
                         Sure, you can sneak around the VCS, but like cheating on your taxes
                    there’s eventually a day of reckoning. Maybe you’ll get a few minutes of
   21   22   23   24   25   26   27   28   29   30   31