in reply to Well, maybe you ARE gonna need it?
I see YAGNI as a sort of defense against creeping featurism, where programmers add all sorts of bells, whistles, and symphony orchestras because they're almost "free". Just a few more lines of code, and you can have it sing "Yankee Doodle" in Urdu. Or whatever. The temptation is to make it just a little better, just one more little drinky-winky, until the whole thing gets to be so encrusted with features it collapses under its own weight.
What you're doing, though, seems more like defensive programming, taking into account your previous experience. For some things, chances are you *ARE* gonna need it, and so you might as well put it in where it takes the least amount of reworking.
I think a lesson here is that rules have their uses, but blindly following them may not be a good idea. I think it would be a good idea to follow YAGNI in the sense that you try not to make the program do absolutely everything; but you also include a few items that are likely to become needed in the future. It's a matter of experience and personal taste, I'd guess, but it seems to work for you.
|
|---|