Archive for October 29th, 2015

October 29, 2015

You Ain’t Gonna Need It

Wenger 16999

You ain’t gonna need it (YAGNI) is a principle of extreme programming (XP) that states a programmer should not add functionality until deemed necessary. XP co-founder Ron Jeffries said: ‘Always implement things when you actually need them, never when you just foresee that you need them.’ Jeffries argues that prematurely adding features leads to software bloat, feature creep, and takes time away from core functionality improvement.

YAGNI is a principle behind the XP practice of ‘do the simplest thing that could possibly work’ (DTSTTCPW). It is meant to be used in combination with several other practices, such as continuous refactoring (code reorganization), continuous automated unit testing, and continuous integration (conforming code segments work within the larger codebase). However, the efficacy of YAGNI, even when considered in combination with safeguards, is controversial.