Nearsoft, Inc.
home » blog » Better Estimates in 10 Steps



  • Forgot your password?
  • Forgot your username?
Nearsoft, Inc.

Home

  • Back to Nearsoft home

Blog Authors

  • Jorge Pablos (3)
  • Matt Perez (58)
  • Victor Velasquez (11)
  • Julio Gonzalez (10)
  • German Rodriguez (1)
  • Bobby (1)
  • Renato Fontes (2)
  • Manuel Monteverde (1)
  • Hugo Blanco (1)

Blog Categories

  • Events (1)
  • Global Affairs (2)
  • Management (18)
  • Miscellaneous (38)
  • Mobile Development (2)
  • Outsourcing (4)
  • Presentations (10)
  • Software Development (11)
  • SuperHappyDevHouse (0)

Blog Archive

  • August 2010 (3)
  • July 2010 (1)
  • June 2010 (3)
  • May 2010 (5)
  • April 2010 (3)
  • March 2010 (6)
  • February 2010 (7)
  • January 2010 (3)
  • December 2009 (1)
  • October 2009 (5)
  • September 2009 (4)
  • August 2009 (8)
  • July 2009 (8)
  • June 2009 (4)
  • May 2009 (3)
  • April 2009 (5)
  • March 2009 (8)
  • February 2009 (1)
  • January 2009 (1)
  • December 2008 (4)
  • May 2008 (1)
  • December 2007 (1)
  • January 2007 (1)

Site Menu

» home
» about us
» contact us
» blog
» site map
» faq
» other resources
» outsourcing risks
» which shore?
» case study
» managing risks
» tce
» tce scenario
» success stories
» the nearsoft (quick) intro
» nearshoring... the movie
» join us!

Follow Us!

Facebook This blog in Facebook
Twitter Twitter @nearsoft

Links

  • Blog Directory
  • Add to Technorati Favorites
Great Place to Work
WorldBlue - Most Democratic Workplaces

Closer is Better >> Nearsoft Blog

A short description about your blog
  • Blog Home
  • Tags
  • Search
  • Feed
Julio Gonzalez

Better Estimates in 10 Steps

Posted by Julio Gonzalez on 10/09/2009 in project management , Collaboration
/blog/better-estimates-in-10-steps.html
Permalink Print PDF

 I’m not a fan of using story points, however, one way or the other, estimates are a very important step in any project and a key to delivering on-time.  The result of not doing it is downright awful, and everybody in the team suffers the consequences.  In this post I want to share the steps we follow to make estimates.

Without further ado,

  1. Get the whole team to learn what the user stories or features are all about.  It is very important that everybody in the team understands all the features that go into a sprint.  Clarify the requirements so that everybody understands in depth what they are estimating.
  2. The team must include an active Product Owner, otherwise do not proceed with the estimates.
  3. The Product Owner needs to answer every question the team raises.  If the team doesn’t raise any question, then there is a problem.  Keep at it until everybody understands all the stories in the same way.
  4. For every feature, have the team make three estimates: best case, worst case and most likely case, in that order.  Order is important because you want to give people a chance to be their usual optimistic (best case) or pessimistic (worst case) selves.  Once they get this out of their system, there’s a better chance that they can lean back and come up with a realistic most likely estimate.  Once you have these numbers, use PERT to calculate the task’s ETA.  Normally this is calculated as (Best Case + 4*Most Likely + Worst Case)/6.  If you know from experience that the team tends to be overly optimistic or pessimistic you can change the factor to weight the calculation one way or the other.
  5. Promote a participative culture in your team.  Ask, and encourage others to challenge estimates that seem out of range.  Why is the estimate so high?  Why so low?  This discussion might uncover obstacles and opportunities that would normally go unnoticed.
  6. Keep cycling through the estimates until every single question that can be answered has been answered and each estimate falls has been sanity-checked by the whole team.
  7. BTW, besides better estimates, this process really cements down the team’s commitment to these estimates.
  8. Calculate the team’s capacity per sprint, Capacity = #team members * working hours * days in the sprint. It’s important to take into account vacations, holidays, planned personal time off, and whatever limits capacity.
  9. Once capacity is calculated, then you can figure out what features really fit in the sprint.
  10. To learn from your estimation process, keep track of metrics, especially deviations.  Once you have history from at least three sprints, you can use these statistics to polish future estimates.

 It is highly important that this be a commitment-driven process.  In the end, the sprint goal must be crystal clear and the whole team must be on board with it.  Given this commitment, the team will make sure that the sprint is delivered on time.


[ Back ]
Bookmark
Email this

TweetBacks (Tweet this post)

Trackback(0)

TrackBack URI for this entry

Comments (10)

Subscribe to this comment's feed This comment's feed

Show/hide comments
Never forguet to re-estimate
0
Very good advice, a point I would like to particularly stress is that it is very important to remember that estimating is not a thing you do once at the beginning of a project (because at that time you are at the moment with greatest uncertainty). You need to periodically revisit you estimates and adjust them based on the performance that you team has presented so far.

