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].