Risk in estimation

Last post 07:43 am September 4, 2014
by Olivier Ledru
6 replies
Author
Messages
02:02 pm September 3, 2014

Hi all,

I am hoping to get your thoughts on risk as part of estimation in a scrum team. That's a rather broad topic, so let me give an example to hopefully shed some light on my real need here.

I have a team that works with extremely complex infrastructure issues. Often, they will have a story that they believe should be estimated at, for example, a 5 *unless* they run into one of a few possible issues which would add another 3 points to the estimate (these numbers are examples, so try to keep them separate from the real question). Currently, they are leaving the story estimated as a 5, but if the possible issue arises, a new story (and 3 points) is added and worked on to mitigate that problem and finish the intended solution.

It is my believe that Agile inherently "bakes risk in" by working in short iterations and failing fast. However, this team is asking a great question and I wanted to get your thoughts on how to handle something like this.

As I see it, we have a few choices:
1) Keep working as we are, adding a new story when we find an issue that we somewhat expected
2) Estimate the story assuming that we will include that "what if" issue
3) Have 2 stories from the beginning - one for the work and one for the risk

What I'm trying to avoid is artificially inflated estimates/velocity, while still leaving room for those issues to come up (because they will).

Sorry if this is rather jumbled, but it's a complex situation to explain. I appreciate all of your input, in advance.

03:08 pm September 3, 2014

Estimates should not be padded. They should be updated to reflect an improved understanding of the scope involved. So if the "best estimate" using the information available at the time of sizing is a 5, it should be recorded as a 5. Should subsequent events during the Sprint indicate that it is more like an 8 then the estimate should be updated at that point.

The Development Team should then take a view of the work on the Sprint Backlog, and the risk that any increased scope represents to the attainment of the Sprint Goal. Any appreciable increase in risk should be communicated to the Product Owner. The whole Scrum Team should then attempt to replan the Sprint Backlog so that the Sprint Goal can still be met.

03:12 pm September 3, 2014

Some people will suggest "spikes" in this case, but I won't, because the difference between a 5 and an 8 doesn't warrant a spike. (As an aside, I believe in spike tasks, but do not believe in "spike stories"). If you'r issue was the difference between a 5 and a 40, then spike tasks would be a good fit IMO.

With such a small deviation here (5 to an 8), my inclination would either be to:
a) default to the higher one, or
b) flip a coin on whether it's a 5 or 8. Seriously. If you're environment is going to be as complex as you say, than there will be lots of these, and some will be more than estimated, some will be less -- so they will all even out.

A couple of other things I'm sensing here as possibilities:
* Including technical risk as part of the estimate for an item is not "artificially inflating" -- it is buffering for uncertainty, and there's nothing wrong with that, IMO.
* Why do we care so much about velocity being exactly correct? Software dev is a complex matter as you say, and velocity is really nothing more than a planning tool to help forecast release dates for releases that span multiple sprints.

I should also mention that velocity, user stories, and story points are not part of Scrum, but are useful "complementary practices" that can be used with Scrum.

03:17 pm September 3, 2014

I have a lot of respect for Ian, but I will quibble minorly with this suggestion:

"Should subsequent events during the Sprint indicate that it is more like an 8 then the estimate should be updated at that point."

While this is technically ok/valid from a Scrum perspective, I find it dangerous in practice because it leads to old waterfall habits like estimates/actuals, or a team who doesn't do due diligence to try to create decent estimates because "they can always change it later."

I prefer the approaches I suggested, which are also ok/valid from a Scrum perspective, though I think they fall more in line with Scrum principles or realizing that not everything is exactly predictable in a complex domain, so it's a fool's errand to try for that kind of accuracy.

I think the empirical Scrum thing to do here is, call it a 5 or call it an 8, realize that complexity happens, then retrospect on it later *IF* it's really worth retrospecting on.

So, in short, any of the approaches that Ian, Lindsay, or I suggested are probably ok/valid from a Scrum perspective... the real question is -- which approach works best for the context that you're in?

03:33 pm September 3, 2014

Posted By Charles Bradley on 03 Sep 2014 03:17 PM
I have a lot of respect for Ian, but I will quibble minorly with this suggestion:

"Should subsequent events during the Sprint indicate that it is more like an 8 then the estimate should be updated at that point."

While this is technically ok/valid from a Scrum perspective, I find it dangerous in practice because it leads to old waterfall habits like estimates/actuals, or a team who doesn't do due diligence to try to create decent estimates because "they can always change it later."

I prefer the approaches I suggested, which are also ok/valid from a Scrum perspective, though I think they fall more in line with Scrum principles or realizing that not everything is exactly predictable in a complex domain, so it's a fool's errand to try for that kind of accuracy.

I think the empirical Scrum thing to do here is, call it a 5 or call it an 8, realize that complexity happens, then retrospect on it later *IF* it's really worth retrospecting on.

Charles, you make an excellent point. We're only really concerned about an *average* velocity...not necessarily an *exact* velocity, so these small differences likely won't change the overall average.

I'm still interested in hearing other feedback, but I think I will recommend to the team that we just accept that these things will happen and we should estimate accordingly ("bake risk in" to the planning/estimation) and retrospect on how to improve, if needed.

03:59 am September 4, 2014

I agree that all solutions are OK from a Scrum perspective, just want to add my personal opinion about buffers.
For me they are a classical project management tool to mitigate risks. In Scrum, we mitigate risks by frequent delivery. If we estimate buffers into PBI sizes, and we measure a velocity, this velocity does not only represent what the team got done in a sprint, but also, what it could have done if specific events had happened. But some of them haven't.
From the Scrum guide: "Scope may be clarified and re-negotiated between the Product Owner and Development Team as more is learned."
So we do not estimate for every risk that could possibly happen, but when it happens, we learn more and react. Inspect and adapt.
Lindsay, my personal choice would be to continue your practice, but ask the team what they prefer.

07:43 am September 4, 2014

A team close to me has also a lot of uncertainty. The result is a big ariation of the velocity from sprint to sprint.
But does-it really matter ?
The PO can still compute an average if he wants to, but with a large cone of uncertainty.

If you re-estimate your US from 3pts to 8 pts inside your sprint, you still have the same amount of work remaining in your Product Backlog.
Can your stakeholders just accept the fact that because of the high level of complexity, your estimates are not very accurate ?