Also remember to re-estimate if you have increased (or decreased) the number of people available in your team, and keep in mind Brook's law: "adding manpower to a late software project makes it later" so do not assume that since you added more people to your project is going to take less time.
Francisco , October 09, 2009 | url
  • report abuse
  • +0
  • vote down
  • vote up
Do not spend too much time on estimations
0
Estimate at the beginning using UCP method.
It is accurate +-5%.
Then proceed with actual work.
Establish common lexicon early.
Enforce opennes
Hire one vertical slice architect with bacground in many domains.
Don't divide individable.
Don't reinvent the wheel, stick to process and other methodologies like RUP, SOMA,
SIMM, SOA, SOE, TOGAF, Zachman, etc
Bran , October 10, 2009
  • report abuse
  • +0
  • vote down
  • vote up
accurate +-5%.?: If it is seems to good to be true, it probably is
0
Bran,

What you are saying is that if UCP is followed you hit the originally estimated plan with a maximum error of %5 extra time?

That means that if you calculated 3 "real" months for you project, that is 60 work days, you finish it max. 3 days later, without over budgeting, without coming to work any weekend, without any major bugs,and working only 8 hours a day (and with a system that does exactly what the user wanted a the beginning).

Truly amazing (an IMO very unlikely)... I really hope it is true for you, although in my experience most initial estimates have errors in the range of -25% to +400% due to the cone of uncertainty:

http://www.construx.com/Page.aspx?hid=1648

IMO, without re-estimation based on the performance of your team so far with the project initial estimates quickly become irrelevant...
Francisco , October 10, 2009 | url
  • report abuse
  • +0
  • vote down
  • vote up
Estimating - a black art
0
Julio:

Great post. We follow a similar process. One thing that I've found very helpful is the concept of a "commit" where, halfway through the sprint, we revisit the list of user stories with the dev team and ask them to readjust the estimate if necessary and "commit" to the deliverable. Before that, it was difficult to get folks to think deeply about the requirements. 2 hours, 2 days, w weeks, whatever - the dev team wasn't really taking the estimates seriously. The idea of the commit meant that the developer would stay late, work weekends, etc. if behind, and kick off early if they were done ahead of schedule. Giving them a sense of responsibility and control has worked wonders for productivity and general morale.
Again, thanks for the excellent post.
Andy Kieffer , October 26, 2009 | url
  • report abuse
  • +0
  • vote down
  • vote up
Thanks
0
Thanks for all your comments which are the real value of the blog post


Julio.
Julio , October 26, 2009 | url
  • report abuse
  • +0
  • vote down
  • vote up
Re:Never forget to re-estimate
0
Thanks Francisco, re-estimates are a very good point, most of the time there are tasks that take longer/shorter than estimated, It's very common that the task owner realizes something unknown about the task when (s)he is actually doing the job, then, is fair to do the adjustments needed and properly manage the expectations with your stakeholders.
However re-estimates needs to be carefully managed and they need to be done based on the right reasons.
Julio , October 26, 2009 | url
  • report abuse
  • +0
  • vote down
  • vote up
RE:Do not spend too much time on estimations
0
I never used that method before, although UCP seems to be a good approach for estimates.

I'd say that time needed for estimates depends on the time needed for the team to clearly understand requirements and evaluate the involved tasks needed to achieve the goals.

In case the team get stuck you can always define some assumptions and manage them as the project progresses.

Julio , October 26, 2009 | url
  • report abuse
  • +0
  • vote down
  • vote up
RE:accurate +-5%.?: If it is seems to good to be true, it probably is
0
Francisco,
The +-5% deviation seems to be something impossible, even more if you are at the very initial stage of the project and because the cone of uncertainty , giving an estimate at this stage specially if not all requirements are clear is highly risky, in this case I would give a range rather than commit to a target date. In the other hand using Scrum or any other agile approach will give you this kind of flexibility “Adaptability rather than Predictability”
Julio , October 26, 2009 | url
  • report abuse
  • +0
  • vote down
  • vote up
RE: Estimating - a black art
0
Andy,

Thanks for your comment, even when we review the roadblocks for completing the sprint on time on daily basis, it's a very good suggestion to revisit stories, estimates and commitment for delivery, will try that.

Thanks.
Julio , October 26, 2009 | url
  • report abuse
  • +0
  • vote down
  • vote up
Agile Manifesto: while there is value in the items on the right, we value the items on the left more
0
Julio,
I totally agree with you, knowing the future is very hard smilies/wink.gif, to be agile we should always prefer Adaptability over Predictability

http://agilemanifesto.org/
Francisco , October 28, 2009 | url
  • report abuse
  • +0
  • vote down
  • vote up

Write comment

smaller | bigger

busy
home | about us | contact us | blog | site map || faq | other resources | outsourcing risks | which shore? || case study | managing risks | tce | tce scenario | success stories || the nearsoft (quick) intro | nearshoring... the movie | join us!
© Nearsoft, Inc.  All rights reserved.