Friday, March 09, 2007

who is the 'you' in 'yagni'

A term I sometimes hear used is YAGNI, its one of those ones thats very popular: short, punchy, seemingly profound. It stands for 'You Ain't Gonna Need It', and is often used by developers to avoid or challenge additions to a piece of code, but who is the 'You' in this statement? Is it the developer, the customer or the support staff?

I'd rather ask 'When are they going to need it', the answer might be never, or it might be 'at the end of month when the peak load is on the system', or 'after go live when someone tries to hack into the web site' So the 'they' are the customers, both those who use a system and those who maintain it. For me YAGNI simplifies things a little too much.

2 Comments:

David said...

I see it as a way to deal with overdesign and it has nothing to do with functionality. Avoid adding complexity to the design until you need it, as the requirements for the complexity when you need it may very well be different from what it is now. It's a slogan that helps us (developers) avoiding premature design decisions which, I see as conceptually similar to avoiding premature performance optimization.

The "you" is yourself (the developer). You shouldn't apply it on other people and absolutely not on the customer, IMHO.

5:02 PM  
Jason Yip said...

The "You" in YAGNI always referred to a developer who is adding code to prepare for a feature that the customer hasn't requested, on the presumption that the customer will.

12:44 AM  

Post a Comment

<< Home