I was talking to a few engineers yesterday about implementation details for a project we're working on at Etsy. At some point, we found ourselves disagreeing over one specific implementation versus another.
But someday we might want things to be this way, someone said, so we should future-proof things now.
Now, I've used this exact argument several times in my career, both as a designer and a manager. I'll be thinking about the road ahead while trying to solve a problem we have right now. The issue is that, most of the time, the future I'm working with is entirely hypothetical. And by "future-proofing" my feature I'm making decisions and compromises based entirely on my own assumptions. And when the roadmap changes (as it nearly always does), the product I designed will be left feeling half-finished or not as well-considered, simply because I optimized for later instead of optimizing for right now.
Could you imagine if city planners stopped installing stoplights because, in the future, surely we'll all have self-driving cars that won't care about such visual signals?
Now, to be fair, there are definitely times to optimize for the future. Are you breaking up a feature into smaller releases, but have the entire release schedule all mapped out? In that case, certainly optimize for the entire feature and keep your eye on the goal.
But try as hard as you can to avoid designing solutions and making arguments for a hypothetical future. Design for today.