Settings

Theme

Client Runs on Waterfall

23 points by pxue 2 years ago · 18 comments · 1 min read

Reader

I'm secretly loving it.

I got hired to migrate a client's existing excel spreadsheet internal tool over to a customized React SPA.

This is the first contract where I'm not rushing around every sprint trying to piece together half baked features and pushing them out the door. While not strictly waterfall (more kanban) I'm enjoying the heck out of the process either way:

• Everything is rigorously tested and documented.

• Nothing gets released until all the requirements are met. No sprints.

• We celebrate every release.

• Clients give feedback, we spend time talking about it internally, and then do proposal, design and then developers come up with architecture docs and we talk about it some more.

As a 34 year old dev I'm loving this.

Am I just getting old?

95014_refugee 2 years ago

At 34, not old. Maturing, perhaps.

It’s worth reading the original Waterfall paper. If you’ve only ever heard of it as the bogeyman, it might surprise you.

From your tone here, I think you are seeing “people over process” play out in your context. Celebrations? Talking? More talking? Time to do work? These all smell like a sensible organisation doing sensible things. Congratulations, you lucky &^%*&^%&^.

  • Jtsummers 2 years ago

    The original paper was very obviously not advocating for the initial process it describes. But it does describe Waterfall, and then it amends it into something that could actually work (specifically adding in feedback loops that Waterfall does not include).

    Some fools in industry, DOD in particular, looked at the pretty picture and codified it as an option among several for defined development processes. Then contractors and gov't managers picked it because it was straightforward (on paper) to plan and schedule, and it made it into practice. It's still used by DOD contractors today and it still fails. It's not a bogeyman, but Royce himself is not to blame, he was pointing out the stupidity and illiterate fools missed the point.

bradley13 2 years ago

Sounds like a client with a clue. Congrats on winning the lottery.

Agile development certainly has its place. Sadly, in most projects, it has become an excuse for clients who don't know what they want, combined with managers who are unwilling to force clarity in the requirements.

  • throwaway38375 2 years ago

    > Sadly, in most projects, it has become an excuse for clients who don't know what they want

    Thank you for summarising why I hate agile so concisely.

    I don't hate agile itself, more the clueless people who think agile replaces requirement gathering and planning.

    • jf22 2 years ago

      Agile does replace requirement gathering and planning, though.

      A core Agile tenant is responding to change rather than following a plan.

      • bradley13 2 years ago

        Agile certainly does not replace requirements engineering. The idea that it does, is exactly the problem.

        Your customer needs to know what they want. If they don't, then it is way too early to start development.

        If they know only part of what they need, agile can let you start on that, while your requirements analyst (or equivalent) helps them work out the next part.

        What shouldn't happen, is a lot of random sprints chasing ephemeral ideas. That's just a waste of everyone's time.

        • jf22 2 years ago

          But that's thing... your job as a developer is to help the customer figure out what they want.

      • Jtsummers 2 years ago

        > Agile does replace requirement gathering and planning, though.

        No, it shifts it, it does not replace it. Agile promotes the integration of what were, under classical Waterfall (courtesy of the DOD, in particular, codifying it) separate stages. Not separate in appearance, but actually separate. In classical Waterfall, following the DOD defined process which somehow escaped into the world, requirements, specification, development, and testing are separate stages possibly done by separate groups and executed in series. This is foolishness if it's a non-trivial project (on trivial projects you can use almost any process and succeed).

        Agile is, in part, a counter to that foolishness: Those are not really separable things. You have to mix them for any non-trivial project. This means, if you're in a competent org, you do a mix of each of those activities (and others) throughout the development process, you don't remove them. At the start it's more requirements and specification heavy, with a bit of development and testing (prototypes, spikes in XP terms, and other things). As time goes on the process becomes more development and testing heavy as requirements and specification settle down, unless a real-world event makes the system obsolete before release. Then you figure out how to adapt to the changing circumstances which means revisiting requirements, specification, code, and test and figuring out what will surive, what won't, and how to make it work.

        > A core Agile tenant is responding to change rather than following a plan.

        That doesn't mean don't have a plan. It means don't be stupidly rigid, when the plan is overcome by events, respond to the events rather than stay committed to a now-wrong plan.

      • codingdave 2 years ago

        The agile manifesto does not reject planning. It just says adapting to change is more important:

        "That is, while there is value in the items on the right, we value the items on the left more."

        You still absolutely get requirements and plan. You just do it in smaller, more granular pieces.

        • jf22 2 years ago

          What does requirement gathering and planning look like to you?

  • croo 2 years ago

    I agreecand I would add that waterfall too has its place as you OP luckily experienced. It forces you to design and plan the whole thing before execution and it also works better on projects that have a rigid unmoveable deadline.

  • malfist 2 years ago

    Clients who don't know what they want, but they want it yesterday

philomath_mn 2 years ago

A lot of companies heard that big design up front (BDUF) was bad so they decided to do no design or planning up front.

You can't anticipate everything like true waterfall expects, but you also can't just yolo into a sprint without some effort spent on specs / designs / architecture / etc.

Sounds like your client found a balanced approach.

GianFabien 2 years ago

Enjoy! Clients like that are the exception.

I'm assuming that the requirements are documented and not altered every other day. Have to wonder whether your client is an engineering (not software) or related firm where they do detailed design before building.

2rsf 2 years ago

You are not getting old, you simply met reality. What you are describing is a functioning, mature and high performing company vs the opposite. It has nothing directly related to Agile vs Waterfall.

runjake 2 years ago

For others as lost as I am:

https://en.wikipedia.org/wiki/Waterfall_model

https://changelog.com/posts/waterfall-doesnt-mean-what-you-t...

(Links to the 1983 paper within both links)

badpun 2 years ago

Waterfall is good for developers, as you get unambiguous requirements that you just need to translate to code. Job is nice and easy.

However, waterfall can be disasterous for the organization. If a single big iteration takes a year, the entire team might be building something worthless for an entire year without getting feedback that what they're doing is not what the users want. I've been on such projects.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection