Developing software was once a dark Wild West, where anything went.
Before Agile Development and Scrum Masters, before even COBOL or assembly language, before there were even computers, it was a tough time for programmers.
Men forced to play catch-up
Indeed the very first computer programmer, Ada Lovelace, had to wait for a man, Charles Babbage, to catch up and invent the computer, so that she could run her code on it. He never managed to.
To cover themselves, men waited nearly a century before reinventing Lovelace’s breakthrough, plus the computer itself, and claiming they’d done it all themselves.
But then it turned out that Alan Turing, the man who was the first to re-invent the computer, was gay. This angered authorities of the time, and Turing was compelled to commit suicide, destroying a brilliant mind at the very beginning of the age it had created.
Status Quo restored, boredom reigns
Nevertheless, once straight white males had satisfied themselves that they had removed all impediments to their taking the full blame (but before they had achieved total hegemony through 4chan), they began to destroy every promise of greatness promised by binary technology through the invention of project management.
The very early days of software projects were messy. People enjoyed themselves, tinkered, produced new things that couldn’t have been imagined half a decade earlier. This was no good.
Management Consultants realised that things were happening without their meddling, and so the cry went up that software projects were failing: they were messy, inefficient, and often ballooned in scope and complexity with every new brainwave from the boffins. Of course, this is exactly why the boffins considered it to be an excellent way of conducting their career.
Unfortunately, in a move that would be repeated (in ever more convoluted ways) in future decades, someone came up with the bright idea that the process should be formalised. This would become known as the Software Development Lifecycle, or LDLC. (Perhaps it should be known as the Software Development LifeCycle).
The first model cleverly separated all the components of software development into little boxes. This turned out to be a lot like chopping up a potato, putting all the little pieces in pans of oil, and hoping you’ll get a roast dinner. You’re just going to end up with a load of chips.
But not being satisfied with putting the boxes in a neat row and joining them with arrows, like this:
the mad geniuses felt it necessary to draw the boxes at an angle down the page, like this:
Electricity and Waterfalls don’t mix
Now, many of us will have already been taken aback by this insane increase in complexity, before we’ve even seen any of the benefits of this ‘system’. But more was to come. The inventor now decided he would name his creation “The Waterfall System”.
Perhaps that reflected the sound of developers’ wills draining away as they tried to deal with it.
And ever since that day, the inheritors of this mess have attempted to decipher the reason why this was necessary.