The blog of Eric Sibly; focusing on mountain biking, .NET development for the Desktop, Smartphone and PocketPC.

Thursday, July 21, 2005

YAGNI, a rule to live by...

The project I am on at the moment has a number of developers working on functionality that has questionable or unknown requirements, and certainly no known end consumer - perceived value only. This then begs the question as to why this would be a priority over other identifiable/tangible requirements?

As software professionals we need to make sure we follow the principles of YAGNI (as per

In software engineering, YAGNI, short for 'You Ain't Gonna Need It', is a reminder for programmers that one should never add functionality until it is necessary. The temptation to write code to that is not necessary at the moment but is perceived to be necessary in the future has some overlooked disadvantages.

  • Delays what the programmer was originally working on.
  • There is a chance that the requirements will change and the functionality either need to be changed or won’t be needed any more. The situation now is that the programmer has now wasted the time to add the functionality and now has to waste additional time to clean it up so that it’s not buggy, matches the API requirement or doesn’t clutter up the code.


Post a Comment

<< Home