Monday, June 1, 2015

Estimate a release in Scrum

In Agile, time and again people ask this question "How would you estimate a release for a product?". When it comes from management they want to know the following:

  • Calculate the man hours which is at their disposal to get to the release date
  • Risk assessment
  • How many people we need, can we expedite the development if we pump in more man power?

There are many more questions. In some cases they want to use some complex prediction algorithm to come up with the release date. Oh!! My god, I think, at the end of the day who is going to implement the features? Can an algorithm do an exact implementation? Can you use the available man hours?
 
I would say no. There is danger in using man hours. We don't take into account the diversity of a team. It can have people with experience levels. A person with ten years of experience may be able to finish a task in four hours, while another person with five years may take a day and someone less experienced may take two or more days. How does an algorithm include these differences? Or the team may be comprised of a tester, developer, BA etc. Each one has different work to do and you can't consider everyone to complete the different kind of work in the same hours at their disposal. Many a time management either doesn't understand or doesn't want to come out of its traditional way of running business.
 
There is an easy solution to this. No fancy algorithm, no man hour calculation, nothing. If you are aware of Agile concepts then what I am going to say may sound familiar. You can use the velocity of the team to come up with more accurate predictions. But before we see how we can predict release, we need to understand what velocity is.
 
Velocity is the story points a team can deliver in each sprint. A sprint can be anywhere between two to four weeks. I like to have smaller sprints of two weeks. Thinking that a sprint is of two weeks in length, let's examine further how velocity is calculated. Below is a table showing the sprint and the story points achieved in each sprint.

Sprint # Story points per sprint Velocity
Sprint 1

1

1
Sprint 2

3

(1+3)/2 = 2
Sprint 3

3

(1+3+3)/3 = 2.3
Sprint 4

5

(1+3+3+5)/4 = 3
Sprint 5

3

(1+3+3+5+3)/5 = 3

So from the above table you can see how a team's velocity is calculated. In the first sprint (two weeks) it achieved one story point (SP). In the second it gained three SPs. So velocity is the total number of SPs achieved in all sprints divided by the number of sprints. In the third sprint the velocity was 2.3 and by the end of fifth sprint the velocity stabilized to three SPs. With that knowledge of what velocity is, let's tackle the problem of calculating a release date for a set of features.

There are two ways to do this. One is where the team has historical data to calculate velocity and second where the team is new and there is no historical data. Let's see the easy one first.

When the team has Velocity data?
This situation is applicable for teams that have been working on products for a long time and has historical SP data to calculate its velocity. The product owner gets a set of ten new features from the client and he wants to know how quickly the team can deliver these.

The solution is simple. Give the ten new requirements to the team and ask them to come up with estimate. Here is the process which needs to be followed.

  1. The team (dev, QA, BA) gets into a quick release planning (not really release planning) meeting with the product owner.
  2. The team and Product Owner (PO) go through the list of features and try to understand each one of them. There is no need to know the nitty gritty of the requirements as they may be pulled out in future. The team needs to get enough information so that it can estimate.
  3. Once the team has enough understanding about a feature it can estimate the user stories (features). The estimate is done in terms of SPs. The team plays planning poker. Below is the table showing the SPs estimated by the team for the features.
Features Story points
Feature 1 5
Feature 2 3
Feature 3 3
Feature 4 8
Feature 5 5
Feature 6 8
Feature 7 3
Feature 8 3
Feature 9 5
Feature 10 2
  1. After all the ten features have been estimated calculate the total SPs for the ten user stories. From the above table the total SPs is 45.
  2. From the first table we know the team's velocity is 3 and the total SPs estimated for 10 stories is 45. If the team can deliver three SPs a sprint then to deliver 45 SPs it will take 15 (45/3) sprints. 15 sprints = 30 (15 * 2) weeks. 30 weeks = 7.5 months. So the team will take 7.5 months to finish the ten new features. To this you need to add the regression, stabilization and any other phases required for delivering a quality product. In essence the time taken is 7.5 months + Time required for Regression + any other stage.
