In 2015 my family and I fulfilled a longtime dream by moving to a big house in the woods in Eastern Tennessee. And as is customary for upper-middle-class white technocrat exurbanites, we decided it would be fun to do some lite “homesteading”. Including raising chickens for eggs.
Now to raise chickens you need a pen to (theoretically) keep the chickens in and the foxes out. And for a pen you need chicken wire, and to hold up the chicken wire you need fence posts. So I procured a pile of fence posts and a post-hole digger, and went to work.
But I quickly encountered a problem. The topsoil of the foothill our house was built on consisted more of rocks than soil. After an hour of sweaty labor I had dug one (1) relatively shallow hole.
I decided I needed a better tool. So I went back to the hardware store and bought a fence-post driver: essentially a steel cylinder with one closed end and handles on the side. You slide the open end over your fencepost, lift it up, and hammer it down, over and over, until the fencepost is driven sufficiently deeply into the ground.
Or at least, that’s the theory. In this case the ground won, and the fenceposts lost.
Once again, I needed better tools. So I went back to the hardware store and purchased a spud bar. This is basically just a six-foot steel rod, flattened on one end and sharpened into a hardened chisel on the other. You use your fence-post driver on the spud bar instead of on a flimsy fencepost, and it drives a hole just big enough to slide a fencepost into.
This, at last, worked like a charm. I was putting fenceposts into the ground in minutes instead of hours!
In fact I got a little over-eager, and didn’t think too hard about where I was putting my fence posts. When I stepped back to evaluate my work, I realized there were a few posts that needed to be moved.
At this point I discovered a new problem: once this stony soil had bowed to the inevitability of accepting fenceposts, it did not want to give them back. I pulled and yanked and tugged with all my might, in vain.
Once again, I needed new tools. Back to the hardware store I went, this time in search of a fence-post puller. A fence-post puller is just a big steel lever on a base. You latch one end onto your fence post and lean all your weight on the other end, and out it pops.
This tool worked great! I had no trouble at all extracting the stubborn fenceposts from the ground. And along with my driver/spud-bar combo I was able to quickly reposition them in preparation for chicken wire.
All these tools are examples of leverage. They are methods of achieving maximal impact in the world, with the minimum expenditure of effort.
Which makes me think of code.
Why do we write code? The most common answer I hear is to solve problems. And that definition is fine as far as it goes.
But a lot of the work we do with software isn’t about puzzles to be solved. A lot of the code we write is there to effect some kind of change in the world. Particularly changes in how we work, play, or in how we connect and coordinate with each other.
This observation suggests a ruler that we can apply to code: how much leverage does it add? What is the effort that stakeholders expend to use it, and what level of impact on the world does that translate to? How would they have accomplished that same impact without the code?
What’s the leverage ratio of the code you’re working on today?
This article was adapted from part of my “#NOCODE” talk.