The Three Types of Bad Project Estimates and How to Avoid Them

Estimating time is one of the most challenging aspects of any project plan. This is especially true when it comes to "Agile" software development projects where teams work in sprints (i.e., pre-defined buckets of time) with the goal of shipping products faster without compromising quality.

 

Agile also requires a consistently clear view of the work effort and progress throughout the sprint. Unfortunately, too many teams rely on estimation methods that obscure rather than reflect reality. And bad estimates create a hazardous blind spot that can easily compromise sprint success. By rethinking the way you make estimates, you can prevent deadly blind spots with honest estimates that optimize sprint planning and execution.

First, let's clarify what we mean by honest vs. dishonest schedules. Your schedule is probably lying to you if:

  • It is fed with bad estimates
  • It is unable to adapt to change

So, what makes an estimate bad? Bad estimates all have one thing in common: they don't accurately reflect reality. And if you feed a sprint plan unreliable estimates, you get an unreliable schedule. As they say: garbage in, garbage out.

There are three kinds of bad estimates that are particularly bothersome because they are so widely used by development teams of all shapes and sizes.

Bad Estimate #1. Estimates Based on "Story Points"

Story points represent units of relative size that many agile teams use to estimate software requirements.  That story points are so widely used for estimating time in agile development, is a bit of a mystery. Why? Because story points don't translate to schedule time. In fact, they don't have anything to do with the way real people even think about time. This means that teams have to establish their own translation guidelines for story points which thwarts efficiency and invites misinterpretation. It also makes it difficult to collaborate with stakeholders who don't use or understand story points.

Bad Estimate #2. Blatantly Unrealistic Estimates

Development teams are under a lot of pressure from business owners who want to ship product as quickly as humanly (or not humanly) possible. To get business owners off their backs, developers tend to over-commit and enter overly optimistic (read: unrealistic) estimates. Unrealistic estimates create problems for everyone.

For starters, they create idealistic schedules that look good on paper but have little utility or relevance to reality. And, since an overly optimistic estimate provides a best-case-only scenario, there is nowhere to go when a delay creeps in, which means the whole schedule gets botched. Finally, the expectation of business owners that optimistic is better than realistic can stress the capacity of development teams to an unhealthy breaking point, which threatens both morale and product quality.

Bad Estimate #3.  Estimates with Hidden Buffers

Adding a buffer to an estimate provides breathing room in the schedule. Often times, the one making the estimate doesn't know how long a given task will take - especially if it's a task they've never done before. Developers tend to like buffers; management does not.

The real problem is that a buffer is almost always hidden; no one really knows how big it is or what impact it has on the schedule. It is merely implied. Because of this grey zone, it is next to impossible to respect the buffer. And when the buffer is not acknowledged -- much less respected -- the schedule becomes compromised and iteration targets are easily missed. The bottom line is this: a bad estimate may be overly padded, arbitrarily defined, or unrealistically optimistic, but it is always a danger to your schedule.

There's one more important point about bad estimates. And that is that they are conveyed in single points of time. This too jeopardizes sprint health. As we saw with the best-case-only scenario above, single-point estimates (such as four days, nine hours, or 13 story points) don't have a built-in margin of uncertainty to account for the unknown. They are rigid fixed points, veiled in a cloud of obscurity; and they create rigid, unreliable schedules.

Why Tools Matter

So why is this such a big deal? Because rigid schedules are inherently anti-agile. One reason agile methodologies favor "individuals and interactions" over "processes and tools" is that traditional project management tools are too inflexible for agile's dynamic, collaborative approach. Unfortunately, too many agile teams are unwittingly using tools that work against them by locking them into bad estimates and rigid schedules. Or, if they reject tools altogether, they are left without much of a schedule at all (and a white board that looks like this):

threetypesbad1
Figure 1: A typical agile whiteboard shows the difficulty of analog time tracking

But a new generation of project management tools is emerging that allows teams to estimate their time in ranges rather than single points. Here's how it works:

Use Estimates that Reflect the Way You Actually Work.

