Choose your analogy carefully

The analogies one uses to describe their work disclose important aspects about how they view one’s craft. These analogies then shape the tools which are created and dangle on one’s toolbelt.

Two of my favorite analogies, teaching and pottery share the same goal of undermining the development-as-bricklaying mindset around which many development tools have organized.

The brick-laying analogy (and the managerial mindset that software is “built”) has created tools which don’t fit the work. It’s putting a brick trowel into your toolbelt when a gardener’s spade is what’s needed.

I’ve modeled my site from the analogy that software (and writing) is more like gardening than brick-laying. On the strictly development ideal, gardening matches well with the iterative work of software. There’s room for organization and planning, just as I might draft a plan for which plants to put in which tier of my garden bed, but it’s a fairly small part of the role of a gardener. What’s more central to a gardener’s work is the nurture of the plants and removal of pests. It’s messy work which, if left to itself for any length of time, will atrophy into chaos.

But my analogy incompletely describes the durable nature of some software. I’ve used the same webhook technology, unchanged, for over three years without incident. Not even perennials give gardeners that kind of hands-free longevity.

What’s your analogy?