← Back to context

Comment by funcDropShadow

3 years ago

> I’m not disagreeing with the premise of the fence, just pointing out that at times, even doing all of the due diligence to understand the fence isn’t enough to remove it.

I don't understand this. Implementing billing from scratch and running it in parallel to the old code is a form of doing due diligence. I.e. it is an application of Chesterton's fence. It might be an expensive application but it is one.

To me, this anecdote shows the value of documenting the why of software. I've read some time ago, to add code to systems such that, it is simple to remove it again. This discussion deepened that insight for me. This is preparing for Chesterton's fence.

> it is an application of Chesterton's fence

That's why I closed with:

> 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.

In other words, it's still learning from the cautionary tale of the fence, but the end result isn't a classic removal or non-removal of the fence itself. And it's not as if the idea has hard and fast rules :)

I agree regarding the value of documentation. None of us involved in the project were at the company when the code was written, and so we were left with a dangerous task.