Introduction

The raging debate surrounding the #NoEstimates concept has left me with a sense of frustration one usually feels when coming across an unfinished business. While a number of individuals on both sides of the debate have attempted to address the key differences of opinion, the question still seems to be unresolved with each side sticking to their guns, unable to agree on a common ground or a framework of understanding in which all parties can feel vindicated. In this post I will attempt to outline the key arguments for and against #NoEstimates. When possible and if appropriate I will quote these arguments verbatim, sourcing them from a number of blogs where this topic has been discussed (sometimes indirectly) extensively. I will provide links to these quotes but do my utmost to ensure I do not take these quotes out of context.

The format I plan to adopt for this post is as follows. Each argument, in favor or against the #NoEstimates proposition, will be listed and a statement in support and against the proposition will be provided. whenever appropriate I will add further commentary where I will attempt to narrow the gap and articulate the assumptions arising from each or both arguments.

As the end of this post I hope you will have a better appreciation of the arguments and you will gain the ability to articulate your own answer to the following questions:

Are cost estimates required in order to manage software projects?

Are cost estimates an effective tool for controlling costs?

Do estimates stifle creativity and kill innovation?

Do people need estimates? And if so, why?

Is the very act of estimation results in the creation of uncertainty?

Is estimation a practice still hanging over from the Waterfall era?

Is No Estimation better than Bad Estimation?

Is Estimation really just a form of Guessing?

Are estimates necessary for Governance? Is it reasonable to require estimates for the purpose of pacifying governance needs?

Is there any point in providing estimates when it is known that many projects fail due to lack of credible estimates? And aren’t estimates a tool used to apportion blame afterwards anyway?

Is costing a necessary tool for determining business value?

Does the scope drive the budget or does the budget drive the cost?

If estimates are required in order to support decisions, can decisions be made without estimates?

We have a lot to cover so let’s make a start!

Discussion

1. Making software development decisions based on estimates are counter intuitive

#NE – There is a tendency in software development to, counter intuitively, take a reverse approach to budgeting we would employ when we make purchasing decisions in our lives. Instead of deciding our budget based on how much we have available, or are willing to spend – as we would personally do – we decide it using an estimate from the supplier of how much they tell us the software that we want will cost. So, while we have a pretty good appreciation of how much much we have, want or willing to spend, we are unnecessarily engaged in a bidding process with the view to find the cheapest bidder in order to save money and squeeze as much as we can for our real budget. In such case, would we not gain a better outcome if we work iteratively and collaboratively with the supplier based on our budgetary and / or time constraints? (link).

#E – The claim that iterative and collaborative work can be used as a substitute for up-front estimation of cost is challenged by Mike Cottmeyer in “Should You Use Agile to Build Your Next Home?“. The gist of his argument is that most people when they are spending their own money, want to have some idea of what they are going to get when the time and money run out. They want some assurance that they’ll have enough of the product they have ordered to make the whole investment worthwhile. Suggesting an incremental delivery, while appealing in theory, is not necessarily a practical outcome as even a fully functional software, when lacking the greater context might be unusable (just like having a fully functional kitchen might not be usable unless the bedrooms and the other amenities have also been complete).

The other factor worth mentioning here is the behavioral aspect driven through our understanding of economic theories. The concepts of Scarcity, Opportunity Costs and Cost Benefit Analysis dictate that people, intuitively, would look to determine future value before they make an investment decision. This determination is done, among other methods, by comparing one perceived outcome against other alternatives, and selecting the one that maximizes the perceived value (or Return on Investment).

2. Estimates are seldom correct so why use them?

#NE – A casual search on Google will reveal that faulty or wrong estimation is seen as one of the leading reasons for projects’ failures. Proponents of the #NoEstimates proposition raise the following arguments regarding the lack of credibility associated with the provision of estimates:

Time and cost estimates are based on an up-front estimate of scope (i.e. a guess) and as such are guesses at best, leading to obvious dysfunctions like death-marches, low quality, etc. (link)

Asking teams to estimate how long their work will take has connotations that their output is being measured by an external party (management), creating an environment of fear and massaging figures to reflect what is desired rather than what i predicted (link)

