You Ain’t (Aren’t) Gonna Need It
A term coming from Extreme Programming’s (XP) Simple Design: Only the things that are needed at the moment are built.
- More robust solution built now for the future benefits increases the cost of building as the plans can be changed and today’s solution can be unusable in the future.
- The cost of delay appears as the result of building something we do not need now instead of something which can generate revenue earlier.
- More robust solution also introduces more complexity and the cost of carry as a further modification which can be harder.
- As everything evolves, past, not used, solutions most probably accumulated a technical debt and the cost of repairs connected to that.
Consider Yagni on both project level decisions and also smaller ones during development itself. It does not apply to effort to make the software easier to modify.