Hacker News new | ask | show | jobs
by mlindner 3316 days ago
Honestly, what's the alternative to Agile? Waterfall? Hell no.
3 comments

I worked somewhere that did waterfall, hardcore. For everything, requirements came first (sometimes, since moving on, I've even found myself suggesting in meetings that if we don't know what we're meant to be making, the odds of getting it right are pretty slim - obvious yet somehow it needs stating out loud more than it should be). Sometimes literal months were spent on getting them right. Then the design. Full on designs, full on design reviews, the whole lot. It wasn't impossible to come back afterwards and change things, but it was pretty rare. By the time coding came around, it wasn't much more than implementing the design (coded up in literal programming style, too, such that what was written turned into two separate sets, being beautiful latex-based documents interspersing the design and commentary of that design with the code implementing each piece of design, and the code for the compiler to eat); all the actual programming thinking had been done during the design. Then levels of testing, starting small and unit, moving up through the layers until the original requirements were being tested against.

It's the only place I've ever worked in which the customer never registered a single bug. They even asked us if we could take over from a different supplier since they'd never managed to deliver anything that worked. When the tests were signed off (and they literally were; the tester signed their name against each test, data records were archived, the paper test steps and signatures were sealed in envelopes for customer inspection on demand) that software did its job from delivery day one.

Waterfall is really demanding and really hard to do well (and it also requires a high quality of customer; if your customers don't know what they want and simply cannot be guided into telling you, I suspect it's impossible), but it sure can deliver. I've never worked anywhere else that managed such high quality.

That would require an exceptional customer, in my experience nobody knows what they want until you put something in front of them.
> implementing the design, coded up in literal programming style

What sort of pseudocode were you using for this?

Here's something I wrote about it before: https://news.ycombinator.com/item?id=10070549
An infinite ala carte menu of subsets of the parts you like about Agile, Waterfall, or any other methodology as long as you ship working code roughly on schedule.

When I hear the above argument, I'm reminded of the Protestants versus Catholics scene in Monty Python's The Meaning of Life.

Over 20 years later, this is still a classic: https://www.fastcompany.com/28121/they-write-right-stuff