Remix.run Logo
laserlight 8 hours ago

> the problem with waterfall wasn't the detailed spec

The detailed spec is exactly the problem with the waterfall development. The spec presumes that it is the solution, whereas Agile says “Heck, we don't even understand our problem well, let alone understanding a solution to it.”

Beginning with a detailed spec fast with an LLM already puts you into a complex solution space, which is difficult to navigate compared to a simpler solution space. Regardless of the iteration speed, waterfall is the method that puts you into a complex space. Agile is the one you begin with smaller spaces to arrive at a solution.

4ndrewl 6 hours ago | parent | next [-]

It wasn't the spec - it was the inability to change the spec.

It's the ability to _change_ quickly (or be agile) in response to feedback that marks the difference.

wiseowise 7 hours ago | parent | prev [-]

> whereas Agile says “Heck, we don't even understand our problem well, let alone understanding a solution to it.”

How can you even develop something if you don’t have a clear idea what you’re building?

SideburnsOfDoom 6 hours ago | parent | next [-]

> How can you even develop something if you don’t have a clear idea what you’re building?

But, the statement "we don't even understand our problem well" is typically correct. In most cases where new software is started, the problem isn't well-defined, amenable to off-the-shelf solutions. And you will never know as little about the problem as you do on day one. Your knowledge will only grow.

It is more useful to acknowledge this reality and develop coping strategies than to persist in denial of it. At the time that the agile manifesto was written, the failure of "big up-front design" was becoming plainly evident. You think that you know the whole spec, and then it meets reality much as the Titanic met an iceberg.

Agile does not say "no design, no idea", it points out things that are more valuable than doomed attempts at "100% complete design and all the ideas before implementation". e.g. "while there is value in (comprehensive documentation, following a plan), we value (Working software, Responding to change) more. (see https://agilemanifesto.org/ )

In other words, start by doing enough design, and then some working software to flush out the flawed thinking in the design. And then iterate with feedback.

mytailorisrich 7 hours ago | parent | prev [-]

You have am idea but typically you neither have a complete understanding nor a detailed view of the solution, and of course things tend to chanhe over time.

That's the key benefit of starting small and of iterating: it allows you to learn and to improve. You don't learn anything about your problem amd solution by writing a comprehensive design spec upfront.

wiseowise 7 hours ago | parent [-]

I have an idea to build payments processor, how does that get me any closer to actual payments processing?