We should’t be defining all our scope up-front, meaning we shouldn’t estimate all our scope up-front, meaning we shouldn’t be defining our delivery date based on our scope (link)

It seems like we keep failing at getting good at estimates, even though we are working hard at becoming better at doing so, then maybe we are expecting estimates to do something for us that just can’t be done. (link)

Estimates, quite often, are a result of a a wild guess, aimed at providing some numbers that seem plausible and will allow the decision makers to approve the start of a project with a clear conscience. That is, when things sour later on, they can always blame the developers for giving them inaccurate estimates. And the developers can always blame the ‘requirements people’ for giving them unclear, incorrect, or incomplete requirements. And the requirements people can always blame the stakeholders for providing bad direction about what was important. And so on. Regardless of who is part of this process, it is one big happy circle of blame that lets us all do the wrong thing and still keep our jobs… (link)

When estimating a date or cost you are creating uncertainty around those things, because you are guessing. You are saying “we’ll deliver somewhere between here and here”. However, if your delivery date and/or cost is set by a real constraint, as advocated by the #NoEstimates approach, you have created certainty around those things. (link)

#E – The arguments against estimates can be classified into two categories; practical and behavioral.

Lets’ start with the practical considerations first:

‘Doing’ estimates right (though not necessarily correct) requires effort. While we are all accustomed to performing estimates in most facets of our lives (when we drive our car, rush to the station to catch the train, do our shopping at the supermarket, etc) there are instances or circumstances in which making the wrong estimate can have more severe consequences. If we try to cross the street and misjudge the distance and speed of an approaching car we could be involved in a fatal accident. If we misjudge the effort required to develop a software feature we could end up being responsible for a business loss that could affect our very livelihood.

When we make an estimate we always take a risk. When we buy one bottle of milk for our daily morning coffee we base our purchasing decision on past experience coupled with some probability assessment regarding the likelihood of past patterns breaking up in the future. While we don’t explicitly enunciate that level of uncertainty, we subconsciously are aware of it. We know, intuitively, that it is never 100% but are happy to concede that there is X% probability (perhaps 90%) that one bottle of milk would be sufficient to meet our needs for the next few days. Had the probability been low, we would most likely buy two bottles.

While making decisions (based on estimates) come naturally to us when we cross the road, the reason why we are comfortable making these probability assessments is because we have learned to execute them based on past experience. From an early childhood our parents have taken our hand and instilled in us the need to accumulate experience and knowledge we could utilize at a later age, without giving it much thought. Statisticians and Economists would call this process Reference Class Forecasting(and see Kailash Awati’s elaboration on this topic in Improving Project Forecasts).

At the practical level, being dismissive of the validity of estimation could be an attempt at avoiding the need to establish a reference class. If you don’t have a reference class on which to base your estimates then (as often argued by Glen Alleman) build one, run a pilot project, execute an experimental iteration, ask others who’ve done something similar. Do something to reduce the uncertainty and increase the certainty. There should be no excuses for not trying to establish some level of reference class baseline and progressing based on that starting point.

And now to the behavioral considerations…

The notions of gaming the estimates, plucking figures out of thin air, perceiving estimates as a mean to establish a management control and associating estimates with future apportioning of blame are all symptoms of a dysfunctional organizations. The business dilemma we need to address is whether the elimination of estimates would turn the organization into a functional one or would that just be a way of dealing with the symptom while ignoring the real problem. A better proposition should be to suggest methods to change the organizational behavior such that these attitudes are transformed into more suitable ones. Implementing the practical practices established for the delivery of estimates can go someway towards ‘fixing’ the organization. If you are a strong and vocal proponent of #NoEstimates you could equally be in a position to strongly support calls for taking the necessary steps needed to change the organizational attitude such that developers would not feel under siege every time an estimate is required (and see also the discussion here re. dysfunctional organizations).

3. Estimation = Waterfall

#NE – Estimation is seemingly one of the few remaining immutable practices hanging over from the waterfall era (link). Waterfall and predictions are harmful (link).

