Iterative projects often require fundamental changes to the way team members work on a project. On a traditional project, it is easy to avoid really working together as a team. Everyone tends to have their own specialty and deliverables, and it is easy for a person to work in isolation and only interact with other people by passing documents around.
Successful iteration is very different, and requires a very interactive, collaborative way of working, involving:
- Commitment - The whole team (including business representative participants) needs to be committed to making the project a success. This doesn’t have to mean working long hours or promising more than can be delivered; it means just doing whatever it takes to work as a team and meet the iteration’s objectives.
- Focus - The team needs to keep focused on the iteration’s short-term objectives and not get sidetracked by other issues or activities. This is particularly true of the management team members, who need to stick to the iteration’s set of objectives after they have been set and agreed to with the team. The time to change the project’s direction is between the iterations, not during them.
- Honesty - Everyone on the team needs to be honest about what they have achieved and what they can achieve. The team needs to be open and honest about the project and the risks that it faces, sharing the problems and openly discussing any possible solutions.
- Respect - The team members need to respect one another and, most importantly, their customers.
- Agility - The team members must be agile and be prepared to adapt and change the way they work to facilitate the success of the project. There is no point in adopting agile processes that are adaptable to changing circumstances if the team members and plans are not themselves agile and adaptable.
- Teamwork - Iteration requires the development team to truly function as a team. As we have seen, they must be able to put the success of the team ahead of their own personal agendas and ambitions. In an iterative project, the team succeeds or fails as a whole.
With the correct attitudes in place, the adoption of iterative and incremental development practices on your project becomes very easy. The fact that the project is iterating provides the perfect mechanism for the project team to learn how to work in an iterative fashion and tune their behaviors and processes to effectively support the project.