There's a popular meme going around that asking for estimates and making estimates is the smell of dysfunction. We can assume it's management dysfunction. So what are the dysfunctions of management that they ask for estimates from those spending their money to produce value in exchange?
Turns out there a few obvious ones, when we consider Dilbert-style management.
- Commitment to a probabilistic number as if it were a point number.
- Punishment of developers for not meeting their estimates?
But this is bad management. Obvious to everyone who has ever attended a probability and statistics class in their engineering, computer science, or hard science education.
So maybe the first dysfunction is those conjecturing estimating is the smell of dysfunction is they don't understand the underlying mathematics of making estimates in the presence of uncertainty. This includes both management and those spending the money provided by management.
Since there is no domain, context, framing assumptions, or principles stated by those conjecturing estimates are the smell of dysfunction let's look at one set of principles of writing software for money - other peoples money.
If we look for the root cause of projects going wrong, let's see how not following the 5 Principles can be a source of the dysfunction.
What Does Done Look Like?
Is there some notion of what capabilities the customer - those paying - need when we're done spending their money? Is there some units of measure of Done that are meaningful to those paying? If the answer is no, then we're likely to have little value for estimates, no matter the quality of the estimate.
The smell of dysfunction is proceed to spend money without knowing what done looks like in any meaningful units of measure for those providing the money
What's the Path to Done?
Do we have any notion of the order of work to be performed? Let's assume there is some dependency in this work. The agile notion of INVEST must be tested first. Any non-trivial project has interdependencies. If there are non, then the work must be simple enough that all the pieces act independently from each other. No order of production, no order of operations, no order of use.
The smell of dysfunction is not having a strategy to reach done on of before the need date for the capabilities that will earn back the investment for the money provided by those paying for your work.
Do We Have Enough Resources to Get to Done?
We need time, money, and resources to produce business value in exchange for the money we've been given. How much money? How much time? What resources?
The smell of dysfunction is not knowing how much of work will cots in the end to some level of confidence. Not knowing when we'll be done to some level of confidence. Our not knowing of what we've been asked to produce for that money and time will actually provide the needed capabilities those paying are expecting.
What Impediments Will We Encounter Along the Way?
All projects have uncertainty. Uncertainty produces risk. Managing in the presence of uncertainty means managing in the presence of risk.
Risk Management is How Adults Manage Projects - Tim Lister
Uncertainty comes in two forms reducible (epistemic) and irreducible (aleatory). Reducible uncertainty and its associated risk can be bought down. How much risk, what is the cost to buy it down? That means estimating.
Irreducible uncertainty and its associated risk cannot be bought down. We need margin - cost margin, schedule margin, technical margin to protect the project from this unfavorable outcome. How much margin? We need an estimate. For both reducible and irreducible uncertainty answering that question comes easily with a Monte Carlo Simulation.
The smell of dysfunction is not having a risk model for all the project work. Not have estimating for the probability of occurance of an event based risks. Not have a Probability Distribution Function of of the naturally occurring variance of irreducible work - duration, cost, performance.
How Are We Going To Measure Progress to Plan?
To measure progress we need a plan. Then we need some assessment of phsycal percent complete. This measurement is an ideal paradigm for agile. Working products that meet the measures of effectiveness, measures of performance, technical performance measures, ley performance parameters are ways to assure what we produced actually does what is needed by those who are paying.
To start with a target to steer toward we need to estimate what are the possible outcomes of the project. That is what are the achievable goals in measures of Effectiveness and Performance. With this starting point and measures of actual performance we can create a error signal used to Close Loop Control to tag corrective actions to steer toward our target. The target can change of course, and many time does.
With the probabilistic target and the actual measurement we have an Open Loop Control system, which provides no steering signal and results in we'll be done when we're done, we'll spend what we spend, and you'll get what you get,. Could be better than planned, could be worse than plan - don't know.
The smell of dysfunction is to not have a probabilistic steering target developed from past performance and models of future performance. Without this model we are operating open loop. Not steering target that can be corrected with actual performance information., But more importantly not steering target telling what our performance must be to meet the business goals of the project.
So Want To Talk About Smells?
Tangible evidence of dysfunction is needed. Variance analysis needed. Tangible corrective actions needed.
Exploring is none of these. Exploring is talking about fixing the smell. Talking and exploring doesn't fix the dysfunction. Looking for waste in the Muda sense - this is Muda. Do something tangible. Measure the result. Compare to plan. Make corrections to both action and plan - closed loop. Repeat till success.
Stop exploring - do something constructive. Correct the dysfunctions with actionable outcomes.
In The End
Conjecturing to NOT do something without first identifying the root cause of the smell is Open Loop decision making.
Conjecturing to NOT do something without saying what that something is so it can be tested is of little value to those paying money that need real help to increase the probability of success of their work efforts.
Conjecturing to explore has little value to those seeking actionable corrections to the problems. Exploring means o real commitment to improve. We're just wandering around looking under rocks for interesting ideas. Having someone pay for that is called pure research. Business that produces products and services in exchange for money are looking for value to result from their investment.