Iterative development is simple in concept: it is simply breaking a large project down into a series of smaller projects that deliver value in smaller steps. The hard thing about adopting it is that it requires the project team members and stakeholders to adopt a new set of attitudes and behaviors about how they work together to achieve a common goal. This requires subtle but significant changes on the part of all participants, especially if they have been working on conventional projects for many years. In short, these changes include the following:
A new attitude is required regarding the way that projects deliver business value. The project team must start to focus on delivering immediate and realizable value back to the business.
A new attitude is required toward uncertainty and change: teams must recognize that change happens and there are always uncertainties, so in order to be successful they must purposefully work to manage change and reduce uncertainties.
A new attitude is required regarding team working and accountability. The project teams will • need to be assembled and encouraged to interact in new ways.
Most significantly, a new, more progressive attitude is required for the estimation, planning, and management of the project itself.
With new attitudes in place, the adoption of iterative development practices becomes easier. If the project team and stakeholders have the wrong attitudes toward iteration the early iterations are more likely to produce personal friction than project progress, in some cases generating enough opposition to prevent the project from being able to produce effective results.