News for hackers. Stuff that matters.
Re:Fear of over-engineering has killed engineering altogether by colechristensen on Friday July 26, 2024 @12:33PM (#41079968)
"waterfall" is just a pejorative term for the kind of planning represented by a Gantt chart, which kinda looks like a waterfall.

This kind of planning is _necessary_ for traditional engineering projects where certain steps of the process can take months or years and requires scheduling of many resources.

Purely software projects usually don't need that because if your tools are good you can ship a completely new version in minutes to hours instead of months to years. You also get very easy do-overs if there are mistakes which you don't get if you're building a bridge or a factory.

Re:Fear of over-engineering has killed engineering altogether by weinzierl on Friday July 26, 2024 @01:16PM (#41080389)
That you can ship quickly is not really relevant though. Case in point is that you most often cannot change the architecture midways without permanent damage. That's why many software projects architecture looks like a building where the architect completely changed their mind after every floor, why everyone complains about technical debt and projects are often thrown away after a couuple of years and rewritten from scratch.

I'm not saying agile has no place, just that many projects would benefit from a little bit more foresight.

Also, I think successful agile projects are often those where the long term planning is there, even if it is not obvious or talked about a lot.

Re:Fear of over-engineering has killed engineering altogether by colechristensen on Friday July 26, 2024 @02:42PM (#41081126)
>I'm not saying agile has no place, just that many projects would benefit from a little bit more foresight.

There is really a spectrum of choices for how much you plan and tradeoffs with each level.

Success is finding the right balance for you, your team, and your product.

Re:Fear of over-engineering has killed engineering altogether by ethbr1 on Friday July 26, 2024 @12:57PM (#41080193)
The phrasing I once heard (source sadly lost to my memory)

"If the physical properties of concrete changed every 6 months, then structural engineering practices would look very different."

But that's the world most software is developed and lives in.

Re:Fear of over-engineering has killed engineering altogether by kabdib on Friday July 26, 2024 @01:05PM (#41080259)
"This avionics firmware is absolutely terrible."

"Well, last week it was driving a bus."

Re:Fear of over-engineering has killed engineering altogether by erik_seaberg on Friday July 26, 2024 @01:30PM (#41080476)
I'm reminded of a build break in Google web search because of a dependency on the self-driving car project. And that's how Bazel rules were given visibility lists.
Re:Fear of over-engineering has killed engineering altogether by janpieterz on Friday July 26, 2024 @12:57PM (#41080192)
Waterfall in software development was different than a Gantt chart based "project that was managed" like the construction of a bridge (an example close to my house). They added new requirements to this bridge (like they wanted the surrounding grounds to be maintained nicely, so added irrigation and gardening etc). But no new requirements were added to the foundational "here's a bridge and it needs to cross this stream from this point to that point" (high level).

Waterfall in software was continuously changing those fundamental parts. You'd be fine tuning the irrigation and needed to destruct the whole bridge because some new requirements came up. That's where the anti-Gantt and "bad waterfall" comes from, the reality is the software world as a whole moves way quicker and requirements are way more malleable, subjective than building a bridge.

Re:Fear of over-engineering has killed engineering altogether by colechristensen on Friday July 26, 2024 @01:07PM (#41080282)
>Waterfall in software was continuously changing those fundamental parts. You'd be fine tuning the irrigation and needed to destruct the whole bridge because some new requirements came up.

Exactly this same thing also happens in non-software "waterfall" projects as well. Mid-project fundamental requirements changes which result in having to re-engineer large parts of the project. This is one of the reasons military acquisitions are so expensive, there's a huge problem with requirements changes.

Re:Fear of over-engineering has killed engineering altogether by com on Friday July 26, 2024 @02:02PM (#41080768)
And thus us why large-scale construction companies can bid so low, because most of their revenue and profit come from the inevitable scope and requirements changes later in the projects.
Re:Fear of over-engineering has killed engineering altogether by janpieterz on Saturday July 27, 2024 @12:29AM (#41084465)
Perhaps to some degree, but I've never seen a skyscraper that was almost done being torn down to be re-architected and rebuilt.
Re:Fear of over-engineering has killed engineering altogether by marcosdumay on Friday July 26, 2024 @01:34PM (#41080511)
> This kind of planning is _necessary_ for traditional engineering projects

People keep repeating that, without any empirical evidence at all. If it were only software developers justifying a body of knowledge, it would be ok, but all kinds of people keep repeating that.

Yet, that kind of planning predictably fails every single time in every single engineering practice.

I can guarantee you, if an engineer designs the structure of a bridge, send it to a crew to construct, and go away to only test after it's done, the bridge will fall down before it's even built.

Re:Fear of over-engineering has killed engineering altogether by bluGill on Friday July 26, 2024 @01:41PM (#41080578)
the fault is not allowing time to test and fix in the right places not in wanting a schedule.
Re:Fear of over-engineering has killed engineering altogether by marcosdumay on Friday July 26, 2024 @02:35PM (#41081050)
The schedule also does never work anyway.

Passing a design down and going away doesn't work. Scheduling tasks before you star them doesn't work. Testing only at the end doesn't work.

The one thing civil engineering has that resembles PMBoK is designing things beforehand. And only civil engineering does that, only because they can't prototype.

Re:Fear of over-engineering has killed engineering altogether by colechristensen on Friday July 26, 2024 @02:45PM (#41081157)
The benefit of a Gantt chart isn't meeting deadlines, it is organizing work. You have all of the steps and what each of them depends on and a timeline. If something slips you know how to update your estimates for everything downstream. If several things are at risk you can see which ones have more critical time constraints and allocate resources effectively.
Re:Fear of over-engineering has killed engineering altogether by marcosdumay on Friday July 26, 2024 @03:14PM (#41081393)
> If several things are at risk you can see which ones have more critical time constraints and allocate resources effectively

Hum... Have you used them that way? And have you needed a project design to actually discover risks and estimate that you need to act on them?

Or better, have you found any unexpected risk on a project design, and seen it materialize on practice?

> If something slips you know how to update your estimates for everything downstream.

And then your renewed estimates will be wrong again. No idea if more or less wrong than before your revision though. It can go either way.

Re:Fear of over-engineering has killed engineering altogether by colechristensen on Friday July 26, 2024 @03:29PM (#41081507)
>Hum... Have you used them that way? And have you needed a project design to actually discover risks and estimate that you need to act on them?

Yes. These things are all over the place in defense.

One of the most important exercises in doing a Gantt chart is finding the "critical path" which is the set of tasks which can't slip without effecting the final timeline. If step two has two separate tasks that step 3 depends on, the longer task is on the critical path, the shorter is not because the shorter task can be delayed at least some without affecting when step 3 starts.

As the project continues you update the chart with what actually happened vs. your plans. The goal is to minimize changes, sometimes you can, sometimes you can't, but when there are changes you can see how the whole flow is affected and you can easily communicate the change in deadlines, changes in budgets, you can pull people off of one task and put them on another, etc.

In agile you do way less of this planning and the path is usually much more simple so you don't _need_ these tools to be successful.

Re:Fear of over-engineering has killed engineering altogether by bluGill on Friday July 26, 2024 @06:32PM (#41082915)
civial engineerin, is often small variation on every other structrure. as suchiit is easy to estimate as things didn't change. when things are very different is when they overrun schedules.
Re:Fear of over-engineering has killed engineering altogether by supportengineer on Friday July 26, 2024 @01:39PM (#41080559)
> "you can ship a completely new version in minutes to hours"

Not all that long ago, software was distributed on physical media such as floppy discs and CD-ROMS.