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.