6.2. Estimation Innovations
There are two general strategies for improving the accuracy of your estimates: help individuals learn to make better estimates or find ways to leverage the whole team's experience when making estimates. Individual Estimation Techniques can improve the accuracy of an individual's estimates. Delphi Ranking and Planning Poker are techniques that help a team derive accurate estimates from the estimates of individuals.
Surprisingly, some teams estimate more accurately when using "ideal engineer hours" as their estimation units, while others are more accurate with an abstract unit like "story nuts." If nothing else works, you could Change Estimation Units.
Figure 6.1. Pipelining iterations
6.3. Process Management Innovations
6.3.1. Promoting Communication within the Team
One of the keys to agility is communication within the team. By definition, an agile environment means that things happen quickly, so it is important that information can pass easily among the team. The most obvious changes advocated by agile techniques are changes to the work environment itself. The first such strategy is to create an Open Workspace, which is an open, bull-pen-like development lab where everyone works when they are writing code. With no cubicle walls between them, everyone becomes more aware of what others are developing, and it is much easier for people to get help when issues arise. In addition, an Informative Workspace helps us display critical information in a way that keeps everyone up to date.
In addition to changes to the workspace, many agile methodologies require the team to review status every morning at a Daily Scrum/Daily Stand Up Meeting. At the end of each iteration, holding a Retrospective will let the team share information about what went well and what they'd like to change in the next iteration. These meetings are excellent opportunities not only for the team to share but also for the leadership to listen.
The agile philosophy of self-directed work groups also helps with communication. If you are abiding by that philosophy, then the team must be included in or have ownership of all planning activities. This is an excellent opportunity for them to see the details of the iteration.
6.3.2. Communication Between the Team and External Entities
It is often necessary that progress information be shared during an iteration. The simplest way to let outside people see how the team is progressing is by allowing them to attend planning meetings, Daily Scrum/Daily Stand Up Meetings, and Retrospectives. If they become a distraction at any of those activities, you might want to invoke the "chickens and pigs" rules from the Daily Scrum.
A simple indicator that is very powerful in its ability to show the team's capabilities and progress is a Burn-down Chart. With some initial explanation, it can take the place of more complex (time-consuming) reporting mechanisms.
Holding a Sprint Review at the end of each iteration not only can let the team demonstrate its success but also can provide a forum for discussing the direction of the project.
There is some disagreement about how much the team should be interrupted while an iteration is in progress. Therefore, you need to decide between Limited Steering vs. No Distractions.
6.3.3. Growing Good Team Members
To build a strong team and maintain the technical capabilities of each engineer, your team needs to focus on the development of each individual's skills. "Gold" cards are one way to allow each engineer some control over his technical growth.
Because of the focus on team progress and capabilities, one of the biggest challenges for the team can come when management requires individual performance evaluations, particularly if those evaluations are tied to merit pay increases. In response to these situations, teams have developed a number of Individual Evaluation Strategies.