The IT engineering fallacy
There are some fundamental fallacies which have misled IT in the past and one of them is "the engineering fallacy", the false belief that we build IT systems like engineers build bridges.
The engineering fallacy says that
- we perfectly define our requirements to the centimetre
- then we perfectly design our bridge with detailed blueprints defined to the last rivet
- then we perfectly build what it was we designed
- then we measure the result to ensure that it is exactly what was in the requirements
This is the waterfall approach, and it seems extraordinary now that we ever thought it was a rational way to build something as complex as an IT system.
In IT, we can never fully predict exactly what it is we are going to build, nor can we predict how long it will take or what it will cost. The reality is that every major IT undertaking is an exercise in exploration experiment and failure, as is true of all complex systems. The result is a terrible track record for successful completion of IT projects. We never build exactly what was designed, and we seldom deliver exactly what was scoped.
Of course as most of you know, Agile development methodology acknowledges this reality and rethinks development with an iterative exploratory model; and DevOps extends that agile approach to the entire system lifecycle and its tooling.
But the engineering fallacy lives on in a lot of IT thinking, especially within programnme and project management, funding models, and business strategy. Watch out for it.