Page 94 -
P. 94

CHAPTER 3  PROJECT MANAGEMENT CONCEPTS                              65

                              a detailed schedule populated by organized tasks that enable them to achieve clo-
                              sure for some element of a project. Others prefer a more spontaneous environment
                              in which open issues are okay. Some work hard to get things done long before a mile-
                              stone date, thereby avoiding stress as the date approaches, while others are ener-
                              gized by the rush to make a last minute deadline. A detailed discussion of the
                              psychology of these traits and the ways in which a skilled team leader can help peo-
                                                                                          4
                              ple with opposing traits to work together is beyond the scope of this book. However,
                              it is important to note that recognition of human differences is the first step toward
                              creating teams that jell.

                              3.2.4  Coordination and Communication Issues
                              There are many reasons that software projects get into trouble. The scale of many
                              development efforts is large, leading to complexity, confusion, and significant diffi-
                              culties in coordinating team members. Uncertainty is common, resulting in a contin-
                              uing stream of changes that ratchets the project team. Interoperability has become a
                              key characteristic of many systems. New software must communicate with existing
                              software and conform to predefined constraints imposed by the system or product.
                                These characteristics of modern software—scale, uncertainty, and interoperabil-
                              ity—are facts of life. To deal with them effectively, a software engineering team must
                              establish effective methods for coordinating the people who do the work. To accom-
                              plish this, mechanisms for formal and informal communication among team mem-
                              bers and between multiple teams must be established. Formal communication
                              is accomplished through “writing, structured meetings, and other relatively non-
                              interactive and impersonal communication channels” [KRA95].  Informal communi-
                              cation is more personal. Members of a software team share ideas on an ad hoc basis,
                              ask for help as problems arise, and interact with one another on a daily basis.
                                Kraul and Streeter [KRA95] examine a collection of project coordination techniques
                              that are categorized in the following manner:
                                   Formal, impersonal approaches include software engineering documents
                                   and deliverables (including source code), technical memos, project milestones,
                                   schedules, and project control tools (Chapter 7), change requests and related
                                   documentation (Chapter 9), error tracking reports, and repository data (see
                ?  How do we       Chapter 31).
                   coordinate
                                   Formal, interpersonal procedures focus on quality assurance activities
                the actions of     (Chapter 8) applied to software engineering work products. These include sta-
                team members?
                                   tus review meetings and design and code inspections.
                                   Informal, interpersonal procedures include group meetings for informa-
                                   tion dissemination and problem solving and “collocation of requirements and
                                   development staff.”


                              4  An excellent introduction to these issues as they relate to software project teams can be found in
                                [FER98].
   89   90   91   92   93   94   95   96   97   98   99