#E – See Mike Cottmeyer in “Should You Use Agile to Build Your Next Home?“. Tying estimates with Waterfall is not a solid argument and it seems to appeal to those with emotional associations tied to the Agile vs Waterfall metaphorical divide.

4. Why do customers need estimates?

#NE – The main reason we do estimates is because people need to make decisions. This means that the key requirement is for people to be able to make decisions. It is true that estimates are often used to help us make decisions. But estimates are not the only way and for many of the decisions we need to make they are likely not the best way to go. One good way to make decisions is by adopting the “lean approach”, by learning from our mistakes and by frequently taking corrective action (link).

#E – There is no disagreement about the conjecture that estimates are required to make decisions. As highlighted earlier, whether or not we are engaged in formal and conscious estimation process – we are still estimating sub-consciously. And we do it because this is how we intuitively engage in risk management. We are always on the look for signals of danger and for opportunities. And while we are engaged in this type of behavior in every facet of our lives, we should more inclined to exhibit such behavior when spending other people’s money. The type of decisions we need to be able to ethically make are about whether we ‘buy’ this software or ‘make’ it. Do we invest the money in this product or in any one of a number of other opportunities.

The decision regarding the investment path to be taken cannot be solely based on the perceived business value, as while a number of development opportunities might present a value proposition, the value differentiation might not be so clear as to determining the one we ought to pick for further development. And this is where cost becomes a deciding factor. It is called cost-benefit-analysis and it is a sensible risk management strategy.

Some final notes

The discussion surrounding the #NoEstimates proposition is one we need to have. The issues highlighted here are not raised with the intention to keep people from exploring and challenging established assumptions but rather as a concern against applying judgement without considering the context and landscape within which these judgments ought to be made.

No doubt #NoEstimates could work in environments where such a proposition will be accepted by the stakeholders who’s money is put on the line. While I have not yet had the opportunity to operate in such an environment does not mean that such environment does not exist. And this is exactly the point where context need to be injected into the discourse around this issue. It is about establishing known boundaries or parameters within which #NoEstimates can (and perhaps also ought to) work. Some mention areas of R&D as suitable for this and perhaps this is correct. Establish a budget you are willing to use for experimentation (based on your risk appetite) and let the team iterate until such time that you either run out of money, run out of risk appetite or hit the bull eye. Other areas could be small developments with low risk. The domain is known and the time taken to produce formal estimates is better get used on actual development. There is, however, a need to avoid broad categorizations that add little to no credibility to the argument and add a sense of religious ideology to a domain that requires no such similarities.

Think about it!

Related Post

Letter to a Young Project Manager Dear L.J.
We have barely met and had only the brief and passing opportunity to exchange a mere few words before a daunting and sombre thought enter...

Like this:

I’ve done a lot of reading lately trying to put my head around the arguments and counter arguments associated with the #NoEstimates idea. I now have a better understanding, and a bit more sympathy, to some of the key propositions raised by the proponents of this concept. I will elaborate on those in a separate post but during my research I’ve come across the below proposition in Glen Alleman’s blog. It is simple yet practical proposition for dealing with the need to offer an estimate. If you can’t answer any of the questions outlined below you could be in the wrong business.

You can get within 15% in 5 questions using a binary search for any software component:

(1) Can you do this in six months? Sure
(2) Can you do it in 2 weeks? No way
(3) Can you do it in 3 months? Likely
(4) Can you do it in 6 weeks? That’ll be tight.
(5) How about 8 weeks? Sure that’s possible.

How possible? OK< maybe an 80% confidence of 8 weeks.

Good, get started, up date me every week on your Estimate to Complete.

Think about it!

Related Post

Letter to a Young Project Manager Dear L.J.
We have barely met and had only the brief and passing opportunity to exchange a mere few words before a daunting and sombre thought enter...

Evolutionary principles can be applied to cultural matters too, in the sense that the practices, artefacts, beliefs, concepts and ideas we ﬁnd around us today are there because they too have been selected (allowed or enabled to survive and reproduced) by individuals (because by using them or taking them on board beneﬁts the individual is some way) or by organisations (because individuals acting for the organisation select them because of perceived beneﬁts to the organisation).

