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-