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.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.