====== You Ain't Gonna Need It (YAGNI) ====== ===== Variants and Alternative Names ===== ===== Context ===== * [[contexts:Architecture]] ===== Principle Statement ===== Don't implement a feature until there is need for it. ===== Description ===== When faced with a decision what to implement, implement only the features that are necessary at the moment. Features which are regarded as useful but don't seem necessary at the moment are better left for the time when they are deemed necessary. That way the necessary features will be developed faster. In addition no time will be wasted for features that never become necessary. ===== Rationale ===== ===== Strategies ===== /*How to make a design more compliant to this principle*/ ===== Caveats ===== See section [[#contrary principles]]. ===== Origin ===== ===== Evidence ===== /* Comment out what is not applicable and explain the rest: */ /* * [[wiki:Proposed]]*/ /* * [[wiki:Examined]]*/ /* * [[wiki:Accepted]]*/ /* * [[wiki:Questioned]]*/ ===== Relations to Other Principles ===== ==== Generalizations ==== ==== Specializations ==== ==== Contrary Principles ==== ==== Complementary Principles ==== [[principles:keep_it_simple_stupid | KISS]] ==== Principle Collections ==== ===== Examples ===== ==== Example1: ==== ===== Description Status ===== /* Choose one of the following and comment out the rest: */ [[wiki:Stub]] /*[[wiki:Incomplete]]*/ /*[[wiki:Complete]]*/ ===== Further Reading ===== ===== Discussion ===== Discuss this wiki article and the principle on the corresponding [[talk:principles:You Ain T Gonna Need It|talk page]].