Comment by moring
3 years ago
The criteria for removal are clear on paper, but impossible to meet, so the effect is the same.
It is impossible to meet because the reason why the proverbial fence was put up is, more often than not, a mixture of misunderstandings, logical fallacies and political motives from both the one who put it up, as well as other stakeholders involved, and most importantly, none of those aspects are documented and none of the people are around anymore. You'd need nothing less than a time machine to understand why the fence was put up.
As with all things in life, it's a matter of accumulating evidence up to an acceptance criterion. That criterion can never be 100% certainty, because nothing can be 100% certain.
The difficulty lies in agreeing on what that point should be, and on the magnitude of any particular piece of information as evidence for or against any particular hypothesis.
"The fence was a mistake" is a completely legitimate conclusion here. The principle exists to prevent us from jumping immediately to that conclusion out of convenience, arrogance, or ignorance. It should not be interpreted as preventing us from ever reaching that conclusion after some careful consideration.
"impossible to meet", "more often than not", "none of those aspects are documented": These are huge generalizations, and I very much doubt that they are generally true, or that anyone--including you--has done any kind of investigation into how general these conditions are.
You are the one adding the criteria that you need to know EXACTLY and fully why the fence was built. There is obviously a spot between “I have no idea what the fence was built” and “I know the exact intricate workings of all the minds that were involved in the decision to put up the fence”
> The criteria for removal are clear on paper, but impossible to meet, so the effect is the same.
These arguments are exhausting, especially when we are talking about political issues.
Do you really believe that it is literally impossible to figure out that some legislative "fence" is really a moat protecting entrenched interests of the lobbyists who helped write the legislation?
Fascinating, can you give a couple examples of pre-existing rationale that make it impossible to replace an unneeded fence?
Not OP, but I’ve encountered this in situations where legacy code involved in mission critical business functionality was nearly impossible to remove due to the potential risk of unforeseen impact.
In other words, if the potential impact of an unforeseen breakage is high enough (costs us or the customer $$$), it’s not worth risking the change even if we can find absolutely no good reason for the current behavior to exist.
Example: complex spaghetti that touches billing calculations. These things are better addressed by a full rewrite/redesign followed by a long period of running both things in parallel until we’re confident that we didn’t miss anything. Maybe this is just a more complex way of removing the fence, but I think it’s more like moving away from the ground the fence is built on.
Sounds like you did the right thing by not changing the code! The rule worked
What would have been the advantage, in this situation, to ignoring the rule? What problem here is the Chestertons Fence rule causing?
EDIT: (responding to below, your issue has nothing whatsoever to do with Chestertons Fence. Making careful code changes to test then effect of removal is a great way to apply the rule. Building a separate system and testing in parallel would be an even cooler way to apply the rule)
4 replies →