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:
Post a Comment