YAGNI Football Analogy
There’s been some scuttlebutt recently on the extreme programming mailing list about the value of YAGNI — You Aren’t Going to Need It. Apparently, some people have been interpreting it as “Don’t think about the future.” It’s supposed to be “Don’t build things today that you don’t need today.”
If you know that someday, down the road, you may have to support multiple platforms, It’s entirely reasonable to choose OpenGL over Direct3D — OpenGL will run on Windows, Macs, and X platforms, where Direct3D will only run on Windows.
Contrariwise, if you’re only releasing on Windows this version, there’s no reason to build that classic hierarchy of GenericWindowInterface—->MSWindowsInterface today. You Aren’t Going to Need it. When we do a Mac build, then we’ll add that.
Anyway, here’s my replacement analogy for YAGNI: We only need ten yards. (For those not familiar with American football, the team gets four chances to move the ball ten yards. When you have moved the ball ten yards, this process resets, and you get another four chances to move the ball ten yards. Eventually, you’ll make it over the goal line and score points, but that’s later; This play is to get ten yards. A yard is just slightly shorter than a meter.)
So when someone says, “We need to add extensibility hooks here in case we want to offer plugins later,” you can reply, “We only need ten yards.”
May 7th, 2008 at 9:06 am
You are write, I agree with your definition of YAGNI
June 16th, 2009 at 3:50 am
Hello. I think the article is really interesting. I am even interested in reading more. How soon will you update your blog?
June 16th, 2009 at 11:19 pm
I expect that I’ll be able to begin regular updates again soon.
March 11th, 2010 at 12:48 pm
Yeah. And with two week iterations — you only need 10 days. Or, you only got 10 days.
March 12th, 2010 at 12:03 am
Heh; Andrew, you’re the first non-spam post I’ve gotten in six months.