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

194  THE ART OF  DESIGNING EMBEDDED SYSTEMS


                            Engineering  management  is about removing obstacles  to success.
                       Mentoring the developers. Acquiring needed resources.
                            It’s also about closing feedback loops. Finding and removing dys-
                       functional patterns of operation. Discovering new, better ways to get the
                       work done.
                            Doing things the same old way is a prescription for getting the same
                       old results.
                            It’s infuriating that typical projects fizzle out in a last-minute crunch
                       of  bug fixes, followed by  the immediate startup of a new development
                       effort. Nothing could be dumber.
                            Did you learn anything doing the project? Did your co-workers? Is
                       there any chance some bit of wisdom could be extracted from its successes
                       and failures-a  bit of wisdom that may save your butt in the future? Why
                       do we careen right into the next project, hoping to avoid disaster by sheer
                       hard work, instead of  taking a moment to take a deep breath, gather our
                       wits, and understand what we’ve learned?
                            Engineering managers simply must allocate time for a careful post-
                       mortem analysis of each and every project. Once the pressure of the ship
                       date is gone, all of the team members should work toward extracting every
                       bit of learning from the development effort.
                            Usually we casually pick up  some wisdom even without a formal
                       postmortem. This is the basis for “experience,” a virtue acquired by mak-
                       ing mistakes. I’ll never forget shoehorning an RTOS into an almost com-
                       plete system more than a decade ago. Putting it in after 20,000 lines of
                       code were written hurt so badly I swore I’d never start a system like that
                       again without installing an RTOS as the first software component. This bit
                       of  wisdom came in exactly the same way kids learn not to touch a hot
                       stove: pain. I believe we can do better than learning by acquiring scars.
                            A  formal postmortem analysis has  one goal: squeeze every  bit of
                       learning from the just-completed  project. Wring it dry, extracting infor-
                       mation to compress the acquisition of “experience” as much as possible.
                           The postmortem is not a forum for assigning blame. When I started
                       conducting these at my last company, the engineers immediately became
                       paranoid, thinking that this was the chance for management to “get” them,
                       in writing, in a venue visible to all employees.
                           If blame must be given, then do it privately and constructively. Non-
                       constructive criticism is a waste of time, to be used only when firing the
                       offending employee (if then).
                           Similarly, the postmortem shouldn’t be used as a staging area for the
                       engineers’ complaints against management. When there are valid concerns
   202   203   204   205   206   207   208   209   210   211   212