Iteration: A self-contained mini-project, with a well-defined outcome: a stable, integrated, and tested “release”. Let’s look at the three aspects of this definition in more detail.
A software development project produces a new release of a software product by transforming a set of users’ requirements into a new or changed software product. With an iterative and incremental approach, this process is completed little by little, step by step, by splitting the overall project into several mini-projects, each of which is called an iteration.
From the perspective of the development team, each iteration can be considered to be a self-contained project. This approach is very powerful because it enables the development team members to focus on meeting their immediate objectives and ensures that the results generated are frequently and objectively measured. The management team needs to ensure that the iteration objectives form a credible part of the larger overall project.
The management team needs to reinforce this way of working by ensuring that each iteration has the following:
Each iteration must have clearly defined objectives that are understood and agreed upon by all the parties involved in the project. This unifies the efforts of everyone involved in the project.
Measurable evaluation criteria
For the objectives to function as the unifying theme for the team, it is essential that they are complemented with measurable evaluation criteria that enable the performance of the iteration to be objectively assessed.
A committed team
The team must be singularly committed to working together to achieve the iteration’s objectives.The team succeeds or fails as a whole, and all team members must do everything under their control to meet the objectives set for the iteration; all effort should contribute to achieving the iteration objectives.
As well as agreeing on the objectives for the iteration, the management must agree to its schedule and under- stand how it impacts the plans for the project as a whole. Scheduling an iteration can be as simple as setting the iteration’s start and end dates and understanding how the iteration fits into the overall project plan.
An objective assessment
To close out the iteration, it is essential that the results produced are objectively assessed against the iteration’s objectives and evaluation criteria. Assessment should be conducted on a continual basis during the iteration and summarized at the end of the iteration. Without objective assessment it is impossible for the success or failure of the iteration to be judged and for the project to be controlled.
Doing these things ensures a well-defined and measurable result for the iteration that can be tied directly to the overall success of the project. In the next post, I’ll look at The Iteration has a Distinct Set of Activities.