> Would anything of value be lost if this or that chunk of it was removed?
In early stage projects I’ve seen this mentality backfire occasionally because it’s tough to estimate future value, especially for code and data.
For example, one time in a greenfield project I created the initial SQL schema which had some extra metadata columns, essentially storing tags for posts. The next week, a more senior engineer removed all those columns and associated code, citing the YAGNI principle (“you aren’t gonna need it”). He was technically correct, there was no requirement for it on our roadmap yet.
But the original work had taken me maybe an hour. And the cost of keeping the data around was approximately zero. It seemed he didn’t consider that.
Guess who needed the columns to build a feature a year later? Yeah me, so I found myself repeating the work, with the additional overhead of prod DB migrations etc now that the product had users.
I guess my point is, sometimes it’s also wise to consider the opposite:
Would anything of value be gained if this or that chunk of it was removed?
In this article the evidence is clearly affirmative, but in my case, well it wasn’t so clear cut.