2 Comments
So, last time I talked about how maybe we should rethink the concept of contingency in agile projects and introduced the concept of Adaptive Capacity, our ability to deal with the ever expected change. Adaptive Capacity is comprised of three major sources:
So that’s fine, but how can we apply it to a project? This is starting to move into governance and how we control our project.
The Adaptive Capacity can be made up of a number of different resources which we can call upon. To start with, we have functional contingency or Functional Adaptive Capacity using our new naming convention. This is comprised of the lower value stories at the bottom of the backlog that we don’t actually have to deliver to still complete a successful project. But if we accept that there will be a requirement for Adaptive Capacity, then the story at the bottom of the backlog is a certainty for non-delivery and so are some of those above. So, if from day one we are saying the chance of delivery of a story is almost zero, why even bother listing it? Doesn’t this give the wrong message to the business? Functional adaptive capacity is a pretty important principle to establish with the business, but I think we need more or within 5 minutes of starting the project we start cutting functionality the business was hoping to get.
So let’s add an Adaptive Capacity story to the end of the backlog. This is a story with no functional content, used as a points reserve. We can assign some points to it and decrement the points as we draw down on them. At least this way we have something to draw on before we start to tell the business the bad news that we won’t be able to deliver some of the functionality they were hoping for. This story can be monitored and the reserve reported on as part of the sprint governance process. What you do when this is exhausted is another question. Maybe it’s time to start calling on that functional adaptive capacity.
OK, that’s great, we have some instruments to play with, but can we use them a little better than adding it all to the end? So, if we are using an Incremental Delivery Strategy, we establish milestones through the project where we can deliver business value before the end of the project. Some of these milestones can move with limited effect, but some may have a significant impact if we have to move them due to the effects of change. So, we could slice up our instruments and use them to protect these. We could use Functional adaptive capacity by allowing stories to slip out of the milestone. The problem here is that if we have already moved the low value features down the backlog already, early milestones may not have much functional adaptive capacity to call on. However, it's not that hard to deal with. You could set the milestone a few stories down the backlog with the last stories not actually required for the milestone (assuming of course the addition of these stories will have no negative impact on the milestone if they do in fact get delivered as originally planned). If you need to call on adaptive capacity, you can shift the non-critical stories out of the milestone and still keep the milestone objectives. As for Adaptive Capacity stories, we can inset them at each milestone to allow for change and still protect the milestone. If you finish all the stories and reach the adaptive capacity story, you can simply move it down the backlog to keep the capacity available for later and start on the next story.
But all this is pretty basic project management isn’t it? Well you would think so, but its rare that I see an agile team planning how to deal with the effects of the change that they fully expect to hit them. ‘We will deliver less points’ seems to be a common answer and in my experience that doesn’t really go down very well with business teams planning a release.
While I was working with one of my clients a few years a go, I was given a book to read by the CEO. "The Speed of Trust". I read the book with a healthy dose of scepticism having read many management books in the past. But this book resonated with the core principles of Agile for me.
Comments
26 Sep 2012 10:54
Is this really a problem peculiar to Agile projects that needs a new name and approach for Agile projects?
replyI still feel that projects should be planned with Change allowance and Contingency, the first for changes to scope and the second for the surprises that cause the cost of delivering to scope to be higher than planned.
Contingency should be factored (hidden) into the forecast unit cost of stories and change should be subject to Sponsor approval.
29 Sep 2012 09:26
This particular technqiue has been one I have been using for several years to counter uncertainty. Selling it to business types has been a problem as they like to see Sprints filled with stories. They generally buy into the concept but I've had a few difficult meetings! I was recently called into help an Agile project that had gotten into serous trouble. After looking at the amount of risk they were carrying, we actaully put a whole Sprint in with no stories allocated to it.. The Governance Team bought into the idea and I think it was one of the key elements in the recovery plan that gave everybody some confidence that revised delivery date could be achieved. As it turned out, they didn't need all of the contingency sprint so have been able to move ahead with new stories earlier than planned.
replyPost new comment