For fairly new team that doesn't have historical data
  1. Follow the above steps from 1 to 4. Let's go with the same 45 SPs as the estimate.
  2. Now we don't have historical data to calculate the release date. What can be done? The team can decide and assume a number as its velocity. Say the team has decided two SPs as its velocity. Based on the team's assumption of its velocity you can calculate the release date.
  3. As the sprints end the team can start re-calculating its velocity and adjust the release dates.

From my experience a team reaches a stable velocity within four to six iterations. So in two months you can exactly predict the release date.

What happens if we don't meet the target?
During the release planning the team needs to fix dates on feature freeze and code freeze based on the overall estimate. By the time you reach the feature freeze date the team will have a good idea on whether it is going to deliver all the promised features. If the team is not able to keep the commitment -- if it has promised ten features and only eight will be completed --then the team members need not panic. The approach would be to ask the product owner to start negotiating with the client. Either the client has to accept the product with eight features or extend the time to get the whole set of features. This is quite normal and from my experience if you have a good product owner who has good negotiating skills the client will accept any of the above options.
Another advantage to Agile is that the client need not wait for years to get features. At the end of every end of the sprint the client gets a feature delivered. And I have seen except for few scenarios, client are quite accommodative. The reason is that client can see the ROI every two weeks and this actually builds confidence.

What happens if the client cuts short the estimate from x to y?
The answer is simple. You tell the client that X will be the time taken to deliver ten features and if you cut the time short then in Y time frame you can deliver only six features.

What happens if the client adds new requirements?
If the client adds more requirement and wants it in the same timeframe, then the team needs to tell the product owner that if you add new features then out of the previously committed ten features we may have to drop few to accommodate the new ones. This can happen only when prioritization comes into play.
The product owner and client need to decide the priorities for the features. Based on the priorities the team will tackle higher priority items first. Once the higher priorities are targeted it will pick up the lesser priority items. The product owner either needs to buy more time to include the new features or need to get few items off the list so that new items can be accommodated in the timeframe.

