Designing for now, the future or both?

One of the things I’ve noticed a lot from my past experiences was when it comes to designing for a product, you go through many iterations and versions of it. The question that comes up is…

How far in the future should you be designing?

I always found it challenging in regards of how far in the future I should design a product, especially in agile software development. It always seemed to result in making tough decisions and trade offs. I came to this realization on this while I was working on a product at my internship at VMware.

I would meet with the product and engineering team multiple times a week to present designs for the first release and discuss them. Although there was a lot of effort going into the first release, I noticed that there wasn’t much thought going around about designing ahead for the future of the product.

I came to realization of how important it was for me to not only meet the criteria for the first release but also to think and design ahead for future versions. I started to think more about how the current design would support future iterations and adapted my designs to match that. I brought up this topic of discussion to the team and showed them my new designs that reflected my thoughts. I was very happy that these ideas were well received, not just about the current design but also about expanding for future iterations.

By the time I finished my internship, I left behind a lot of notes, sketches, and designs for future releases which encompassed a part of my vision for this product.

I’m curious as to how different companies handle current versions vs future versions of a product line. How much thought is put into the future of the product? Do products teams focus on the current release before thinking about the next or future releases?

Should we design for now, the future or both?