Live data from Hacker News

We always end up with waterfall

amazingcto.com

41–50 of 144 posts

Re: We always end up with waterfall

#41
post #36

Earlier quoted context omitted.

Yeah - I mean, when I wrote the comment I ignored all the absolute disaster-projects I've seen. But those where doomed on so many levels I don't even wanna blame waterfall or agile or the in-betweens.

So, "if you ignore the ones without iterations, I've never seen a waterfall model implemented without iterations."

Hah yeah i guess you can interpret it like that, but i give the same leeway to agile when they skip the retros and the planning before the sprints etc. You cant blame the process if you dont even make an attempt of adhering to it :)

Re: We always end up with waterfall

#42
post #39
post #31

Earlier quoted context omitted.

The best results I have ever seen have been projects that people on the bottom did themselves, because they needed it without the people on the top ever knowing about it. The worst results I have ever seen have been projects where the people on the bottom stopped caring because the people on the top tried to make them ignore the laws of nature. Also: God is dead

I'm not really sure what you are arguing. Of course if its a one man job (or a couple) and the .. product or whatever isn't system/safety critical even having a PM is probably overkill and the overhead of "any" process likely just wrecks the output. But if you need to organize 50+ engineers and actually produce a ... product? That people/agencies/customers expect things of you sure as shit is going to need a definabl…

Good luck building a chronology for 50+ engineers ahead of time that isn't either horrifically over estimated or instantly wrong.

Waterfall is a pacifier for people who would rather have lies than uncertainty.

Re: We always end up with waterfall

#43
post #34

I disagree. Everyone does iterative development, always, but it comes disguised as waterfall/scrumfall/kanban/whatever. The product is developed using waterfall and then it gets put in front of a stakeholder, who has changed their mind in the time between the initial spec and the delivery. So another, smaller, waterfall is created. This is iterative development. And it always happens, because no-one gets product deve…

Two things: 1) You can end at the first iteration and call it a day. The only reason nobody does that is because they don't benefit from an unhappy customer 2) If you have experience, nothing stops you from putting some iterations into the waterfall. As you said the need for feedback rounds should be no surprise. Traditionally the downside to waterfall was that the distance between those iterations was too big. But s…

For me the goal of Agile, especially in giant 100+ yo organization, is to tell people that it's less important to fit the plan than to fit the need of the external stakeholder.

Who cares if 6 months ago some important managing director signed off on a useless feature nobody wants anymore: kill it now and move on, we're agile. This is literally the only way I've seen used agile in big orgs: in words only, and it's liberating: we stop spinning endlessly between useless features as the clients move on faster than us, now we can actually skip a beat and go faster, and screw the paper pushers bemoaning that "everything changes". Because yes, everything changes.

Re: We always end up with waterfall

#44
Waterfall is natural law. All technology goes through the process:

Analysis - Requirements - Specification - Design - Implementation - Qualification - Testing - Release.

You literally cannot have good technology without enforcing this workflow and properly completing each step. Its a function of the nature of the way the mind works to solve a problem and encode that solution into a workable technology.

This natural law is resisted by those who do not have experience with it, and who also attempt to make their mark on the universe by either re-inventing this natural law, and slapping their own brand on it, or attempting to ignore key parts they don't like, and in which they are not competent, refactoring it over time only to discover .. as it is a natural law - that they end up re-inventing it, as well. And then slap their brand on it.

But I can say with great confidence after 40 years of developing technology, that the more you resist this natural law, the worse your product will be. All failed technology can be evaluated on the basis of how well this workflow was manifested by those involved.

Scrum is just New-Age Waterfall. Agile is just 'officious scrum'. 10x developers are merely individuals who have stopped resisting this natural law, and in so doing have worked out how to apply it productively in almost everything they do ..

Another factor is that Waterfall is iterative. You can do it in grandiose fashion, and you can do it on a granular, microcosm-level. The more you iterate, the more water flows, and the better things get - but people tend to resist revising themselves. The inclination to check oneself before one wrecks oneself is either bred out, culturally, or reinforced through the gauntlet of fire that is the modern industry. The better you get at iterating over the waterfall, the higher quality your product.

Re: We always end up with waterfall

#45
The exception to this is of course open source projects operating at a much larger scale than most software companies. But they have come up with highly structured ways to develop that don't involve planning out everything in detail, which is a waterfall thing to do.

Linux project: releases regularly every eight weeks or so. Chrome & Firefox: same thing. In fact most well run larger OSS projects seem to end up using date driven milestones rather than content driven milestones. Inside these projects you of course find people or groups of people that may have their own roadmaps and plans but they keep these separate from the overall plan, which is simply to ship whatever on date x. Either their stuff is ready and it gets merged and released or it stays on a branch until it is ready for a next release.

