Information Technology Reference
In-Depth Information
eccentricities—“the same phenomenon we see in 'art colonies,' where
everyone knows how to look like an artist, but few, if any, know how
to paint like one.” 59
Weinberg believed that the use of small, unstructured programming
teams and regular code reviews would alleviate the problem of program-
mer attachment. Each of the programmers in the group would be respon-
sible for reading and reviewing all of the application code. Errors that
were identifi ed during the process were simply “facts to be exposed to
investigation” with an eye toward future improvement, rather than per-
sonal attacks on an individual programmer. 60 By restructuring the social
environment of the workplace and thereby restructuring the value system
of the programmers, the ideal of egoless programming would be achieved.
The result would be an academic style, peer-review system that would
encourage high standards, open communication, and ongoing profes-
sional development. Junior programmers would be exposed to good
examples of programming practice, and more senior developers could
exchange subtle tricks and techniques. A piece of completed code would
not be considered the product of an individual team member but rather
of the team as a whole. The openness of this process would also encour-
age the development of proper documentation.
There were a number of other salient features of the egoless (or adap-
tive) programming team that differed from conventional team-oriented
approaches. The most unusual and signifi cant was that all major design
and implementation decisions were to be determined by consensus
instead of decree. There were no assigned team leaders, at least not in
the conventional sense. Leadership shifted between team members based
on the needs of the moment and the strength of the individual team
members (hence the term adaptive). For example, if a particular phase
of the project involved a lot of debugging, one of the team members
especially skilled at debugging might assume the temporary role of team
leader during that period. Even then, all of the important decisions would
be made democratically. Work was assigned based on the strengths—and
preferences—of the individual team members.
The democratic approach to software project management, in
Weinberg's view, offered a number of advantages. It encouraged com-
munication and fl exibility. Schedule and design changes could be more
readily accommodated, and resources could be allocated effi ciently.
Second, the lack of a formal hierarchy made the adaptive team signifi -
cantly more robust than more structured alternatives. For instance, the
adaptive team could readily adjust to the addition or removal of members.
Search WWH ::




Custom Search