"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.
"[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] YAGNI is a principle behind the XP practice of "do the simplest thing that could possibly work" (DTSTTCPW).
Used without continuous refactoring, it could lead to disorganized code and massive rework, known as technical debt.
[citation needed] YAGNI's dependency on supporting practices is part of the original definition of XP.