Train Everyone

You are someone who is initiating an agile project in an organization and you have a pretty good idea who the personnel will be. You might be a manager, or a change agent.

???

There are a lot of stakeholders in any project. There are a lot of skills needed to develop it. The Whole Team consists of everyone with an essential skill, including the customer who represents the business stakeholders.  Everyone has different ideas about how the project will proceed. If the methodology is new to the company, much of this information is faulty.

• Team members may not have previously worked together. 

• You are engaging in a project with a new methodology. No one is yet skilled in its use.

• Everyone will have a place in the development, but everyone needs to understand the role of everyone else.

• The team needs to work cooperatively and meld into a whole.

• Agile development requires a high level of discipline. Think of it as a highly choreographed dance.

• In ASD, most participants play a variety of roles.

! ! !

Therefore, provide training that both shows everyone all the essential roles, but also brings the participants together as a team.

Don't underestimate the importance of this. Select the team, including the customer. Bring in a trainer skilled in agile training and practice. Spend two or three days working together to introduce the required practices. The training should have an intellectual (reading/ listening/ discussing) component, but also an active component. Let people play roles in the training that are not their normal roles. Your goal in designing the training is not only to let people understand agile development at a deeper level, but also to begin to build an effective team.

• Training will cost you both time and money.

• You may need to return to training after the project runs for a while. Having a Retrospective at a release point can let you know if this is necessary.

• The trainer(s) can, perhaps, later stay on to coach. This is not essential, but you will likely need an external Effective Coach if this is a first agile project.  The coach needs to know what training was done, in any case.

There are several available training programs. Some of them are quite fun. Some focus on a few practices of XP and some on the process as a whole.  The team can be asked to create something other than software. This lets non-programmers act as developers and permits programmers to take the customer role. The goal of the training is twofold: (a) demonstrate the effect of not carrying out the practices, and (b) bring the team together as a cohesive unit.

Hint: Include management in the training, especially the Sheltering Manager. The author created an XP training exercise that covers all aspects of Extreme Programming in a day. It is accessible to managers, customers, and developers: Extreme Construction. See:

http://csis.pace.edu/~bergin/extremeconstruction/index.html