All projects operate in the presence of uncertainty, that's the reality of project work. There is no way around it. Either we deal with it - manage in the presence of uncertainty - or ignore it - and get managed by the uncertainty. No matter what the uncertainty is, it's not going away.
- Uncertainty itself comes in two types - reducible and irreducible. These have fancy names Epistemic and Aleatory. The first type can be handled by spending money to learn more about the uncertainty and how it creates risk for the project. This risk retirement approach can be found in many forms. We can run experiments, build prototypes, develop products in small chunks to see what happens. Deliver often in agile is an example of reducing risk from the uncertainty that customer doesn't know or doesn't recognize what they actually want. The irreducible uncertainty can only be handled with margin. Schedule margin, cost margin, performance margin. No amount of money will deliver new information.
- We need to know where we are going - wandering around looking to discover the solution, usually means eventually driving into the ditch. We need to have defined an Immutable set of capabilities that we are driving toward. We want to drive to San Diego from Denevr for a summer vacation. We know our destination. It's clearly on the map. They are many ways to drive there. A central route along I-70 west to I-15 south to San Diego. A southern route, I-25 south to I-40 west to I-15 south. Alternative cross country routes through the byways of Colorado, New Mexico, Arizona, and California. But in all cases we have our destination in mind.
- With the destination fixed - we now need to start making some decisions about route, money, time, and other considerations. For our project paradigm, with the end fixed, we need to ask how long and how much as a minimum. If the project doesn't have a fixed end it's a different story, we can just keep going until someone says stop.
- Along the way we're going to encounter problems - Weather, road outages, software that doesn't work, customers that change their minds, productivity that didn't turn out as planned. Impediments to our progress to Plan. Notice we have a plan and we need to meassure progress to it our again we're just wandering around.
If we don't have the answers to these last two questions, then we're not going to have the confidence of reaching our destination in any planned manner. Can we get to San Diego in 3 days? Without some estimating and forecasting the answer can only be we don't know. It's a 50/50 chance.
We wouldn't start our road trip without some destination and a plan to reach our destination with some level of confidence. To do otherwise means we are just wandering around. That may be perfectly fine if what we want to do is just wander around. But usually when someone is paying us to do something for them they need some estimate of how much and when.
If we're going have any notion of showing up in the next 3 days, we need some way to actually measure our progress. It's about 1,200 miles divided by 3 days, about 400 miles a day. No problem, we can enjoy the scenery and take the back roads. Hanf around in places we may not have been before. But if we need to get there faster, we'd better be on the Interstates.
In our car we have speedometer to tell us how fast we are going and an odometer to tell us how far we have gone. We can also use Google Maps and have the lovely voice tell us that every mile along the way.
We can look ahead to see weather coming, see road detours, see traffic or even hear about traffic. We have a fuel gage to see when we need to stop and other Indicators of our performance, progress, and potential impediments (Google maps in major metros like Washington DC where I spend a lot of time, tell about road hazards and offer alternative routes).
You See Where This is Going?
Why would we ever not want to know some things about our trip (assuming we're not just wandering around) or about our project? If we say I don't want to know how much longer it is to the next gas station you may be in for a surprise.
So what do we need to know about our project.
- First, what is our capacity for work? How much outcome can we produce over a period of time. To find this out we may need to actually do some work to get calibrated. This is building a Reference Class. Or we could look at past performance to build the reference class. Or we could look around at other projects in our company for reference classes. Reference Class Forecasting is a well developed process in many domains, not just software development. Here's some ideas.
- With this knowledge, we need to know how much work is there to do? This is a bit more tricky. Just looking at the high level, it may not be obvious. So we can break down the work into smaller chunks. Into something we do know about. In the agile world this cane be done by breaking the project down into stories and then smaller stories. In the larger project world the Work Breakdown Structure does this. It's the same idea, it's the same principles, it's the same process that has been for 1,000's of years. In the large project world we break down the current rolling wave into Work Packages that can only cross one accounting boundary - 44 days, 2 working months. Almost like an iteration in Scrum.
- With the capacity for work and the knowledge of how much work we can them make a forecast - a statistical forecast of how long. Total Work / Capacity for Work = Duration. This is the approach of many agile planning processes. It's also the approach of full up DOD 5000.02 acquisition strategies. It's the approach to any credible, rational project management method.
So the next time you start a project, ask is you have all the pieces of information you need to reach the end as planned. As Planned meaning on or before with some level of confidence. Or at or below some target cost with some level of confidence. And think about those who are missing these pieces of information, the information needed to make decisions about how you are spending other peoples money as those wanders in the desert.
They may have intentionally chosen to wander, but for me, it's not the journey it is the destination. I want to have my feet in the sand at the Hilton Mission Bay enjoying my piña colada, then I've finally started my vacation. And if you see that person wandering around asking which way to the next town, give him a map, a compass, and an estimate of the time it will take to get there before dark and the coyotes come out.