What if demonizing “waterfall” pulled the rug out from under our Agile?
I’ve grown increasingly discontent with the state of Agile, uneasy with how it has shifted from a community of needs and a movement of practitioners to a market of solutions and increasingly focusing on theorizing and commenting on doing rather than doing and helping others do.
We’ve broadened our scope, which is both fantastic and necessary but it also seems like our foundation has withered away.
I’m starting to suspect that we’ve become a yang that has lost its yin.
Oddly enough I find myself missing waterfall.
I’ll let that pour into your mind and settle for a bit.
I don’t miss projects longer than most peoples technical careers, I don’t miss phase based, toll gated, let’s implement the spec, the whole spec and nothing but the spec no matter how dumb it seems. I don’t miss hiding failure until the very last moment and realizing way too late that not only did we go in the wrong direction we did so with the wrong vehicle.
I don’t miss anything about the world of waterfall. Except one thing.
I miss how people who grew up in the shadow of waterfall, had the experience of waterfall.
The experience gave folks the foundation and something to add contrast. For all its faults, inflexibility and folly. Waterfall did by its design give us if not the results we wanted a big enough, concrete enough, hope of what could be, how done could look like and the experience of how plans and reality not really match.
In essence waterfall trained people to see the whole journey and then inadvertently taught them that simply following the plan, isn’t the best plan.
With that experience, changing strategy and inspect and adapting as you go along not only makes intuitive sense because it steers you away from the pain. But you also carry with you a sense of how the destination might look and feel.
The failure of the big gave us the appreciation for the small. Oddly enough it seems likely that starting out with only the small not really equip you nearly as well for taking small steps.
I think this is analogous to how those that already have deep design skills seem to effortlessly TDD themselves along a evolutionary path and finally arriving at something that looks as if it came into being as if designed “just right” from the start.
I think anyone that has witnessed those new to the craft of software attempting the same can safely conclude that it’s no given that those that don’t already know about good design will magically find it simply by writing tests, and guided by smells refactoring the tensions away
to reveal the natural shape of the problem.
Looking at product management and governance I think I glean a similar pattern. For all the weakness of the old ways. Those schooled in them and ready to let go, seem to be able to
work in small increments to piecemeal build up a complete offering that’s both complete and strategically polished. Those unconstrained by legacy seems to much easier fall prey to getting stuck in some local optima.
Thus maybe it’s so, that the basis and success of Agile came not from forgetting the old and staring with a clean sheet. But from building upon the structures, concepts and rigid clarity that came before.
Maybe Waterfall isn’t the antithesis, but the foundation of Agility. Maybe it’s the Shu to our Ha. The Yin for our Yang. The discipline and teacher we needed to find our way. By demonizing it we might have thrown out the very things we needed to progress.
If so, how do we best get the baby back without also drowning in the old bathwater?