DEV Community

Discussion on: What conventional wisdom in software is wrong?

Collapse
 
paceaux profile image
Paceaux

That waterfall is always wrong and agile is always right.

Waterfall is a fantastic methodology for big, long-lasting projects. Waterfall dictates that you gather requirements first. Then you design. Then you implement. Then you test. Then you maintain.

And you do it sequentially.

Waterfall is how cities are planned, bridges are constructed, and buildings are ... built.

A big criticism of waterfall is that it doesn't work for software because software changes too fast. "Clients don't know their requirements, but they want to start work right away". Great... try building your house that way.

Medium to large sized companies don't change out software every 2 years. I've seen several Fortune 500 companies hold on to a piece of software for ten years because it was so critical to their business. I worked with two companies that had * twenty year* contracts with a software provider.

Things that need to last a long time need to be planned in advance. Developing as you discover requirements introduces fragility that many on the Fortune 500 and 100 list aren't willing to tolerate.

Big companies don't like to throw out their CMS every time they redesign their site(s). So a waterfall model makes a lot of sense for the CMS.

but, waterfall for the website itself? That's nuts! That website will look stale in 2 years, easily. There'll be entirely new frameworks in 18 months time and there'll be a new version of ECMAScript in a year.

So Agile works well with rapidly changing technologies that need to meet external market demands.

What's become a problem is that a CMS should be waterfall, a website should be agile, and when you're launching a brand new platform, trying to make one be the other causes problems. You either get a garbage CMS that has to be thrown out, or a website that was outdated by the time it made it out the door.