Give your time estimates in ranges of real time (i.e., 4-7 hours). Not only is this the way you really think about time and work, it has a buffer of uncertainty built right in for everyone to see. It sounds simple, but the impact is profound. With a ranged estimate you are giving a best-case (low end) and worst-case (high end) scenario of how long it will take you to complete the task. This range captures and conveys uncertainty; an estimate with a wide range, such as 2-5 days, conveys more uncertainty than a narrower estimate, such as 1-2 hours. As work progresses, the uncertainty narrows, and the schedule becomes an even more accurate reflection of reality.

threetypesbad2
Figure 2: A ranged estimate and its corresponding probability curve

Benefits of Using Ranged Estimates

  • Let you plan accurately even within a large range of uncertainty
  • Allow teams to drive uncertainty out of the schedule early (since it can be seen clearly)
  • Prevent sandbagging; and
  • Create a neutral, honest point of communication within teams and with business owners

Conclusion

Agile represents a move to more interactive, humanistic software development methods. While reliance on processes and tools is downplayed in favor of communication and collaboration, the demands placed on agile teams requires more and better planning, estimation, and organization- not less. As such, agile teams benefit from tools that appropriately support and enhance the way they work.

Don't forget to leave your comments below


 

Jason Carlson is the co-founder of LiquidPlanner, online project management software built on an innovative probabilistic scheduling system usingaAgile methodologies. Email him your questions at jason@liquidplanner.com

Hits: 7757
Comments (4)Add Comment
...
written by abhikashyap22, October 28, 2009
This is a nice suggestion we should look into. How do you differentiate between the 2 approach - adding buffer in providing estimates and giving ranged estimates.
...
written by Bruce, October 28, 2009
Nice summary of bad practices.

I like to remind people that bad habits are not overcome by the tool alone. You can still put silly estimates (ranges in this case) into the tool. The same pressures that got you into the bad habits in the first place can do the same to the newest tool, no matter had good is the underlying methodology.

In one case we decide to use Monte Carlo to improve our schedule estimating (we got high, low and most probable estimates from our experts for each task). I'd used the methodology before and knew it could work very well.

However, I watched as "schedule pressure" caused the schedule estimates to slowly "support" the desired schedule. If it did not, then individuals were directed to "figure out" how to make it and update their estimate.

So a tool like LiquidPlanner is great - an effective way to manage your estimates. Just make sure you've warmed up your management (and customers) to the fact that you will now be providing much higher reliability estimates. Let them know you will now be hitting your delivery dates - *and* your estimates will look different from what was provided in the past (i.e., usually longer - but you won't have to slip this time ...).

Regards,
Bruce
http://PMToolsThatWork.com
...
written by mb132822, October 29, 2009
I think the author may have missed the mark here with regard to the use of story points as an estimating technique.

Story points are an estimation tool that works well when employed correctly and in the right context. I have observed the story point estimation technique working very well on many projects.

In a nutshell: Story points are a useful technique for mid-to-long term schedule estimation. I think the author kind of missed the point about "teams inventing their own translation guidelines" because that isn't how it works at all!

Story points are units of relative effort and with them you have to employ data-driven planning to get the best results. Data-driven planning means you look at a team's *ACTUAL* performance over a sprint or two to understand its velocity and you look at the estimates offered for future stories to project out how long the release might take.

The article would have been improved if it had been written from a perspective of "I've tried this", "I had these problems and we could not resolve them with the story point technique". I cannot tell at all from the article if the author has any practical experience with the technique - only that the author dismisses it as "bad".

Like any estimation technique, it has to be *taught* and *understood* before it is used. It takes some time for a team to get used to the technique.

Story points are definitely not a panacea. They are, however, a useful, simple, and "good enough" solution that I have personally observed working well on many projects. Many others have had similar experiences.
...
written by charlesggallagher, October 29, 2009
If you couple critical chain with Agile/Scrum it works great...

Write comment
We love to see comments! However, please do not market or sell any products. Your comment will be removed immediately!
smaller | bigger

busy