There is a popular myth in projects and especially software projects that prevents actionable outcomes from taking place. It is common to believe - wrongly by the way - that we can't forecast the future.
It is not the project that is inherently uncertain in the future. It is the project participants have yet to fully identify the real work that is out there all along. Even though the scope of the work wasn't fully perceived back when – progress identifies the uncertainties and quantify the corrective actions to deal with those uncertainties.
This is important enough to say again. It's not the project that is uncertain. It is our ability to see those uncertainties if we don't look. This is a fundamental difference between the uncertainties in finance, social, political, or other chaotic systems and a project. Projects may appear chaotic but the underlying processes are actually under our control - at least statistically under our control.
To understand this we must come to understand the notion of a control system. Control system are either Open Loop or Closed Loop. Closed Loop control system get feedback from the current state - or some near future projected state - and make corrections to the control elements to acheive the desired goal of the input - stay the course. You're cruise control in the car works this way. Open Loop control does not use feedback to determine if the output hs acheived the desired goal of the input. Open loop controllers can not participant in a learning process, since no information is obtained from the system.
A classic example of Open Loop is to make a list of how long it took to do a job and then attempt to determine information. What is missing is the desired pereformance goal of the observed outcomes to know if we are performing to this desired goal.
There are several reasons we can't see into the future:
- We can't afford to look into the future. We don't have enough time and money to do the work needed to reveal future possibilities. This usually means we'll figure it out when we get there. Cost overruns and delays are no built into the plan. Or we'll have to descope the project when we run out of time and money.
- We don't know where to look for the uncertainties. We don't have the right skills, experience, or capabilities to know where to look. The simple solution is to go get someone who does. Watch them work and learn.
- We don't actually want to know the uncertainties of the future. You can't handle the truth is more common that we might think. Knowing the cost and schedule of the project to a 80% confidence level may cause the project not to start or to get canceled.
- We simply don't want to do the work needed to look into the future to see where trouble will occur, cost will occur, delays may occur. This is an approach from those usually not accountable for the cost and schedule for the project. They have failed to connect the dots between their work and other peoples money. This is usually a bottom up view of the world.
Stuff happens on projects, that's the nature of all projects. Managing the stuff that will happen in the future is a Critcal Success Factor. Not managing this stuff means this stuff will management you.