You Aren't Gonna Need It (YAGNI) Principle
<mark style="color:green;">"Always implement things when you actually need them, never when you just foresee that you might need them."</mark>
This principle is about avoiding over-engineering and focusing strictly on the present requirements. By adding unnecessary features or over-engineering solutions, we incur additional complexity, which slow down development, increase the likelihood of bugs, and make the codebase harder to maintain.
\
Key Benefits of YAGNI
- Reduced waste: By only implementing what's necessary, you avoid wasting time and effort on unnecessary code.
- Simplified codebase: YAGNI promotes a lean and simple codebase, making it easier to maintain and update.
- Faster development: A laser focus on immediate needs as not bogged down by potential "what ifs".
When to Avoid YAGNI
Like any principle, YAGNI shouldn't be rigidly applied in every situation.
- Well-Known Requirements: If you know with high certainty a feature is coming soon, building some basic support upfront might be wise.
- Performance-Critical Areas: Sometimes, a less-than-optimal but more general solution is necessary initially to ensure performance targets are met.\
References
\