All insights
EngineeringMaintenance · 4 min read

The compounding cost of YAGNI violations

Every "we might need this someday" feature is a small loan against future maintenance. Across years, the interest is enormous.

You add a config option "in case someone needs it." You add a generic interface "so we can swap it later." You add a flag "to support multi-tenancy when we get there." None of these are needed. All of them are now in the code.

Why it compounds

Each speculative feature has to be maintained as long as the code lives. It has to be tested, documented, considered in every refactor, navigated around by new hires. Most of them are never used. All of them cost.

How to resist

Add the feature when you actually need it. The argument "it’s easier to add it now" is almost always wrong. It’s just easier to think about it now. Adding it later is cheap. Removing it later is expensive.

You aren’t gonna need it. Even if you are, you can add it then.

Have something that should run itself?

Tell us what runs by hand today. We reply within one business day with a first idea.