jml's notebook

Cost of cruft

Our main product at work has grown quite a few features over the years, and from time to time we the engineers point to an unmaintained feature and ask, "can we kill it please?"

The answer to the question is almost always equivocal, partly because it's hard for us to quantify or even communicate the cost of maintaining a single feature.

Here, I just want to rattle off a few of the costs in my head:

A lot of these problems can be mitigated by having enough money, and spending that money on awesome platform and internal tools teams.

Most of these costs are small enough at the time of incurring the cost that one can never make a rational argument for deleting the feature, especially because deleting is never free, but always involves planning, comms, public relations, data export, etc.

I think it was Alex Gaynor who first told me that "subscription" is the only valid business model for software, because there's an ongoing cost of keeping it running (Apologies if I'm misrepresenting you, Alex). I kind of wish it were easier to quantify with features. I feel like we're okay at estimating how much effort it will take to build something, but not how much to maintain it. It would be great to have planning conversations like we we could say something like, "it will take five engineers three months to build this, and then another 0.5 FTE for ongoing costs".