This provides the foundational justification for comparing a seemingly biological process to a domain that on the surface seems completely disconnected from such discussions (and see my extended review of Jon Whitty’s paper here).

The paper sets out to challenge the common perception, held by many (and admittedly by me as well), that the Agile movement represents a revolutionary movement, i.e a movement introduced as a counter measure to its surrounding environment and not as a by product of it (by which means it would be seen as an evolutionary movement).

Proving this point, one way or another, can only be done by exploring methods and ideas used in the past and then evaluating whether these methods and ideas have been replicated into an accepted method and ideas within the area of Agile thinking. To explore this question the paper makes use of the concepts of Memes and Memeplexes.

For those unfamiliar with Richard Dawkins‘ ‘The Selfish Gene‘, a Meme (as define in Wikipedia) is “an idea, behavior, or style that spreads from person to person within a culture. A meme acts as a unit for carrying cultural ideas, symbols, or practices that can be transmitted from one mind to another through writing, speech, gestures, rituals, or other imitable phenomena.” In the context of Project Management, concepts and methods like the Gantt Chart, CPM and the WBS could be seen as Memes that over time established themselves as acceptable ideas within the project management community, as summarized in the paper:

For our purposes, a ‘meme’ will likely equate to a specific project management method, tool or artefact which is sufficiently recognisable as representing a discrete ‘idea.

A Memeplex (again, according to Wikipedia) is a “group of Memes that are often found present in the same individual. Applying the theory of Universal Darwinism, Memeplexes group together because memes will copy themselves more successfully when they are ‘teamed up’.” In the context of project management, a project management tool like MS Project could be looked at as a Memeplex as it is a collection of Memes that copy, or replicate, more effectively together. Or, as summarized in the paper:

a ‘memeplex’ can be seen as a means to facilitate conjoining or interacting of these memes to their greater good (i.e. survival and propagation).

The paper, meticulously, demonstrates how the thread of Memes that started with the Taylorism and the Scientific Management movement, through the creation of the Gantt Chart, the establishment of the ‘4-step training process’, the creation of the Process Charts and work Simplification (and a few other processes and movements) have culminated, in the post WWII era, with the Toyota Production System (TPS) and the Lean Software Development. And on another evolutionary path, and another thread of Memes – resulting in the Iterative and Incremental Development – is a culmination of processes that started with the American Air-force in the 1950’s, through NASA’s Project Mercury, the Iterative approaches to modelling and Iterative enhancements, all leading to what is currently known as incremental development.

Based on the above analysis the paper concludes that

‘agile’ approaches are by no means ‘new’, but rather are result of a selection process

[…]

the current state is an accumulation of memes and memeplexes, chosen to suit environmental circumstances.

With that in mind the paper posits that the evolutionary nature ascribed to the formulation of the current set of agile methods suggests that this evolution is far from over and that further changes are likely to emerge in the future.

Some concluding notes

The paper provides a solid and compelling argument regarding the evolutionary rather than revolutionary nature of the Agile methods. Indeed, the methods themselves and the memes within which they are wrapped are not new. The paper mentions the fact that these various methods (and memes) have been incorporated into agile memeplexes and while it acknowledges the fact that in some contexts a memeplex can also be seen as being a meme in its own right – as the group of memes making up the memeplex become a unified idea that attract an independent evolutionary cycle – a greater importance could have perhaps been attributed to the possibility that while the memes have been around for quite some time it is the memeplex, i.e. the grouping and collection of these methods and ideas, that should be the center of this investigation and as such its creation is a less obvious or trivial occurrence and thus it does represents a somewhat more revolutionary idea.

The paper is also a timely and important reminder to the fact that a lot of what we see, hear or read around us is a result of or a spin off past actions. This is fantastically illustrated in the Everything is a Remix series and, when taken in context, is a timely reminder for placing our egos and achievements in the appropriate context of those who preceded us.

Think about it!

Related Post

Letter to a Young Project Manager Dear L.J.
We have barely met and had only the brief and passing opportunity to exchange a mere few words before a daunting and sombre thought enter...

