Task: Manage Iteration
Assess project status and identify any blocking issues and opportunities. Identify and manage exceptions, problems, and risks. Communicate project status.
Disciplines: Project Management
Purpose

Help the team meet the iteration objectives and keep the project on track. Manage stakeholders' expectations as technical and practical discoveries are made during the project.

Relationships
Main Description

Developing the team is part of executing the project. Improve the interactions and trust between team members, incorporating team building into project activities, and empowering the team to make decisions. Management is done by objectives and not by time reporting.

Help the team meet the iteration objectives by removing constraints, and by monitoring the progress and work remaining to completion. When the team is falling behind, help the team assess how it can reduce work and still meet the iteration goals. Involve stakeholders in approving changes and actions that affect them, so that their objectives for the iteration can be met, and the issues they raise can be solved throughout the iteration.

Select an approach for the collection of basic metrics: ideally, they are automatically generated from the tools at hand, but can be manually assembled, or both. Outline which metrics the project should use in the [Project Definition and Scope].

Steps
Track current iteration progress

Continuously monitor the iteration to ensure that it is progressing appropriately. Track the progress of the current iteration by maintaining visibility on the status of the items that are being worked on during the iteration. In particular, it is important to be able to understand how quickly the team is moving through the work scheduled for the iteration, and how accurate the estimates were [LEF07].

Share information about the progress being made by having quick, frequent meetings with the entire project team. These meetings are useful to understand what team members have accomplished since the last meeting, and what they plan to accomplish before the next meeting. It also allows the team to identify any blocking issues. See [Collaboration Guidance] for more information.

Track the status of each work item by using visual indicators of state information (for example: defined, completed, accepted) in a wall or automated tool. Since iterations are typically fixed in duration, another primary way to gauge progress is to continuously monitor current status and also estimate how much work remains. Plot an iteration burndown chart on a daily basis in order to visualize progress on a given iteration. This chart is plotted with the total estimates for all the items that are not yet started and the estimated remaining effort for any item in progress. See Report: Iteration Burndown for more information.

Take corrective actions to adjust the course of the iteration if the burndown chart shows that the work will not be finished as planned.

Capture and communicate project status

Because outside stakeholders do not participate in the daily activities of the team, it is important that the status of the project should be communicated to them as often as possible. This communication significantly lowers the risk of disconnect between the development team and the stakeholders. The status provides the team with data they can use to improve their development process.

Besides the iteration status, the overall project status can be captured and communicated in a burndown report for the whole project. This report should show the progress toward the release date, and should be updated at the end of every iteration (when metrics, such as the team's velocity, can also be provided). This allows the team to predict what it can accomplish on the remaining project iterations. Other metrics (such as number of test cases passed) can also be used to present iteration and project status.

Keep the status information visible to stakeholders and the project team at all times in a project workspace (walls or automated tool), where stakeholders can come and experience first-hand the progress being made by the team.

Handle exceptions and problems

Know about the team's problems and issues and focus on problems that are blocking progress. A quick, daily meeting is usually a good way to monitor those problems and issues. Keep a record of issues that have to be solved within the team in the Iteration Plan. If a critical problem or issue is likely to take a lot of time to solve, capture it in the Work Items List so that it can be assigned to an individual.

Identify the cause and impact of problems and exceptions as they arise. Identify possible solutions for problems that have an immediate impact on the short-term goals and objectives. Identify who needs to be involved in implementing the solution. Define the corrective actions and implement them.

Identify and manage risks

Identify risks as soon as the project starts, and continue identifying and managing risks throughout the project. Revisit the Risk List weekly, or at a minimum once per iteration. Involve the entire team in identifying and mitigating risks.

Manage objectives
When a team is falling significantly behind, or critical problems occur that prevent the team from meeting the iteration objectives, it may be necessary to descope work to ensure that the team delivers a useful product increment by the end of the iteration, while maximizing stakeholder value. Work with the team and stakeholders to revise the Iteration Plan and, as necessary, reduce the emphasis on less critical tasks by postponing them to a subsequent iteration. In rare cases, if the iteration objectives still seem impossible to meet, the team might consider terminating the iteration or reformulating the iteration to a new objective.
More Information