8 ms·
There's a talk well worth watching by Kevlin Henney called 'Old Is the New New' [1], where he points out that waterfall was initially conceived with design iter
by Fr0styMatt88 7y ago
There's a talk well worth watching by Kevlin Henney called 'Old Is the New New' [1], where he points out that waterfall was initially conceived with design iteration in mind and yet that part was just essentially forgotten and replaced by something overly-simplified in common understanding.
[1] https://www.youtube.com/watch?v=AbgsfeGvg3E https://www.youtube.com/watch?v=AbgsfeGvg3E
- aedron 7y agoThe term "waterfall" is a straw man, software development methodologies have always required iterations. Just look at the Rational Unified Process (the industry standard before agile): https://en.wikipedia.org/wiki/Rational_Unified_Process#Four_project_life-cycle_phases https://en.wikipedia.org/wiki/Rational_Unified_Process#Four_... Every phase of the project has iterations, but iterations stress different things (requirements in the beginning, construction and handover in the latter phases).
- Jtsummers 7y agoTragicaly, it's not a strawman, it's an enshrined project management method the DoD created from a misunderstanding of Royce, which escaped into the wild. Now, most people who say they do Waterfall are quite mistaken. They don't, they do some sort of iterative method as you say. But they report as if they have distinct, linear phases with distinct linear steps, as if Waterfall were the reality and not an imagining. Which is itself problematic. This means that upper managemnet comes to believe that Waterfall works because they see it working, not realizing that the reports themselves are misleading. Everytime one of the project managers tells me they're doing Waterfall I press until they admit it's "Modified Waterfall", by which they mean the V-model or Spiral or other models with explicit feedback loops/mechanisms. And it frustrates me to no end that they keep using the wrong terms rather than the precise ones, because now upper management has begun enshrining Waterfall again after two decades of improvements. Now we have to fight the same battles, to impress upon them that iterative methods are what we actually do, and that a strict linear flow is impossible.
- pflenker 7y agoSome anecdotal evidence that waterfall is not a straw man: at least 10 years ago, waterfall was taught as waterfall without iterations at some German universities. This was the starting point, and many derived models, like the V-Model, where also taught, but iterations we’re nowhere in sight.
- heymijo 7y agoWhat's a word or phrase to describe this idea/principle? It feels like the Bruce Lee idea of "take what is useful and leave the rest" but either the opposite or a bastardized version. Like, take what is easy and leave the nuance I see, whatever this idea/principle would be called, all over.
- BurningFrog 7y agoOr is it "keep the new name and keep doing the old things"?
- heymijo 7y agoFrom what I have seen it's probably more "keep doing the old things + add the name of and a part of some new thing." Then like evolution, it's survival of the fittest with the entrenched old idea having the heavyweight advantage. BTW, this is a great point you make! I hope my comment doesn't seem to discount it as your thought made my mind go to the experiences I have seen that led to this comment.
- AnimalMuppet 7y ago"Implementation without understanding"?
- Jtsummers 7y agoAlso known as cargo cult behavior. Taking the visible behavior without the invisible understanding or behind-the-scenes behavior.
- heymijo 7y agoI think you nailed it! From the Wiki on 'Cargo cult programming' but I think 'programming' can be subbed out for anything. > Cargo cult programming can also refer to the practice of applying a design pattern or coding style blindly without understanding the reasons behind that design principle. > Cargo cult programming is typically symptomatic of a programmer not understanding either a bug they were attempting to solve or the apparent solution > The term cargo cult programmer may apply when an unskilled or novice computer programmer (or one inexperienced with the problem at hand) copies some program code from one place to another with little or no understanding of how it works or whether it is required in its new position. https://en.wikipedia.org/wiki/Cargo_cult_programming https://en.wikipedia.org/wiki/Cargo_cult_programming