35 comments:

  1. Great site for these post and i am seeing the most of contents have useful for my Carrier.Thanks to such a useful information.Any information are commands like to share him.
    Manpower Services in Chennai

    ReplyDelete
  2. wow really nice. It will be helpful for the people those who are ready to crack the interview and please also for remind what they have learned throughout concept.

    SEO Company in India

    ReplyDelete
  3. The given information was very excellent & Great tips, and awesome way to get exert tips from everyone,not only i like that post all peoples like that post


    Laser Teeth Whitening Dental Clinic in Chennai

    ReplyDelete
  4. Thank you for sharing such a nice and interesting blog with us. I have seen that all will say the same thing repeatedly. But in your blog, I had a chance to get some useful and unique information. I would like to suggest your blog in my dude circle.
    Java Training in Chennai

    ReplyDelete
  5. Excellent and very cool idea and the subject at the top of magnificence and I am happy to this post..Interesting post!
    Thanks for writing it.What's wrong with this kind of post exactly? It follows your previous guideline for post length as well as clarity.
    Web Development Company in India

    ReplyDelete
  6. always sharing your information regularly for my future reference. This content creates a new hope and inspiration with in me

    Digital Marketing Company in Chennai

    ReplyDelete
  7. I read your articles very excellent and the i agree our all points because all is very good information provided this through in the post.


    Best Root Canal Treatment In Chennai

    ReplyDelete
  8. lot of things learnt from your blog. got more ideas for us. wonderful tips makes from yours. Executing and testing our status very helpful one.
    Australia Education Consultants in Chennai

    ReplyDelete
  9. Usually I do not read post on blogs, but I would like to say that this write-up very forced me to try and do it! Your writing style has been surprised me. Great work admin.Keep update more blog.
    best GMAT coaching classes in chennai

    ReplyDelete
  10. All the details are explained clearly with the great explanation. Thanks for this wonderful blog. Step by step processes execution are given clearly.Know the details about different thing.
    Selenium Training in Chennai

    ReplyDelete
  11. Finding the time and actual effort to create a superb article like this is great thing. I’ll learn many new stuff right here! Good luck for the next post buddy..
    SEO Company in Chennai

    ReplyDelete
  12. This blog having the details of Processes running. The way of running is explained clearly. The content quality is really great. The full document is entirely amazing. Thank you very much for this blog.
    Hr Consultancy in Chennai

    ReplyDelete
  13. Thanks for this blog. provided great information. All the details are explained clearly with the great explanation. Thanks for this wonderful blog. Step by step processes execution are given clearly.Know the details about different thing.
    Home Spa Services in Mumbai

    ReplyDelete
  14. Wonderful bloggers like yourself who would positively reply encouraged me to be more open and engaging in commenting.So know it's helpful.

    Seo Company in Chennai

    ReplyDelete
  15. Thanks for this blog. provided great information. All the details are explained clearly with the great explanation. Thanks for this wonderful blog. Step by step processes execution are given clearly.Know the details about different thing.
    Seo Company in India

    ReplyDelete
  16. This comment has been removed by the author.

    ReplyDelete
  17. Thank you for taking the time to provide us with your valuable information. We strive to provide our candidates with excellent care and we take your comments to heart.As always, we appreciate your confidence and trust in us
    Best Dental Clinic In Chennai

    ReplyDelete
  18. Very nice post here thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.

    Web Designing Training in Chennai

    ReplyDelete
  19. Great site for these post and i am seeing the most of contents have useful for my Carrier.Thanks to such a useful information.Any information are commands like to share him.

    Digital Marketing Company in Channai

    ReplyDelete
  20. This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.
    Fresher Jobs
    Fresher Openings

    ReplyDelete
  21. Thank you for taking the time to provide us with your valuable information. We strive to provide our candidates with excellent care and we take your comments to heart.As always, we appreciate your confidence and trust in us
    Digital Marketing Company in India

    ReplyDelete
  22. Finding the time and actual effort to create a superb article like this is great thing. I’ll learn many new stuff right here!
    Good luck for the next post buddy..
    Staffing Companies in Bangalore
    HR franchise in Bangalore

    ReplyDelete


  23. تعد خدمات التنظيف المتعلقه بالمنزل بصفه عامه ان الامور الهامه حاليا لما لها من ترابط وثيق بالصحه والقضاء علي الامراض وخصيصا تنظيف الخزانات والتي تعد من الضروريات حيث يجب تنظيفها بصفه دوري
    شركة تنظيف بالخرج
    شركة تنظيف خزانات بالخرج
    فان كنت عميلنا الكريم من الرياض او الخرج او جده فنحن نوفر لك افضل خدمات التنظيف العامه بمعدات حديثه وعماله مدربه


    ReplyDelete
  24. I do believe all of the concepts you’ve introduced in your post. They’re very convincing and will definitely work. Nonetheless, the posts are too short for novices. May you please extend them a bit from subsequent time? Thank you for the post.
    Android Training in Chennai
    Digital Marketing Training in Chennai
    Dot Net Training in Chennai

    ReplyDelete
  25. Its fantatic explaintion lot of information gather it...nice article....
    seo company in Chennai

    ReplyDelete
  26. you are posting a good information for people and keep maintain and give more update too.
    seo services in india

    ReplyDelete
  27. This is a very interesting web page and I have enjoyed reading many of the articles and posts contained on the website, keep up the good work and hope to read some more interesting content in the future.
    Digital Marketing Training in Chennai
    Web Designing Training in Chennai

    ReplyDelete

  28. you are posting a good information for people and keep maintain and give more updates too.

    seo company india

    ReplyDelete

  29. Its a wonderful post and very helpful, thanks for all this information. You are including better information regarding this topic in an effective way.Thank you so much

    Personal Installment Loans
    Payday Cash Advance loan
    Title Car loan
    Cash Advance Loan

    ReplyDelete
  30. you are posting such a new idea is very interesting and give updates.
    msbi training in chennai

    ReplyDelete
  31. your post conveys a good messages and interesting things and give more updates.
    digital marketing company in india

    ReplyDelete

  32. Interesting blog about estimate release in scrumwhich attracted me more.Spend a worthful time.keep updating more.
    Informatica Training in Chennai

    ReplyDelete
  33. very very amazing explaintion....many things gather about yourself...yes realy i enjoy it
    SEO Company in India

    ReplyDelete

Please provide your valuable comments.