Chesterton’s Fence and the Records We Don’t Keep
Tech, Development Manager, Shopify ·You know that thing where you are oblivious to a word or phrase, for your whole life, and then you hear it multiple times in the same week?
That’s “Chesterton’s fence” for me this week.
First, JavaScript Allongé author and all-around cool bassist @Raganwald referred to it in the context of the RobinHood app.
Then it came up at work, where one of our new hires said “I’ve been hearing a lot about Chesterton’s fence … ”
The concept is pretty simple. Naïve person sees a fence, thinks, “that’s not necessary; let’s take down the fence.” The wise person sees the fence, thinks “I can’t take down the fence until I know why it was necessary.”
And that really resonated with me.
The first team I led at Wave took ownership of the Identity
service. This service provided authentication and authorization to small business owners that use Wave.
The service originally was extracted from the original monolith, by a team led by a manager no longer at Wave. And I hated that guy. I could not figure out what the code was trying to do. There were tests, but the tests were fragile. The app over-utilized middleware. There cryptic commit messages and pull request descriptions. (Personal fave: \m/
Rock on indeed).
I hated the previous lead a lot less when I learned they did the refactor in six weeks under intense deadline pressure and he later suffered a heart attack …
But the issue remained; I couldn’t reliably remove the fences he erected without understanding why he put them up in the first place. Morals of this story 1) write decent commit messages and build reasonable test suites.
Then when I joined Shopify, I kept hearing “Shopify is different from where you used to work (for all values of you
and where you used to work
) and that’s by design.” And that’s fine, but once you asked for the docs on that design, they weren’t super-available. They existed, but it took significant archaeology to find them. I found it easier to rip down some fences and let the cattle out.
The thing these two anecdotes have in common; what could have been done to inform the next person “why the fence is there?” As Raganwald points out, we in the tech industry tend to “go fast and break things.” Okay, fine. How much damage are the cows going to cause when we do that? And are you (or worse, future-you) going to get trampled by the stampede?