Live data from Hacker News

The Myth of the 'Waterfall' SDLC (2019)

bawiki.com

21–30 of 46 posts

Re: The Myth of the 'Waterfall' SDLC (2019)

#21

Royce's waterfall model is what was actually being used until the mid-2000s in most software houses. And it was one of those processes that looks good on paper, but doesn't actually save you time or effort. I don't know where this "rigid" model comes from, but I never encountered it in the early days. Everyone knew you couldn't just complete a phase in totality and then move on to the next; there had to be overlap an…

It's not strictly an artifact of BigCorp From The Past. Frankly this model is what has been followed in most teams I've been on at Google, well into this part of the 21st century.

PRD -> design doc -> code -> launch -> promotion.

Of course, it's broken down and full of a mess (like a real waterfall) at most stages.

I feel like in a way it was a disservice to my career having a decade and a bit of work in smaller companies (where we often shipped quicker and with a less dysfunctional process) before coming to Google. Because the people around me seem to find the way things are... all quite fine and dandy while I just stare in cynical disaste.

The new team I'm on seems better, though.

Re: The Myth of the 'Waterfall' SDLC (2019)

#22

I recently took a mandatory SAFe course. The introduction consisted of mainly justifying the practice by comparing it to the waterfall method. The latter being defined absolutely ridiculos. The client is not allowed to see incremental versions until the entire thing is completely finalized, maybe 2 years later. The initial design is not allowed to be altered. Testing can't start until the entire application is done,…

SAFe is the opposite of agile. It's what companies practicing waterfall (or any other heavyweight, non-agile process) turn to when they don't understand the problem, lack the will to solve it, but are compelled by external forces to make a change. When the board issues an edict to "adopt agile" because someone told them it was good, SAFe is what they turn to. It's anti-agile. Not only does it not solve the problem, it adds even more overhead. There's a whole industry built around the lie.

Re: The Myth of the 'Waterfall' SDLC (2019)

#23
post #2

I was on a project where we used Agile. The team genuinely wanted to improve itself over time and we didn't have hard due dates. The thing was done when it was done. Despite that, something felt really off. Requirements and scope kept popping out of nowhere. We tried moving onto something new yet requirements kept popping up from things we didn't consider. The project was somewhat of a legacy refactor so it was easy…

What you needed was somebody empowered to judge the cost-benefit of those requirements and disallow low gain ones. (And if they were all high benefit, then things were just working as they should.)

If you tried to collect the requirements up-front, the only thing you would get would be to either stall the project before it starts (what could be a good thing), or to do the exact same process, but only after a months-log delay that created a bunch of stuff you would simply throw away.

Re: The Myth of the 'Waterfall' SDLC (2019)

#24
post #11

I recently took a mandatory SAFe course. The introduction consisted of mainly justifying the practice by comparing it to the waterfall method. The latter being defined absolutely ridiculos. The client is not allowed to see incremental versions until the entire thing is completely finalized, maybe 2 years later. The initial design is not allowed to be altered. Testing can't start until the entire application is done,…

“client is not allowed to see” lol yeah that is so removed from reality as to be laughable. If I told a client you can’t see what we have the client would reply “ok, you can’t see a bank deposit until I get a demo of progress”.

Presumably this is in a context where the money is paid out in a very small number of batches upon hitting milestones, and the majority upon finalizing. There it wouldn't suprise me to see a "progress only gets shown at the milestone dates/review meetings/..." (likely still a bad idea, unless you have some pathological politics at work at the client)

Re: The Myth of the 'Waterfall' SDLC (2019)

#25

I recently took a mandatory SAFe course. The introduction consisted of mainly justifying the practice by comparing it to the waterfall method. The latter being defined absolutely ridiculos. The client is not allowed to see incremental versions until the entire thing is completely finalized, maybe 2 years later. The initial design is not allowed to be altered. Testing can't start until the entire application is done,…

> The client is not allowed to see incremental versions until the entire thing is completely finalized, maybe 2 years later. The initial design is not allowed to be altered. Testing can't start until the entire application is done, etc.

TBF, in the defense and defense contracting world that is not an unusual situation. It's a terrible situation, but it's not unusual. I've seen multimillion and multibillion dollar mistakes caused by this repeatedly.

It's improving, but SAFe is not the answer. If it were, the F-35 may not have been such a clusterfuck. SAFe is overly prescriptive and inflexible, it's a way to make managers happy but does little to actually improve the situation.

Re: The Myth of the 'Waterfall' SDLC (2019)

