You aren't gonna need it

YAGNI is an acronym for " You Is not Gonna Need It ", in German: "You will not need it ." It refers to a principle of extreme programming, which states that in a program only functionality should be implemented, if it is clear that this functionality is actually needed.

Contrary to this approach is often attempted in practice, prepare programs through additional or more general ( generic ) code to possible future change requests. The idea behind it is that changes are later complicated to implement than they already anticipate now.

Often it turns out later that this additional effort was in vain, because the originally expected requirement has actually never arise in the imaginary form. Instead, there are often requirements that were not anticipated during the original development and implementation of the code that should facilitate changes actually, is not supported and often hindered.

So YAGNI leads primarily to a slimmer, easier code and thus allows to implement later future requirements cost-effectively. Other considerations behind YAGNI are:

  • Targeted use of working time for the implementation of the currently required functionality means that this will ensure a more rapid and often better. This increases the satisfaction of the requester more than implementing not yet required functionality.
  • The implementation is not required functionality can cause further unsolicited functionalities appear the converters as useful and will also be implemented. This usually leads to unwanted or incorrect functionality to be implemented.
  • The implementation is not required functionality favors the anti-pattern feature creep and bloatware.
  • Not yet required functionalities are implemented based on non- or less well analyzed requirements. The implementation of these functions is thus not, or at least less well testable, therefore, contains more errors and less corresponds to the actual requirements as the implementation currently desired functionalities.
  • Not yet required functionalities need to be debugged, documented and supported. This in turn binds resources for the development of the required functionalities are missing.

YAGNI is one of the principles behind the XP technique of " Implement the simplest possible solution that works " ( "do the Simplest Thing That Could Possibly Work" ( DTSTTCPW ) ). Using the YAGNI principle is intended in combination with other XP principles such as running refactoring, automated unit testing and continuous integration.

831628
de