foundation

YAGNI

Avoid building speculative flexibility before requirements, usage, or measured pain justify the cost.

YAGNI (You Aren't Gonna Need It) blocks speculative features, abstraction layers, and configuration for futures that may never arrive. Build for today's user stories and measured pain; add extension when a second concrete use case appears.

Pairs with iterative delivery: the cost of unused generality is ongoing cognitive load and bug surface.

On interviews: describe a feature you would cut from an MVP and the trigger that would resurrect it.

Common pitfalls: "just in case" plugin systems, unused strategy interfaces, and multi-tenant hooks for a single-tenant product.

The trade-off is rework risk when requirements pivot versus carrying dead code for years.

Checklist:

  • Ship the smallest working slice.
  • Document triggers for deferred scope.
  • Delete unused abstraction paths.