There's a tendency towards "overflexibilification" in code - adding extra options "just in case."

The argument against is called "YAGNI" - You Ain't Gonna Need It.

I think it needs some clarification.

Not needing fancy options is not an excuse for sloppy first-draft code.

The most flexible code for accommodating future needs is the smallest, simplest code. (Or perhaps the simplest, smallest.)

Chances are you won't anticipate the future need. (Though when you do, it gives you five minutes of feeling smug, but then it's on to doing real work.)

So don't let your present self get in the way of your future self (who knows more than you about requirements, and hopefully programming.)

changed June 13, 2013