What gardening has taught me about developing software and vice versa

Gardening as a metaphor for developing software was, as far as I can tell, first mentioned by Andy Hunt and Dave Thomas in their 1999 book, The Pragmatic Programmer. When it first occurred to me to write on the topic, I hadn’t heard the idea before, as I haven’t yet finished reading the book. It’s on the top of my list, I swear! And knowing those fellows came up with the same idea, I certainly get a feeling of validation.

An enterprise integration garden, the sort of thing I’m seeing in my dreams these days
Red tropical sage, a central Texas native, is hardy and easy to grow

The end result will never match the original design

I created my first ornamental garden within a north-facing corner of my house. Initially, water from heavy rain poured off the edge of the roof and landed on cedar bark mulch I’d placed underneath, dislodging it and flinging mud around. Over the course of a year, much of it washed down into an adjacent low point that I had landscaped with river rock, which doesn’t really benefit from mulching. So, around the area under the eaves, I replaced the mulch with pea gravel, which keeps the soil moist enough and doesn’t float. Soon after that, I had gutters installed. If functional gutters had been present originally, I would never have needed to replace the mulch.

I suppose the gravel creates a nice contrast

Leave room for growth

Surely it won’t get much bigger than that

Expect maintenance and value maintainability

A homebuilder doesn’t expect to hang around and do on-demand maintenance on the house they’re building for years after someone moves into it. You can’t take your CPU from Intel Corporation to a repair shop when it fries out, which occurs almost never with normative use. In contrast, a piece of software without regular maintenance is, by and large, useless software. A library that I find on GitHub without any commits in the past two or three months is usually one that I would consider “abandonware.”

Prioritize that which is most worthwhile

DON’T: Mulch volcano


Thanks for reading! Do you know of a way I could keep the ball rolling with this comparison? Please share in the comments.

Software developer in Austin, Texas, pursuing the art of explaining complex ideas in the simplest ways possible.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store