Subscribe by Email


Showing posts with label Project Velocity. Show all posts
Showing posts with label Project Velocity. Show all posts

Sunday, June 3, 2012

What is release planning and what is the need of release planning?


Release planning forms a very important part of the whole software development life cycle and from the term itself you can make out that it is related to the release of the software product.

What is a Release Plan?


- A release plan is drawn up during the release planning meeting. 
- The purpose of the release planning meeting is to lay out the overall project plan. 
- The release plan is further used to plan the iterations and schedules for the other processes. 
- For every individual iteration, a specific iteration plan is designed keeping in mind the specifications of the release plan. 
- It is important that a balance should be maintained between the technical aspect and the business aspect of a software project else the development conflicts will arise and the developers will never be able to finish the software project on time. 
- So, to get a better release plan it is important all the technical decisions must be handled by the technicians and all the business decisions are taken up by the business people. 

How to draw a proper release plan?


- To draw out a proper release plan, it is important that these classes of the stake holders co- ordinate properly. 
- In order to facilitate the co- ordination among these two, a set of rules has been defined for the release planning.
- With these rules it has been made possible that each and every individual involved with the project is able to state his/ her own decision.
- With such a way, it gets easy to plan a release schedule to which every one can commit to. 
- Otherwise, the developers will find it difficult to negotiate with the business persons. 
- The essence of the release planning meeting lies in the proper estimation of all the user stories in terms of the ideal programming weeks. 

What is an ideal programming week?


Now you must be wondering what an ideal programming week is. 
- The ideal programming week is defined as how long one can imagine regarding the implementation of a particular user story if there was nothing else to be done. 
- Here by nothing else we do not mean a total absence of the other activities! 
- It only means the absence of the dependencies and extra work but presence of tests.

Factors on which a release plan depends are:


- The importance level of a user story is decided by the customer itself.
- He/ she also decide how much priority is to be given to which user story regarding its completion. 
- There are two factors based up on which the release plan can be drawn:
  1. Scope or
  2. Time

Role of Project Velocity in Release Planning


- A measure called the “project velocity” helps with the release planning. 
- This measure proves to be a great aid in determining the number of the user stories that can be implemented before the last date of the completion of the software project.
- Or in the terms of the scope, the project velocity helps in determining the number of user stories that can be completed. 
- When the release plan is created according to the scope, the total weeks of the estimated user stories is divided by the project velocity to obtain the total number of the iterations that can be carried out till the due date of the project completion. 

Philosophy Underlining Release Planning


The philosophy that underlies the release planning is that the quantification of a software product can be done by the below mentioned 4 variables:
  1. Scope: It defines how much work is to be done.
  2. Resources: It states the number of the people available.
  3. Time: It is the time of the release of the software product and
  4. Quality: It defines how good the software is. 


What is meant by project velocity?


The project velocity is one of the terms that you come across while discussing about the iteration planning and release planning! The project velocity has a got a very important and  not to be ignored part to play in these two mentioned planning processes but still most of us are not aware of its importance. 
This article is centred on the project velocity and has been discussed in detail. Like the normal physics velocity, the project velocity gives the speed of the development of a software project. 

In other words, the project velocity gives the amount of work being and efforts being spent on the software project. 

About Project Velocity


- The project is simply the summation of all the estimates of the user stories that were involved in the iteration. 
- For the release planning, you add up the estimates of the user stories and for the iteration planning the estimates of the programming tasks are added up. 
- But anyway, both the factors can employed for determining the project velocity in the case of the iteration planning. 
- In the iteration planning meeting, the number of the user stories chosen by the customer is same as it was in the previous iteration. 
- There is a rule that the project velocity of the consecutive iterations must not exceed their preceding iterations. 
- These programming tasks are nothing but a broken down or divided version of the user stories. 
- The development team is supposed to take up or sign up for only the same number of tasks that were present in the previous iteration. 
- Such an arrangement proves to be a great help to the developers when they stuck in a sticky situation and need to recover and clean up from it and thus getting the average for the estimates. 
- The project velocity is suppose to rise when the developers are allowed to question the customers for other user stories when they have already finished their work and tasks like cleaning up are also accomplished.

Please do not think that you will get the project velocity consistent throughout the development cycle! It is expected to follow through some ups and downs. 
- But if a dramatic change is observed in the project velocity, then it is an issue of concern. 
- But there is no need to worry since all this can be kept in check by re- estimation and re- negotiation of the release plan. 
- It is not just in this case that the project velocity may change! 
- Even when the system is put under production for the maintenance tasks, again the project velocity is subjected to changes. 
- Division of the project velocity by the length of the iteration or the number of people involved. 
- Furthermore, the number of the people involved in the iteration is not an appropriate way for making comparisons between the productivity of two products. 
- This is so because each and every team has got its own different criteria for estimating the user stories and so we get some high estimation and some low estimation. 
- Important is to keep a track of the amount of work being done on the project so that a steady project velocity for the development can be maintained that can also be easily predicted.

The problem comes while making the first estimation! 
- At least for the following iterations you will have a clue that what project velocity is required. 
- If this measure is used properly you may be able to detect a major fault in your project much before the time at which you would have known with the help of the traditional development methods. 


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. 


Facebook activity