Steven has posted 36 posts at DZone. View Full User Profile

The YAGNI Argument (You Ain't Gonna Need It)

02.14.2008
| 6270 views |
  • submit to reddit

One of the biggest challenges for any architect to overcome is the YAGNI argument - You Ain't Gonna Need It. YAGNI says: there may be value in having this functionality but the cost of implementing, testing and maintaining it is too high compared to the benefits we'll get out of it. YAGNI is an argument typically launched by team members who think the architect is making things too complicated and costly.

An extreme case of YAGNI would be to claim an architectural design effort by itself may be valuable but too costly compared to the estimated benefits. An architect may have a hard time winning this YAGNI argument because neither party - not the architect nor his antagonists - have hard evidence to prove their case.

The architect says that spending time and money up front is better compared to fixing issues after they are recognized and no longer challenged. The antagonists say the architect has no way of knowing which issues will become important and which won't, hence may spend time on non-issue while ignoring the real risks.

I believe that architects faced with YAGNI arguments have a better chance to come up with a good architecture than those who are not contested. I think the argument made by agile-istas - and lead by Martin Fowler (PDF) - is an important one.

In many cases it's obviously wrong to say no architecture design efforts are required. Yet by defending your stance against your antagonists you get a chance to re-iterate over your ideas and design elements and come up with better solutions. And if you can't find improvement you can at least find improvements in your documentation.

Actually, I believe there is so much value in the YAGNI argument that every company should lock up their architects in a room with the most vigilant agile protagonists they can find. Results will come out of this.

The value of game theory, prediction markets and the market in general is that ideas and products get tested for their real value. Architects in ivory towers are usually not exposed to these kind of tests. Hence, the only way shortcomings in their designs will be exposed is through real failure.

The YAGNI argument is in my opinion a good way to test ideas and designs that are otherwise very hard to test.

Happy architecting!

Published at DZone with permission of its author, Steven Devijver.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)