28 May 2004
One of the most common questions I see about agile projects is how they deal with handover to another team. If you have a development team that leaves and hands over support to a support team, how do they cope when agile projects tend to produce much less documentation than plan-driven processes?
One thing to consider is to ask yourself how much useful documentation gets produced by an alternative process. I've noticed that processes that produce mandatory documentation often produce stuff that isn't very helpful, and under the pressure of deadlines tends not to be kept up to date. In many ways the agile approach is a preference for a smaller amount of higher quality documentation.
Agile projects prefer face-to-face communication, so a common approach I've come across is to bring in members of a support/maintenance team to work with the development team for a while before they depart. By spending some time with both teams present, the development team could teach the system to the maintenance team as they are working the system. I've come across a number of variations on this theme.
- One team rotated one or two people in each iteration, completely replacing the team in two or three months gradually.
- When we've transferred projects to India we've ensured that an onshore developer spends at least a couple of months offshore to work with the new team
- One team brought a support person onto the team for the last month of the development.
The last example came from a colleague of mine, Jonathan Rasmusson, who pointed out that another benefit of bringing in some support team people at the end of the development was that it allowed relationships to form that made it much easier to deploy the new system. Communications between development and operations are often strained; frequently the needs of operations are ignored by developers. Having someone from operations be part of the team for a while helps communications in both directions.
Which brings me back to documentation. One of the things Jonathan mentioned was that they had the support member act as the customer for the documentation of the system. As a result they produced much more better documentation than they usually see.
Jonathan got to eat his own dog food later on when he came back with a completely new team to do some enhancements. They found the documentation very helpful because it was written on demand rather than according to a process. Quality triumphed over the usual quantity. The other big help in learning about the system was XP's huge body of automated tests which - as XPers never tire of pointing out - is an important form of documentation in its own right.