You aren't gonna need it

"You aren't gonna need it"[1][2] (YAGNI)[3] is a principle which arose from extreme programming (XP) that states a programmer should not add functionality until deemed necessary.[4] Other forms of the phrase include "You aren't going to need it" (YAGTNI) [5][6] and "You ain't gonna need it".[7]

Ron Jeffries, a co-founder of XP, explained the philosophy: "Always implement things when you actually need them, never when you just foresee that you [will] need them."[8] John Carmack wrote "It is hard for less experienced developers to appreciate how rarely architecting for future requirements / applications turns out net-positive."[9]

  1. ^ Cite error: The named reference XPi was invoked but never defined (see the help page).
  2. ^ Cite error: The named reference XPe was invoked but never defined (see the help page).
  3. ^ Cite error: The named reference OOC was invoked but never defined (see the help page).
  4. ^ Cite error: The named reference XPA was invoked but never defined (see the help page).
  5. ^ Cite error: The named reference Ref was invoked but never defined (see the help page).
  6. ^ Cite error: The named reference LSD was invoked but never defined (see the help page).
  7. ^ Cite error: The named reference DPiR was invoked but never defined (see the help page).
  8. ^ Cite error: The named reference RJef was invoked but never defined (see the help page).
  9. ^ Carmack, John [@ID_AA_Carmack] (18 June 2021). "It is hard for less experienced developers to appreciate how rarely architecting for future requirements / applications turns out net-positive. https://t.co/lusGdzkfd3" (Tweet). Archived from the original on 16 August 2022. Retrieved 2 December 2022 – via Twitter.