Page 91 -
P. 91

62            PART TWO  MANAGING SOFTWARE PROJECTS


                          CC and CD teams have been found to produce fewer defects than DD teams, but
                       these data have much to do with the specific quality assurance activities that are
                       applied by the team. Decentralized teams generally require more time to complete a
                       project than a centralized structure and at the same time are best when high socia-
                       bility is required.
                          Constantine [CON93] suggests four “organizational paradigms” for software engi-
                       neering teams:
                         1. A closed paradigm structures a team along  a traditional hierarchy of author-
                            ity (similar to a CC team). Such teams can work well when producing soft-
                            ware that is quite similar to past efforts, but they will be less likely to be
         “Working with people  innovative when working within the closed paradigm.
          is difficult, but not
          impossible.”   2. The random paradigm structures a team loosely and depends on individual
                            initiative of the team members. When innovation or technological break-
          Peter Drucker
                            through is required, teams following the random paradigm will excel. But
                            such teams may struggle when “orderly performance” is required.
                         3. The open paradigm attempts to structure a team in a manner that achieves
                            some of the controls associated with the closed paradigm but also much of
                            the innovation that occurs when using the random paradigm. Work is per-
                            formed collaboratively, with heavy communication and consensus-based
                            decision making the trademarks of open paradigm teams. Open paradigm
                            team structures are well suited to the solution of complex problems but may
                            not perform as efficiently as other teams.
                         4. The synchronous paradigm relies on the natural compartmentalization of a
                            problem and organizes team members to work on pieces of the problem with
                            little active communication among themselves.
                          As an historical footnote, the earliest software team organization was  a controlled
                       centralized (CD) structure originally called the chief programmer team. This structure
                       was first proposed by Harlan Mills and described by Baker [BAK72]. The nucleus of
          XRef         the team was composed of a senior engineer (the chief programmer), who plans, coor-
         The role of the librarian  dinates and reviews all technical activities of the team; technical staff (normally two
         exists regardless of  to five people), who conduct analysis and development activities; and a backup engi-
         team structure. See
         Chapter 9 for details.  neer, who supports the senior engineer in his or her activities and can replace the
                       senior engineer with minimum loss in project continuity.
                          The chief programmer may be served by one or more specialists (e.g., telecom-
                       munications expert, database designer), support staff (e.g., technical writers, clerical
                       personnel), and a software librarian. The librarian serves many teams and performs
                       the following functions: maintains and controls all elements of the software config-
                       uration (i.e., documentation, source listings, data, storage media); helps collect and
                       format software productivity data; catalogs and indexes reusable software compo-
   86   87   88   89   90   91   92   93   94   95   96