![]() |
Sponsored Link •
|
Summary
YAGNI stands for "You aren't going to need it", and is a fundamental anti-principle of the Agile software development philosophy. However designs which plan for change are not YAGNI's.
Advertisement
|
Avoiding YAGNI's is excellent advice. A YAGNI (You Aren't Going to Need it) is superfluous functionality. This principle goes hand in hand with the KISS principle (Keep It Simple Stupid). However there is another fundamental fact about writing software: almost all code will change (sorry, no clever mnemonic for that one).
With experience as a programmer it eventually becomes painfully clear that change is a a fundamental fact of code, despite our best efforts at resisting it (at least my best efforts). Almost all code gets refactored at one point or another whether you like it or not. This is in of itself a good reason to avoid YAGNI's: your code may change before you need it! Change in code is inevitable because client's needs change, software requirements change, platforms change, languages change, libraries change and of course programmers themselves change!
Some people seem to mistake designs which factor in the possibility of change as being a YAGNI, when in fact it is an anti-YAGNI. In other words, plan for change, because you are going to need it.
Have an opinion? Readers have already posted 29 comments about this weblog entry. Why not add yours?
If you'd like to be notified whenever Christopher Diggins adds a new entry to his weblog, subscribe to his RSS feed.
![]() | Christopher Diggins is a software developer and freelance writer. Christopher loves programming, but is eternally frustrated by the shortcomings of modern programming languages. As would any reasonable person in his shoes, he decided to quit his day job to write his own ( www.heron-language.com ). Christopher is the co-author of the C++ Cookbook from O'Reilly. Christopher can be reached through his home page at www.cdiggins.com. |
Sponsored Links
|