A while back, I was discussing some of the nonsensical actions that people take in the software industry with my parents during a visit. my mom told me to look up a poem called The Ambulance Down in the Valley. I wrote it down and forgot about it for months because I was in the middle of the last semester of my Master’s degree. I finally got a chance to look it up, and it really is a beautiful illustration of the strange way we look to solve problems sometimes.
The story, essentially, involves a cliff that provides a beautiful scenic view, but where many people also fall and injure themselves. As the poem goes…
So the people said something would have to be done,
but their projects did not at all tally;
some said, ‘Put a fence ’round the edge of the cliff,’
some, ‘An ambulance down in the valley.’
I had trouble tracking down the original author, and there are a number of different versions that end in different ways. It looks like many authors have added to the original work. As I found here, it seems the original poem was written by Joseph Malins in 1895, and where his work ends is where all the versions I’ve found differ, so I’m assuming that was all the original author wrote.
Anyway, the great point that the above passage illustrates is that putting a fence around the cliff wouldn’t cost nearly as much as the ambulance down in the valley. This parallels an important lesson in software engineering, the earlier in the software lifecycle you catch a defect the less it costs to fix it. The lesson does seem obvious, but you’d be amazed how often we lose sight of it. Putting a fence around the cliff takes away some of the majesty of the view, so it is not an attractive option to most. At the same time, putting extra effort into quality early in the process of developing a piece of software isn’t as exciting as just pushing forward and getting the product finished so you can see some results. The result is the same in both the poem and in real life, jumping for the more attractive short term choice will hurt you in the long run.
Towards the end of the poem, a wise old man makes an observation that highlights another great lesson for software engineers.
Then an old sage remarked: ‘It’s a marvel to me
that people give far more attention
to repairing results than to stopping the cause,
when they’d much better aim at prevention.
As I read this part, I imagined someone approaching the situation from the outside, after the ambulance in the valley was already in service. In software, as well, bringing a fresh perspective to a situation can remove self imposed obstacles and assumptions that we no longer see.
The Ambulance Down in the Valley is a great example of the way that wisdom from other disciplines often applies in the world of software engineering. There a lessons for software engineers everywhere, we just have to remember to look.