around to avoid serious knowledge loss and coding bottle necks. If only
one person on your team can work in a given area and that person leaves
or just has too much to do you
will find your project's progress reduced to a crawl.
training is often an important consideration in companies trying to
avoid islands of knowledge, which are so susceptible to loss. Moving
people around the code base in combination with pair programming does
your cross training for you. Instead of one person who knows everything
about a given section of code, everyone on the team knows much of the
code in each section.
team is much more flexible if everyone knows enough about every part of
the system to work on it. Instead of having a few people overloaded
with work while other team members have little to do, the whole team
can be productive. Any number of developers can be assigned to the
hottest part of the system. Flexible load balancing of this type is a
manager's dream come true.
encourage everyone to try working on a new section of the system at
least part of each iteration. Pair
programming makes it possible without losing productivity and
ensures continuity of thought. One person from a pair can be swapped
out while the other continues with a new partner if desired.