Do not build capability until it is actually required; speculative generality is usually waste.
Jeffries's formulation from extreme programming. The argument is that speculative generality costs maintenance immediately and pays off rarely, since the anticipated requirement usually arrives in a different shape.
In practice
- A team builds a plugin architecture for the three integrations it expects, and the two that arrive need a different shape entirely.
- A charity's new database carries fields for six programmes it might one day run, and staff spend two years tabbing past them.