Share this:

Like this:

When it comes to the art of estimating, forecasting and predicting the future there is a certain level of control we inadvertently inject into that process, over inflating our capacity to ‘see’ the future:

Control is an illusion, you infantile egomaniac. Nobody knows what’s gonna happen next: not on a freeway, not in an airplane, not inside our own bodies and certainly not on a racetrack with 40 other infantile egomaniacs.

Like this:

I invented nothing new. I simply assembled the discoveries of other men behind whom were centuries of work. Had I worked fifty or ten or even five years before, I would have failed. So it is with every new thing. Progress happens when all the factors that make for it are ready and then it is inevitable. To teach that a comparatively few men are responsible for the greatest forward steps of mankind is the worst sort of nonsense.

Henry Ford

Think about it!

Related Post

Letter to a Young Project Manager Dear L.J.
We have barely met and had only the brief and passing opportunity to exchange a mere few words before a daunting and sombre thought enter...

Share this:

Like this:

If you are a C-level manager in an organization that has instituted some level of agility in its software development environment you should be congratulated. But don’t let this achievement get to your head as if this is as far as your drive to agility is allowing you to go you are not reaping the real benefits agile can bring to your organization.

Let me explain why.

One of the guiding principles at the core of agile thinking is the recognition that action, any action, is best prioritized based on its perceived value. In that sense then, high value propositions will receive a higher priority compared with low value propositions. In the context of software development this means that high value features will be attended to before diverting attention to low value features. When adding to the above the consideration of ‘Minimum Viable Product’ (MVP) – i.e. the recognition that a product could be released with just a sufficient level of functionality that would make it a viable product (leaving out other features not necessary to make it ‘viable’) – and the importance of value driven development is further accentuated.

There is aspect to the above scenario that makes it a winning proposition, and that is the constant iterative nature of validating and re-validating the business value of requested features. This means that rather than determining a prioritized list upfront, and then fixing that priority list throughout the project’s life-cycle, the priority is being examined and validated on a regular basis and as often as two weekly cycles.

And here’s the catch.

There is a fair (almost high) chance that while you allow your development process to ‘run’ using the above scenario, you are reluctant (due possibly to lack of due consideration) to apply an identical process to your own decision-making process. No doubt you make investment decisions based on value, but that value is determined based on heavily documented business cases that allow little room for cross proposal evaluations and hinder your ability to easily compare value across competing proposals. You also lack flexibility in changing direction, once investment decisions have been made, and you (most likely) spend considerable time and effort in wrestling with other executives in an attempt to secure the funds that your area requires for the next financial year.

Imagine you were adopting some agile practices to manage that process differently:

Rather than spend significant time and money on the formulation of heavy weight business cases you would adopt a MVP mentality such that the business case is reduced to a level allowing you to make a go-no go decision.

Use a Kanban wall to present all business cases and thus allowing the executive management team to literally compare all competing requests and collectively agree on the current priority list.

Institute a recurring value review to ensure your investment decisions and investment money is still delivering most value for money.

Makes sense?

Think about it!

Related Post

Letter to a Young Project Manager Dear L.J.
We have barely met and had only the brief and passing opportunity to exchange a mere few words before a daunting and sombre thought enter...

Share this:

Like this:

Below is a list of the top 25 most popular project management blogs that have been visited from ProjectNewsToday.com over 2013. Quantmleap features third place and it is a pleasure being in the same neighborhood along some fantastic blogs.

Like this:

A situation or place that seems to be in chaos, but has an underlying organization and pattern which is evident to those involved in the situation

I’ve recently been to a visit in Vietnam and the thought of an organized chaos has crossed my mind as I was attempting to make my way across the road, desperately trying to get safely to the other side. Having gone through this process sufficient number of times it occurred to me that what initially seemed like an utter chaos was, in fact, a well organized chaos, one in which following certain rules of engagement meant success in engaging the heavy traffic.

The lessons I took from this realization are simple:

While setting up formal rules can result in a ‘normalized’ process, market, social and economic forces will provide a satisfactory equilibrium without the need to establish formal and binding guidelines.

