To follow the metaphor, maybe the reason the fence is there is because the county water supply is behind the fence and they put it there to stop cows and livestock from fouling the water.
To follow the metaphor, maybe the reason the fence is there is because the county water supply is behind the fence and they put it there to stop cows and livestock from fouling the water.
A lot of engineers would write something like "this fence is made of silver oak planks cut to a length of 3 feet and fastened together aluminum wire" and while that may be useful if you have to fix the fence, for the people in the allegory it would be much more helpful to have a sign that says "this fence is here to keep cows from fouling the water in the lake behind it because 5 houses nearby use it for drinking water". If either the 5 houses or the cows are no longer there, it makes the whole system much less resistant to change.
That's why every time somebody argues against it. It's because at some point you have to abandon that rule, and all the interesting discussion is about when to abandon it, not on how to follow it.
This is another thing the Fence metaphor helps us understand when we think about it a little bit more.
Related to Chesterton's fence is Levi's Onion:
https://www.joeydevilla.com/2001/12/03/4419/
Which is sort of a Chesterton's fence situation where someone took those required steps.
Being aware of this, it is easy to assume that, no matter how many reasons you can think of as to why something was done, there might very well be other reasons you don't know, at that point, it seems to me, the options are either accepting the risk or never changing anything.
The article makes the point that people do not build fences for no reason. It costs time, effort and resources, not to mention it's a lot of work and people are lazy. There's always a reason for the fence.
>or the reason is completely lost.
This may be true. A fence in the middle of a wood may have been put there 90 years ago because of old property demarcations, or an effort to keep the dread bearded grindlesnatch from attacking the village. The property is now owned by one person, and climate change killed the bearded grindlesnatch, so the fence isn't needed anymore. But the point is to find out why it was there before you tear it down, and if you can't find the reason, you should be extra careful about yanking it down. Perhaps now the fence harbors a mini ecosystem of berry bushes that has increased the potential environment for wild game.
Progressives tend to be very dismissive of the Chesterton's Fence analogy, because they think change is an unalloyed good. There are a lot of social mores or codes that seem unnecessary, outdated or even bad, but they don't want to look at the reasoning behind them. Second order effects are easy to dismiss as speculation, so they usually are dismissed; but any change, radical or otherwise, will have second order effects, so careful thought must go into them.
A fine example of how the warning of Chesterton's Fence is ignored by inferring the worst possible motive without evidence or reason, and using that unsupported aspersion as a reason to rip something up.
> "The whole modern world has divided itself into Conservatives and Progressives. The business of Progressives is to go on making mistakes. The business of the Conservatives is to prevent the mistakes from being corrected."
Having read some of his Christian apologetic essays, I suspected the fence argument was fundamentally motivated by religion, and again from the wiki page, it originated in from his book "The Thing: Why I Am a Catholic".
EDIT: GP said "Progressives tend to be very dismissive of the Chesterton's Fence analogy, because they think change is an unalloyed good." to which parent complained "Why did you need to make this political?". I found Chesterton's own words both relevant and sufficient warrant to broaden the discussion along the lines of the GP.
Chesterton's fence is a rational argument in favor of being conservative.
A "conservative" from Chesterton's time doesn't necessarily map cleanly onto the modern notion of the same name... Supposing the allegorical "fence" to be something like clean air or water regulation, one could argue that it's modern "conservatives" more often than not arguing to disturb things without considering second-order effects.
I really don't like referring to Republican's as conservative or Democrats as liberal precisely because neither party really sticks to those concepts. "Conservatives" as a political unit are not conservative and "Liberals" aren't liberal.
The world is a dumb place.
And I always felt Chesterton's fence to be advice to be deliberate in your actions. Spending the time and effort to find out why the fence exists, doesn't mean it won't get torn down. It just means that we won't be taking it down spontaneously.
Since this is HN, I think a lot of us have experience with software. If you do, then I find it incredible that you have never discovered some complicated code that serves no real purpose, or at least no good one, and was presumably written to amuse the author more than anything else.
Hell, I've written some of that. Very complicated, usually awful code, but it did at one point have a purpose.
If somebody wrote something complicated, just for amusement, then that is its purpose. That's a fence that can be rebuilt or thrown away, but you'd better be sure that nothing else references it or otherwise depends on it doing its quirky baroque thing.
Edit to add: thinking about it, I don't think I've ever found code in a legacy codebase that had literally no purpose. The closest might be code that was once used but now isn't referenced anywhere.
Understanding whether the purpose was good implies understanding the purpose. Even with very bad code you can at least see what the author was going for. Most code I've seen and felt was bad could be described as "Author needed to do X but wasn't aware of Y." I can't remember a time where I had to deal with code where I couldn't figure out what X was.
What I’ll say to you now is that if you are actually looking for the reasons, and all you can find are people making your life hard for the glorification of their ego, you have a much bigger problem than whether it’s worth presuming that there is no reason for code you want to remove:
You are located in a local pessimum. Consider working on a different code base. Ask yourself what is going on that you keep running into all this code written by people you disrespect so much.
Back to that two page function. Yes, I know, it’s just a simple function to display a window, but it has grown little hairs and stuff on it and nobody knows why. Well, I’ll tell you why: those are bug fixes. One of them fixes that bug that Nancy had when she tried to install the thing on a computer that didn’t have Internet Explorer. Another one fixes that bug that occurs in low memory conditions. Another one fixes that bug that occurred when the file is on a floppy disk and the user yanks out the disk in the middle. That LoadLibrary call is ugly but it makes the code work on old versions of Windows 95.
Each of these bugs took weeks of real-world usage before they were found. The programmer might have spent a couple of days reproducing the bug in the lab and fixing it. If it’s like a lot of bugs, the fix might be one line of code, or it might even be a couple of characters, but a lot of work and time went into those two characters.
When you throw away code and start from scratch, you are throwing away all that knowledge. All those collected bug fixes. Years of programming work.
https://www.joelonsoftware.com/2000/04/06/things-you-should-...
Yes, it may be the case that we no longer support Internet Explorer, and none of our customers even know that Windows 95 ever existed, much less run it. And our users look at a floopy disk and exclaim "Cool, a 3D-printed save icon!"
So yes, lots of code serves "no good purpose" today, even if it was a good purpose when it was written. HARD AGREE.
Presumably written to amuse the author? Hard disagree from my n=1 experience, even if that experience with commercial software development dates back to the early 1980s. I think those cases are outliers that exist, but shouldn't drive our decision-making. The key word is "presumably." Presuming that code we find doesn't seem to serve a purpose was written for the self-gratification of the author is, in my experience, a very bad way to manage risk.
I'm prepared to assume that code which doesn't seem to serve a purpose may no longer serve a purpose, but while it may never have served a purpose, I'll try my best to find out what that purpose was before throwing it away.
Going back to the metaphor, if the fence you want to pull down is only a couple of months old, the knowledge of why it was put up in the first place is readily available. Just ask around.
https://www.joelonsoftware.com/2000/04/06/things-you-should-...
I think it’s more than sometimes reasons go away and sometimes people do unreasonable things. I don’t think anyone thinks that people literally build fences completely randomly.
> The article makes the point that people do not build fences for no reason
Sure. That doesn’t mean that the reasons are good or accessible to you to make that decision. Now when the reason is obviously apparent and widely known, that’s a totally different thing with the caveat being that conditions change and you may not have realized that in a complex system.
It's a neat analogy but it has limited utility as a general rule for either side.
Yes: To get the rocks out of the dirt so we can farm there.
https://www.loe.org/shows/segments.html?programID=18-P13-000...
https://www.atlasobscura.com/articles/new-england-stone-wall...
Now, of course, New England with its rocky soil is no longer an agricultural powerhouse, so maintaining a stone wall in the middle of re-forested land is rather pointless from the perspective of anything other than an antiquarian interest. The whole world has changed and the walls weren't primarily intended as boundaries anyway.
Naturally everything that ends up happening has a cause and happens for _some_ reason; that's nearly a tautology. But I think the is that there are many things that don't happen for any _good_ reason, many often for bad reasons. And it's also common to find that the reasons for these things aren't discernible. Someone made a mistake decades ago, and now no one wants to correct it because there must have been a reason for it, but we can't figure out what it was.
Years ago I was the member of a local governing board, and there were many people there who thought that because we were part of a bureaucracy, we should act more bureaucratic. The more work we did, the more we required of other people, the longer the meetings, the more trainings for systems we'd never use, the better.
I remember one particular situation where another agency was asking our input about an application in our jurisdiction, and the chair told me to tell the applicant about all the extra paperwork they would need to file with our board. I contacted the agency the application was actually filed with, and they told me they already handled that, and they were only notifying us in the off-chance there were any special considerations in our district the agency needed to be notified of. As far as I could tell, the dozens of boards who oversaw other jurisdictions didn't have our additional requirement either. When I told our chair that the agency wasn't asking us for the additional paperwork, he replied "but that's how we've always handled this." At some point years before somebody on the board wanted to add additional paperwork (and it's questionable whether they actually had the authority to do this), and the rest of the board just mindlessly followed along for years.
That's a bit of a strawman. One could just as easily argue that reactionaries in the USA don't want to admit why many fences were built.
Is this true? Who is leading the charge to distrust longstanding institutions such as universities… or the CDC? Who is trying to hold nature in balance? Even the right to terminate a pregnancy can be seen as a Chesterson’s fence that is looking to be torn down.
The former leader of the “conservative” party was infamous for steamrolling norms.
I’m not a progressive personally, but I think this is an unfair description of them. Too broad a brush.
The condition is to make an effort, not to necessarily succeed. If you try and can't make sense of it, you have the green light to proceed with caution.
Then we would still notice the difference between two kinds of reformer: those who don't know (and don't care) why an institution is the way it is and those who are reasonably curious about what the institution was for, how it worked, and so on, even as they recognize a need for reform.
Japanese seaside communities frequently have markers showing the height or inland range of previous tsunamis. Proscriptions against specific materials, sites, foods, or practices may be based on previous lessons for which available archival mechanisms were insufficient to detail though lore and monuments might serve as warning.
Jared Diamond observes that in New Guinea, natives refuse to sleep beneath certain types of tree, despite what seems a small risk of limb-fall. The occasional recreational camper might get away with spending a few nights out of a lifetime under such a tree or camping on low ground. Small risks repeated sufficiently many times become large, and those living such a lifestyle take precautions.
Similarly: many safety regulations, standards, and precautions are written in blood. Oderised gas is the scented memorial to the 300 souls of the New London School.
Long-term, latent, non-manifest risks are a chief form of technical debt.