In her great book Designing for the Digital Age, Kim Goodwin said beautifully on designing for the long term, and downplaying the constraint in early design stage. “Good designer constantly push at the constraints but don’t bulldoze over them; think a little bit ahead of your timeline is tight, but look several years ahead of you have room to do so.”
Kim suggests designing for the entire system that will eventually be built — have a big picture in mind when design. For example, if there’s going to be adding a task list next year, create a structure that will make it easy to add it in without reworking the navigation.
This is also true for hardware design, for example, leave room for upcoming component, which is in vision but not going to be added any time soon. “A design that anticipates likely change so it doesn’t have to be completely revamped every year or two also saves months of work and sometimes millions of dollars later on.”
Also, it’s very important to work closely with people who can enable desirable solutions.