Branches changed everything for open source developers. Every change is now a mini project. The last step of that project is to merge it, when the project is over. Some branches only last minutes, some last months/years. And those can break down into sub branches/projects. That's actually how the Linux project moves forward. Mostly Linus Torvalds is continuously integrating what is deemed ready.

The mistake many companies make over and over again is managing whole products as one project. It doesn't work. Stop doing that and life gets better. Look at how big companies release big software packages these days. They use calendar driven milestones as well. They have lots of internal projects about things that may or may not end up in there. But the releases mostly go out as planned, i.e. when they are supposed to go out with whatever is in a stable state. The show must go on. That wouldn't work with waterfall. They'd constantly be missing those deadlines. The only reasons for moving deadlines are usually quality related.

I always like this notion of inversion of control. You don't plan what ships, just when you ship and at what level of quality. This is much easier to plan for. Basically it becomes a game of quality control. If it's not ready, don't merge it and it's not on the critical path to anything. The rest just involves looking at the calendar.

Product owners hate this inversion of control because they want to put content on the calendar. A good PO actually understands this and can adapt to that. An inexperienced one will indeed revert to planning lots of silly content milestones in a calendar. And then you are doing waterfall and falling behind the unrealistic schedule. Simple solution: don't do that. A POs job is to prioritize and keep amount of work in progress low to ensure that the right things get done well and as soon as possible. A high amount of work in progress signals slipping deadlines, poorly prioritized work, and lots of people stressing out about everything being super important.

Agile processes tried to fix this. But you still end up with POs in control and sweet talking to senior management. So you end up doing waterfall if they don't know what they are doing (which happens a lot).

Writing this as a CTO who is doubling as the PO (until we can hire someone that is better at that than me, I'm not bored). My approach to this is very simple. I have a hundred things I want to get done. I pick the top two and do those and than we do some more. The hard part is picking the right two things. Not coming up with a hundred more things to do. That requires discipline and a grasp of business and tech. That's my job. A key insight here is that you shouldn't plan out those hundred things in any amount of detail until you are ready to do them. That's waterfall thinking. You are just building an inventory of crap that will never get done and is probably the wrong thing to do by the time you get around to doing those things months/years later. Instead, I set high level mid term goals and plan short term according to those goals. The short term is about what we do right now and making sure that is the best thing to do and then doing that and only that well. We have continuous deployment so I don't care about calendars. Sprints are our short term planning horizon. Day to day work is Kanban driven. Do the most important thing, do nothing else.

Re: We always end up with waterfall

#46
post #4

People tend to go too far in one direction and then later over-correct in the opposite direction. Waterfall model is too much, scrum is too much. The optimal approach is almost always in-between and yet, frustratingly, nobody advocates for balance and nuance. Software development requires some planing and also some flexibility. One decade, companies think software architecture is the most important technical role in…

> scrum is too much

Surely scrum is too little? Most lowercase-a agile people consider it more of a stepping stone into agile.

Re: We always end up with waterfall

#47
post #42
post #39

Earlier quoted context omitted.

I'm not really sure what you are arguing. Of course if its a one man job (or a couple) and the .. product or whatever isn't system/safety critical even having a PM is probably overkill and the overhead of "any" process likely just wrecks the output. But if you need to organize 50+ engineers and actually produce a ... product? That people/agencies/customers expect things of you sure as shit is going to need a definabl…

Good luck building a chronology for 50+ engineers ahead of time that isn't either horrifically over estimated or instantly wrong. Waterfall is a pacifier for people who would rather have lies than uncertainty.

Sure time estimation in developmentprojects is hard (impossible?), but thats hard in both waterfall and agile or whatever.

But the often used CER -> PDR -> CDR -> TRR etc. is damn useful.

Re: We always end up with waterfall

#48

For people who worship capitalism as much as folks here do, a lot of you sure don't get business processes. Yes, you wind up having to plan things, because the rest of the business world runs on deadlines and contracts and milestones and deliverables. Agile is, God forbid, almost like being an artist or low, disgusted whisper liberal arts major...when done correctly, in that you're iterating and tinkering and shippin…

That just means you have a shit management culture that values lies about deadlines over the type of honesty that builds profitable products.

Re: We always end up with waterfall

#50
post #7

Earlier quoted context omitted.

Honestly I've never seen a waterfall model implemented without iterations. And you can always update the top-spec at later date if needed its just more difficult.. Which it should be.

> Honestly I've never seen a waterfall model implemented without iterations. I have. It didn't reach the end.

People should read Royce's paper that popularised Waterfall. It has iterations, sadly it appears most people stopped reading after Figure 2.

https://www.praxisframework.org/files/royce1970.pdf

Post reply on HN