Organized Chaos is illusory. The chaos is only chaos to those who are not aware of the internal rules operating within the ‘chaotic’ system. For those who are in the system, there is no sense of chaos at all.

A system will operate at some level of optimization (perhaps not fully optimized) without a reliance or a need for a governing body to determine what the optimization should or ought to be. As such it is better positioned to adapt to changing circumstances and create a new equilibrium if required.

In the chaos situation described above every individual is required to exhibit, adopt and implement some level of leadership skills. Given the lack of centralized leadership and governance the situation calls for and enforces the concept of distributed leadership.

Think about it!

Related Post

Letter to a Young Project Manager Dear L.J.
We have barely met and had only the brief and passing opportunity to exchange a mere few words before a daunting and sombre thought enter...

Share this:

Like this:

I am by no means an expert on the complex topic of ‘complex systems‘. My basic understanding of the term is enough to realize that most, if not all, of the projects I have managed can be classified as either being complex systems or evolving in the neighborhood of complex systems.

In this post I would like to reflect on my exposure to complex systems and share some thoughts going through my mind when trying to grasp this topic.

Some commentators discussing the domain of complex systems argue that the search for simplifying the complexity represents an over simplification of what complexity is all about. Complexity, so they suggest, is not a sign of over engineered system but rather a natural property of a system that is genuinely complex. Attempts at looking for simplifications is more an indictment of the observer rather than the system. A lack of an intellectual capacity to grasp a complex system is not a sufficient argument or drive for simplification. If you artificially simplify a complex system you end up with a different system that, while simpler, is fundamentally and conceptually different from the one you started with and thus, simplification ends up with destruction.

When going through a thought experiment involving a complex system it is useful to contrast that system with other, better known, such systems. Many observers use different analogies, like that of the human body, ant colonies and modern cities.

The obvious observation arising from such comparisons is that organization-made complex systems have some things in common with these three examples. To begin with, they are highly regulated and all parts of the system are engineered to support a common goal – i.e. advance the survivability and, subsequently, the well-being of the organism. All parts in a complex system are there to support the system and not themselves. In fact, without the whole, no part could practically survive.

On the other hand the key differentiating factor between most organization-made complex systems and the three examples provide is their aversion to adaptability. Being highly regulated they enforce their policies, standards, processes and work instructions and attempt, quite strictly, to govern all aspects of their existence. In contrast, adaptive systems recognize the connectivity between all parts of the system but acknowledge that no centralized control can effectively manage all parts of the system, thus allowing the constituent parts to govern themselves.

Some may refer to this as an evolution of spontaneous order and others (especially if they are economists) might refer to it as an intervention by an Invisible Hand; though irrespective of how you refer to it, it demonstrates the ability of highly complex systems to be successful, efficient and sustainable with little or no governance except for a set of commonly agreed rules.

Which is the point where one ought to ask, what is preventing a complex system from evolving into a complex adaptive system; after all, it does seem like the natural thing to do?

In a naturally evolved complex system there is an underlying governance theme that dictates that all parts of the complex system drive their respective operations towards contributing to and sustaining the common good of the system. While natural complex systems are not immune to the emergence of rogue components, they operate under the expectation that in the main the majority of the activity around their different parts will be constructive rather than destructive. In other words, TRUST is built into the system and this trust is complemented by control mechanisms aimed at reacting to events should that trust be broken.

The ability of any complex system to aspire to become adaptive is predicated on trust. Its success (or even initiation) hinges on the acceptance of people morality. While the scope of ‘morality’ can be subject to interpretation, establishing moral ground rules should be the first step on the way to becoming adaptive. And with the ground rules needs to come the acceptance to let go and trust people to follow the rules.

And this is where the difficulty lies. Letting go of centralized command and control in favor of distributed leadership is a tough call for many, both conceptually and practically. If you think about it, though, it is the way to go.

Think about it!

Related Post

Letter to a Young Project Manager Dear L.J.
We have barely met and had only the brief and passing opportunity to exchange a mere few words before a daunting and sombre thought enter...