Section 2.6. Agile Teams


2.6. Agile Teams

The behavior of athletes in team sports closely parallels agile teams in a number of ways (the Poppendiecks have made this same analogy to the Marines[6]). A competitive volleyball team prepares very carefully for a match. They work on understanding their strengths and weaknesses and those of their opponent. Given that information, they develop several strategies they think will be valuable. Essentially, this high-level strategy is their version of planning. The details of the game are generally left to the players. Although the coach can offer insights during a small number of timeouts, the team has to be able to analyze how the game is progressing and adjust to the play of their opponent. Even with the timeouts, the game unfolds at too high a speed for the coach to make every decision and give everyone new instructions. Although practices include skill development, the training of good players must include the decision process and strategies for adapting to a changing opponent. That way the players can adjust and handle the moment-to-moment issues during the game.

Although agile teams have not explicitly made the distinction between "planning" and "predicting," agile methods do include these differences in granularity. Selecting the functionality that will be included in an iteration is equivalent to the planning that the Marines do before a battle. The team, including managers, customers, and engineers, analyzes the potential functionality and their capabilities. The result is the strategy-level plan for the iteration. Although it technically includes estimates, they are at a level of granularity appropriate to the current knowledge of the situation.

After the functionality has been selected for the iteration, the team is responsible for determining how that functionality will be built and for handling unexpected situations as they arrive. Most team members have a computer science education that includes all of the design and problem-solving skills necessary to complete this task. Furthermore, the team usually includes members with more experience, so we can trust the team to adjust the battle tactics to achieve the goal set for the iteration.

Agile teams tend to behave as self-directed work groups[8]. This means that they determine the rules under which they will succeed. They specify any particular roles and the people who will serve in those positions. They also control the development processes and tools that they will use. They are self-organizing teams whose goal is building the functionality goal set for each iteration. They are also responsible for evaluating the level of their success and looking for ways to improve.




Refactoring to Agility
Refactoring to Agility
ISBN: B000P28WK8
EAN: N/A
Year: 2006
Pages: 58

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net