I have been watching Dave Farley's MSE channel, which prompted me to leaf through his book Modern Software Engineering. I read it a year ago, but as I leafed through it again I discovered I had penned thoughts next to some paragraphs.
Leafing through to find more interesting stuff which I hadn't annotated, I found this:
... Dan [North] described the difference between waterfall and agile thinking as, effectively, a problem in economics. Waterfall thinking is promulgated on the assumption that change gets more expensive as time goes on.
-- Chapter 4, Working Iteratively, Iteration as a Defensive Design Strategy, p.46
Dave goes on to explain how in this view, the core difference between waterfall and agile is the cost of change.
This is visually represented with cost/time diagrams (redrawn here with minor additions):
As the Waterfall model does not require any coding practices which keep the codebase maintainable, we get 2 effects:
- Starting things from scratch is very fast, as we only spend time on coding the thing we need
- Each change is more expensive than the one before as we do not "waste" time refactoring, writing tests or coding in pairs/mobs
This strongly reminds me of Beth & Kent Beck's excellent metaphor, the Forest and the Desert. When Beth & Kent talk about the Forest, they mention a much more relaxed working environment. There is no stress. Work flows naturally, with no overtime and no rushing. Developers have the time to rest, exchange ideas or invest in the practices which help keep things where they are (i.e. the Forest). It seems to me that the cost of change in the forest is constant.
Conversely, things are much more stressful in the Desert. As the cost of change is rising all the time, deadlines slip, rushing is ubiquitous and there is no time to do activities which would help alleviate these problems.
While working in the Desert is possible, and indeed much more common today, I strongly prefer working in the Forest. I like to rest in the shade.
Notes
I believe the effect is related to Martin Fowler's Design Stamina Hypothesis.
For another, also excellent, description of Forest/Desert, see Beth & Kent's talk at Øredev.
Cost-of-change diagrams re-purposed with permission from Dave Farley.
Cover photo by Alin Gavriliuc on Unsplash.
Top comments (0)