Iteration planning is generally process to adapt as project unfolds by making alterations in plans. Plans are changed simply due to based upon feedback from monitoring process, some changes on project assumptions, risks, and changes in scope, budget, or schedule. It is very essential to include the team in planning process. Basically, planning is generally concerned with explaining and defining and the actual sequence of intermediate results. It is an event where each of team members identifies how much of team backlog, they can commit to delivering during an upcoming iteration.
Iteration planning is generally process of just discussing and planning next cycle, phase, or iteration of software application that is in process of development. An evolutionary developed plan is very essential because there are always adjustments in developed content and schedule as an early conjecture that simply evolves into highly and well-understood project circumstances.
- Inception Iterations :
In some of cases where project includes new product roll-out or simply creation of new technology, iterations might be essential to further explain scope of project, risks, and all benefits. It might also involve a further increase in quality of use-case model, business case, risk list, architectural proof-of-concept, or even project and iteration plans. Extension of this inception phase can also be advised in some of cases where both risk and required investment are high. It can also be advised where problem domain is new or team is not experienced.
The early prototyping technique also integrates foundation components of architecture of candidate and also provide an executable framework for explaining and simply elaborating use cases of system. To achieve prototype that is acceptable, Large-scale, and custom developments are two iterations. But its better for various projects to be able to get by use of only one. Inception iteration is generally responsible to establish scope and vision and to explain and define business case.
- Elaboration Iterations :
In each of iteration, supporting environment is refined further. If initial elaboration is only focused on preparation of environment for analysis and design and implementation after then second iteration might focus on preparation of test environment. The preparation of test environment basically includes configuring test processes, writing development case part, and also preparing or generating templates and guidelines that are needed to be followed for test and setting up test tools.
Elaboration iteration also results in architecture with complete framework and infrastructure for execution. To achieve an architecture baseline that is acceptable, some of projects require two iterations. Some additional and extra iterations may be required by unprecedented architectures. On other hand, projects that are developed on highly and well-established architecture framework can be get by use of single iteration. During elaboration iteration, requirements are defined fully and architectures are well-established.
- Construction Iterations :
The essential result of late iteration in construction phase is that more functionality is added, which yields an increasing complete system. During construction iteration, use cases are generally realized and architectures are fleshed-out. Some of projects need and require two construction iteration. First is an alpha release that includes executable capability for each of critical use cases. Second is a beta release that provides 95 % of total product capability breadth and also achieves some of essential quality attributes that are needed and important.
- Transition Iterations :
Transition iteration is generally responsible to migrate product into user community. Several projects use only one iteration to transition beta release into end product or final product. Even these projects learn to live with only one iteration among beta release and end product or final product release.