It is hard to pinpoint exactly when we as an industry decided to adopt the “waterfall model” as a way of working.
I used to think that the furthest back it went was Dr. Winston W. Royce’s white paper. MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS. I was dead wrong. Thanks to a comment on a previous post of mine, I’ve learned that the story goes back a bit more.
On 29 June 1956, Herbert D. Benington at the Symposium on Advanced Programming Methods for Digital Computers, did the first known presentation of such a thing. If you thought that the “waterfall model” was outdated before, think again. It is as recent as the ’50s. Go ELVIS.
Now that we have a WHEN and we already know the WHAT, the most important question of all is WHY?
Let us travel back in time, when…
A new baby is born, and it’s called I.T.
I.T. as an engineering practice is pretty new.
Yes. You can say that the first “computer” was discovered at the bottom of the ocean, and was hell old. But for the masses, I.T. appeared around the ’80s.
We are still in our infancy. Giving the first steps. Trying to find our way into the world, and like an infant, we look outside for inspiration on how to behave.
Unfortunately for us, we were born in…
The factory Era
This is the era of industrialization.
It’s the era of having experts tell us what to do.
Creativity and innovation are better left up to managers and experts, not the factory workers.
We punch in, we do the work, we punch out.
For over 70 years we lived in this world. Those were our role models.
The “waterfall model” has its origins in the manufacturing and construction industries.
If you are constructing a building, there is a lot of paperwork that you need to do. This is there to ensure that the safety code is followed and contractors don’t skim down on what they have to do.
It is also kind of easy to pre-plan everything that you need to do to make it happen. We have been constructing things for millennia, it’s nothing new. Materials and techniques have been around for ages.
The creative work happens before all of this. It happens in the architect’s shop.
In this shop, the architect’s mock-up, they iterate on the design, they create proofs of concept and show to the customer (sounds familiar?).
I.T. is not in construction or manufacturing. I.T. people don’t produce lines of code. They create algorithms and that is a creative job.
It is impossible to predict a creative job. It needs to flow.We do not know what we do not know.
The main argument for using the “waterfall model” has always been :
“Time spent early in the software production cycle can reduce costs at later stages”
This works well if you are in construction or manufacturing (unless you are Toyota).
There are not that many surprises, what you need to do doesn’t change that often.
Unfortunately, that has never been I.T. 5 years ago having your own data center made sense, now it’s nonsense. You start today on a 3-year migration project for a new tool, and when you finish, that tool is already legacy.
Let us stop using 50+ year old techniques. We are in 2019.
You can reject that the world is changing, but that will not stop it from changing.