Hacker News new | ask | show | jobs
by jrumbut 2158 days ago
I think the parent post has, but for the reader who is a software engineer take 15 minutes out of your life to read WW Royce's "Managing the Development of Large Software Systems."

In this brief and engaging paper you will find the diagram used by many agile enthusiasts to describe the "waterfall method" and will be shocked to discover that it is held up as an example of a process that never actually works in reality.

You will then read quotes like this, which could have come out of an agile book:

"For some reason what a software design is going to do is subject to wide interpretation even after previous agreement. It is important to involve the customer in a formal way so that he has committed himself at earlier points before final delivery. To give the contractor free rein between requirement definition and operation is inviting trouble."

http://www-scf.usc.edu/~csci201/lectures/Lecture11/royce1970...

2 comments

http://beza1e1.tuxen.de/waterfall.html

Incremental and iterative development is not an invention of Agile either. It was used before "Waterfall" existed.

I've used incremental and iterative processes in R&D for many years before "agile" became the current goto. Unfortunately, the obsession in tech with following trends has pushed many to try and modify, IMHO, a better refined process for the domain where agile just doesn't quite work. In R&D, prototyping work is quite challenging and doesn't lend itself well to full-out agile pipelines. CI/CD can actually hamstring you far more than help you, as can other typical PM tools. You need to be more agile than "agile."

For larger projects with adequate resources, agile can make sense, although it's typically modeled after quarterly focused business models and can miss long term opportunities. The core issue with agile is that its structure is ripe for abuse by everyone involved except the actual developer(s). Instead, developers have to reconcile all sorts of poor choices together in a fairly formal environment, leading to headache after headache.

It's important to realize that Agile didn't invent anything. Agile was coined after years of work by numerous people to develop (or incorporate) different ideas into their methods. That is, as far as incremental & iterative development is concerned, history literate Agilers wouldn't claim to have invented it, but perhaps to have placed greater emphasis on it.
Indeed, that's some great added context to the linked paper and how the whole waterfall strawman was created.
Yes, basically people never actually seem to be doing 'waterfall' or even aspiring to do so.

I do agree with tsimionescu that leaving testing (and debugging) for last invites trouble.

Btw, that's an excellent paper.