Now that #noestimates has become fairly mainstream, you could wonder how #noestimates can help you predict the future? When I saw that InfoQ included #noestimates as part of their “State of Agile” article for 2014 it was clear to me that #noestimates will continue to be part of our common future.
Predictions are necessary
We have always needed and will always need predictions of the future. In agile software development, the normal approach is to ask the team that is going to do the job to estimate how much work it will require. That is then used as one input to a prediction (or forecast) of what will be delivered when.
How soon will #mhealth cure #cancer? http://t.co/MWDVWqvvuF via @SpringerLink #research
— Greger Wikstrand PhD (@GregerWikstrand) 19 december 2014
We should recognize that there are limits to how well we can predict the future. But still, we keep doing it. How many times have you heard that the “cure for cancer” is only “ten years away”? Too many to count probably. It is hard to predict what will happen in software development as well. It is especially true for solving bugs. Solving the problem is often trivial, finding it is unpredictable.
But still, it is necessary to predict the future. Let’s take a simple example. I have sheep. In spring, summer and autumn they live by grazing the land. In the winter, it is up to me to provide them with sustenance. That sustenance will be a combination of hay, straw, minerals, salt etc. But how much will I need of each? This is something I need to decide in early spring because the hay needs to be sown, grown and harvested early to provide the premium quality feed that sheep require.
There are many factors to consider in this decision. On one hand, there are the sheep. What are their nutrional needs next winter? That will depend on how many they are, the weather, how many lambs they carry, the number of non-vegetative days during the winter and so on. On the other hand, it will depend on the quality of the feed. How nutritious is the feed? How much water, fibers, protein etc does it contain?
I cannot avoid to do a prediction just because it is hard. If the sheep do not get enough feed, they will starve. If I buy too much feed, I will not cover my costs. (I am not aming for profitability, the operation is too small for that, but it is nice when it covers its own costs.) Somehow, I need to come up with an estimate for how many bales of hay will be required to meet the ewes’ needs.
Estimates and predictions
I cannot ask the sheep how much they will consume from the backlog (sorry, I mean hayloft) per sprint. I’ll have to use another technique such estimation by analogy, parametric estimation or rely on historical data. In fact, I need to use a combination of all of these methods to estimate what the weather will be like and what the nutrional needs of the sheep will be. Based on that information, I will predict how many bales of hay will be consumed, add a risk margin and then place the order to my supplier.
It won’t be enough to just predict how much hay I need. I also need to follow up continuously to ensure that hay is being consumed at a sustainable pace (literally). Too much hay and the sheep will get fat and it won’t last. Too little hay and they will starve. At the end of each sprint (sorry, I mean week) I assess their condition to ensure that they stay in the sweet spot.
Predicting the future with #noestimates
So, can you predict the future with #noestimates? Will you be able to tell the customer what will be delivered, when and how much it will cost? Is that even the right question to ask? The discussion on #noestimates is usually limited to software development but I believe that this post, by analogy, gives some small illustration of the enormous difficulties to be overcome before it will be possible to use #noestimates as a basis to predict the future.
Oh, and yes, if you are wondering. I am planning to write a longer piece on what my sheep taught me about agile. But first, I need to finish my answer to Mike Lehr on this:
@GregerWikstrand Are there personality differences btwn those who like to work in agile and those that don't? I suspect "yes." What r they?
— Mike Lehr (@MikeLehrOZA) 18 december 2014
Image sources
- Hay rations for freezing sheep: Rudi Winter on Geograph | CC BY SA 2.0
- Nostradamus prophecies: By Zereshk on Wikimedia Commons | PD
Greger,
Interesting post, and I loved the very tangible and very germane example of the sheep as essentially something that requires estimation.
Several points:
1) I honestly don’t know what could possibly make anyone believe that #NoEstimates has “become fairly mainstream”. It remains a fringe idea pushed primarily (and doggedly) by three persistent evangelists, all of whom are on the conference circuit and/or writing books on the topic. At best, it’s akin to a fad diet, with a very small number of adherents with strong views.
2) Moreover, the definition of what #NoEstimates even is is also at best fuzzy, anywhere from “it’s just a hashtag”, to “we’re just exploring better ways”, to notions of forecasting a project delivery date, once a project is underway, based on sheer number of stories and team story-based velocity. Hard to argue against something which its adherents refuse to define in any sort of consistent way.
3) The #NoEstimates advocates have been quite consistent at proclaiming that we “can’t predict the future.” See here and here and here.
Vasco Duarte writes , “management techniques must not be based on the existence of a perfect, predictable future. Management techniques must be based on the acknowledgement that we cannot predict what is the best (or worst) possible outcome of our actions.” Another NE advocate goes so far as to state, ““we can commit on that part which is known: mostly tomorrow, maybe the day after. Longer commitment is not possible.”
4) Finally, #NoEstimates advocates don’t seem to accept, at core, that analogies to other walks of life (whether to constructing a building or to farming sheep) apply to software development. Software development is fundamentally different from these pursuits, they argue. I don’t believe they have made a compelling case for that stance, but there you have it.
So, your whole post, while eminently reasonable and completely based on common sense (nobody wants your sheep to starve, and we also all want you to keep your costs reasonable), appears to be completely antithetical to actual frequent statements from #NoEstimates advocates. Perhaps you intended it as such, and didn’t want to state it quite that black-and-white. But I see nothing in your post that aligns with #NoEstimates thinking: just the opposite.
As I’ve written elsewhere , “the only way to live life, much less run a successful business, is to achieve competence in what amounts to predicting the future. Business leaders seldom can wait for perfect information to emerge before making decisions. Every business plan ever developed essentially entails ‘predicting the future’ and figuring out how/what to do: what markets to enter, what products will be viable to offer, how much raw materials one should have on hand, etc.”
We should all get used to it, and stop entertaining notions that estimates aren’t useful.
Thank you for your lengthy comment. The original title of the post was “how #noestimates can help you predict the future”. After writing, I had to change the title. But as you say, no one really claims that you can predict the future based on noestimates.
Greger,
I’m always troubled when the term “no estimates” is used in the same sentence as “prediction,” “forecasting” oir here in “SOMETIMES #NOESTIMATES CAN’T HELP YOU PREDICT THE FUTURE.”
My simple response is NO TIMES can “not estimating” help you predict the future.”
It seems odd they we can’t come to grips with the notion that predicting, estimating, forecasting outcomes depend on probabilistic and statistical assessment of a system with activities that behave in random, but modelable ways. And those probabilistic outcomes involve make “estimates” of the random variable.
In statistics, this outcome is actually called the “estimator.” Why can’t we simply acknowledge that the conjecture that
#NoEstimates is a hashtag for exploring alternatives for making decisions in software development. That is, ways to make decisions with “No estimates” is devoid of any mathematical substance. Which is a nice way of saying “it’s nonsense,” in mathematical terms.
Of course predictions can be made in the absence of estimates. For instance: “Tomorrow will be much like today” and “after rain comes sunshine”. No estimation, just pure usage of historical data.
And
Of course predictions can be made in the absence of estimates. For instance: “Tomorrow will be much like today†and “after rain comes sunshineâ€. No estimation, just pure usage of historical data.
comment is applicable to spending other peoples money writing software. I’d suggest connecting with the domain needs to be made here.
Please explain how the “no” in NoEstimates can represent a process of being credible stewards of other people’s money.
Until those proffering that #NE is a credible management principles with actual example – not based on empirical data – it’s a non-starter anywhere outside low value, low risk, self-guided projects.
Pingback: Mob programming - with Woody Zuill - Greger Wikstrand