Beware of Future Creep
37signals.com
37signals.com
Actually, at best, your time was not wasted, your advanced-planning allowed you to be more agile down the road, and you saved the day. Don't be fooled into thinking that Jamis' 'best case' is everyone's best case. It's certainly not mine.
It's true that some people go overboard when it comes to thinking about future features they might need (guilty as charged...when I was younger). But, like anything and everything else, it's a skill. You do it, you make mistakes, you learn from mistakes.
What have I learned? Mostly I've learned how and where to focus my time thinking about future features -- determining which features are wheel-spinning features and which are likely to come to fruition. That skill comes with experience.
At a practical level, I've learned to carefully plan-out the hooks I'll need to implement likely future features. I don't implement the features, but I make sure I've thought through the API to get me there even if there's nothing behind it yet. Even that takes time, of course, but if properly focused, that time is time well spent. In many cases, it's well spent simply because it helps me to get back to the job at hand. :-)