Here is a summary of how to forecast project progress without estimating:
- Do not estimate stories with story points. Instead, just count them. Use some kind of slicing heuristic when taking stories into development. Do not estimate them.
- Constantly collect throughput data (# completed stories per time period).
- You know how many stories you have in your backlog.
- Using this information, you can steer / make decisions about your project without estimating. You can forecast using the team’s throughput and project it to the work remaining. You constantly “steer the ship” by using data, not estimates.
As far as I’ve understood it, that’s the approach Vasco Duarte is explaining here in Agile Riga Day 2012 keynote speech (starts around 30min mark). I like that approach a lot. That’s pretty much what I’m using in my current job. I think it’s a lot better approach than the good old story points + planning poker approach, where we try to estimate the duration of each task.
Here comes the catch. “You know how many stories you have in your backlog”. Actually, you don’t. You have two options if you want an approximate number:
- You do up front requirements gathering, and groom the stories to the backlog.
- You estimate how many dev sized stories does the remaining work consist of.
The approach #1 is, IMO, problematic because it really smells like big up front design. And there is lots of potential waste grooming stories that never actually get implemented. Aren’t we trying to avoid that? The approach #2 is, IMO, a lot better, but it kind of ruins the promise that we had, that we would forecast the project progress without estimating.
Still, I think that estimating the number of stories is easier than estimating duration, because then you don’t have to estimate wait times. Which often are really hard, maybe even impossible, to estimate.
There is actually a third option. It would be to start working and learning. But in any case, even in that approach, you somehow need to approximate how many stories you have left IF you want to do forecasting.