#26

The problem with software development methodologies is they are sold as a solution for problems that arise from organizational/cultural dysfunctions. Up front analysis is not the problem, the problem is that the people charged with implantation are not given the big picture view and the flexibility to adapt the solution. Instead of using the term waterfall as the counterpoint of agile I prefer to call it the human ce…

Is it just a problem of inadequate specification? Because the methodology seems to work with physical systems.

If I design a machine, and I need a gear or a cam or even a more complex component, I can send the specifications for that part to a machinist who knows nothing about the "big picture" of what I am building. Yet he can make that part of it to perfection. Does this lead to the same sort of problems with the development of physical systems?

Re: The Myth of the 'Waterfall' SDLC (2019)

#27

The problem with software development methodologies is they are sold as a solution for problems that arise from organizational/cultural dysfunctions. Up front analysis is not the problem, the problem is that the people charged with implantation are not given the big picture view and the flexibility to adapt the solution. Instead of using the term waterfall as the counterpoint of agile I prefer to call it the human ce…

> Up front analysis is not the problem

It depends, the idea of working in short sprints with deliverables at the end of it is that often you do not know what you need and the best way of finding out is by trying out and talking to the customer.

The place I'm currently working at is agile on paper but 90% of the work is just implementing external requirements we have no say in. Needless to say, not analysing the problem up front and not designing the general architecture up front leads to building roadblocks later on that prevent getting work done.

To stay with your metaphor: Sometimes you have to eat shit (because of legal requirements, etc.). Planning ahead is very useful in those situations for not choking on the shit.

Re: The Myth of the 'Waterfall' SDLC (2019)

#28

Royce's waterfall model is what was actually being used until the mid-2000s in most software houses. And it was one of those processes that looks good on paper, but doesn't actually save you time or effort. I don't know where this "rigid" model comes from, but I never encountered it in the early days. Everyone knew you couldn't just complete a phase in totality and then move on to the next; there had to be overlap an…

It's a model that allows contractors/consultants to declare a phase of the project "complete" and bill for it. And then to bill for change orders/rework after that. It's not about building good software, it's about making money building software.

Re: The Myth of the 'Waterfall' SDLC (2019)

#29
post #11

I recently took a mandatory SAFe course. The introduction consisted of mainly justifying the practice by comparing it to the waterfall method. The latter being defined absolutely ridiculos. The client is not allowed to see incremental versions until the entire thing is completely finalized, maybe 2 years later. The initial design is not allowed to be altered. Testing can't start until the entire application is done,…

“client is not allowed to see” lol yeah that is so removed from reality as to be laughable. If I told a client you can’t see what we have the client would reply “ok, you can’t see a bank deposit until I get a demo of progress”.

In the defense contracting (and much of government contracting) world the way things are paid out is on hitting milestones. Milestones are not, necessarily (in the best case they are), incremental releases that could possibly stand alone without much further development.

https://acqnotes.com/acqnote/acquisitions/milestone-overview

This is literally the way the US DoD has done acquisition for decades. In the early phases there are often (but not always) multiple R&D efforts which are evaluated later (in the aircraft world think about the various X aircraft that compete to become the next fighter). But once it's selected, it's very waterfall-esque from within the context of the program office which encourages (but does not mandate) a waterfall approach from whoever is doing the work as well. They do periodic check-ins, but they're basically waiting for the entire thing to be produced before it can be evaluated properly. The checkins are just smaller milestones, again not necessarily increments which could standalone if the project were to stop there.

And yes, US DoD does big bang testing at the end. They have test organizations which receive software/hardware systems (cyber-physical systems is a common phrasing for them) and evaluate them at the end of the development process. Ideally, of course, the development team is also doing testing. But even then, in software, they tend to do scattershot testing during development with one big bang test run at the end.

Re: The Myth of the 'Waterfall' SDLC (2019)

#30

The problem with software development methodologies is they are sold as a solution for problems that arise from organizational/cultural dysfunctions. Up front analysis is not the problem, the problem is that the people charged with implantation are not given the big picture view and the flexibility to adapt the solution. Instead of using the term waterfall as the counterpoint of agile I prefer to call it the human ce…

I call this the problem of noise and loss of information. If someone has to write a specification and move on to another one, there will be a noise. Imagine customer -> product -> analyst / ux -> dev. etc. At each level, a little bit of information is lost. One possible solution is that the devs. are partly involved in all phases of the specification and design. This could reduce the problem of noise and loss.
Post reply on HN