Subscribe by Email

Friday, June 1, 2012

What is meant by iteration planning?

Iteration like the release planning holds the same level of importance in the software development life cycle of a software product especially when the agile software development processes are being used to develop it. In this article we are going to discuss about the iteration planning in detail. 

Fundamentals of Iteration Planning

- It is important that the do's and don’ts of an iteration are planned at the very beginning of the iteration so that later no hindrances fall in the path of development. 
- So for this purpose, a meeting is called up which is commonly known as the iteration planning meeting. 
- This meeting is called up at the beginning of the iteration and is called for every iteration. 
- The purpose of this iteration meeting is to plan for the programming tasks that are meant to be completed in that iteration. 
- Iteration is not a small activity; rather it takes around 1-3 weeks for its completion. 
- The whole set of such activities is called an iteration plan. 
- Actually the duration of an iteration depends on the size and complexity of the software project.
For each iteration, a user story is chosen for each of the iterations which appear in the release plan by the customer or the client on the basis of its importance to him/ her. 
- Apart from the user stories the acceptance tests that previously were not passed by the program are also taken in to consideration during the iterations so that they can also be fixed up. 
- The user stories that have estimates equivalent of the project velocity from the last iteration are also considered in to iteration planning of the succeeding iteration.
These acceptance tests and user stories are divided in to programming tasks that are quite supportive for them. 
- These tasks are written down on the index cards similar to that of the user stories. 
- User stories and the tasks are developed in different languages i.e., the user stories are developed in the language of the user whereas the tasks are developed in the language of the developers.
- The tasks having duplicates can be removed. 
- The tasks are written on the cards along with the plan for implementing them. 
- Several developers sign up to accomplish these tasks and draw up the schedule for completing them so that the time taken for their completion can be estimated properly.
- There is one very important thing to be noted here is that the person who takes up the responsibility for completing task should be the one to estimate its time budget and nobody else should do it.
- This is so important because the estimation is largely dependent up on the abilities of the individuals i.e., some might be able to complete it in a few days while others may take a little longer since the people are not interchangeable and hence one who is doing the task must only figure out the estimate. 
- After the estimation of the tasks again the project velocity comes in to the play in the determination of the status of the iteration i.e., to check whether it is over or not. 
- The total time estimate in the ideal programming days similar as that in the case of the release planning must not exceed the project velocity of the preceding iteration. 
- If it exceeds then the customer is suppose to put off some of the user stories for the later iterations i.e., snow ploughing. 
- In another case, if it is less then the previous iteration then some more user stories can be helped too! 
- The velocity of the iteration planning is known for overriding the velocity in the release planning since it is more accurate. 
- Some people may not approve of the snow ploughing but it can be curbed by the techniques like unit testing and re-factoring. 
- You should always avoid adding a feature or functionality before it is really needed. 

No comments:

Facebook activity