YAGNI

by Charles Miller on August 20, 2000

We're doing "Extreme Programming" at work at the moment. It's the most practical software design philosophy I've ever seen.

Two of the core tenants of XP, as far as the practicalities of coding go, are "Code the simplest thing possible" and "You aren't going to need it." The idea is that you look at your requirements, and think of the simplest way to code it. If later, you need to make it more complicated, you'll waste less time refactoring that one bit of code than you would have over-complicating all the other bits that you could have left simple. And you never code anything that isn't in the requirements, just because you think it'll be useful in the next version, because it'll delay your release, and with the way that specifications change during a project, chances are, "You aren't going to need it.".

This has broken me out of my coders block - I got far more done on my webmail diversion this weekend than I have since leaving Perth. It's only up to 1000 lines of code, but by mercilessly stomping on my urge to over-complicate code just for the sheer beauty of it, I'm actually making progress that can be measured, which inspires me to do more.

Previously: YKYBHTLW...

Next: Refactoring...