Abstract: Product life ends when a product cannot adapt itself to new requirements, such as advances of technology, changes in customers’ preferences, etc. Product upgrade is an effective means to extend the product life, especially for high-investment, low-volume, and long-lifetime products; however, upgrade planning is complex both for product developers and product users. A product upgrade problem can be modeled as a series of decisions over time, and involve trade-offs between product performance and operation costs. These upgrade decisions might also be influenced by future technology changes. This paper proposes a quantitative method based on dynamic programming to help upgrade planners and product users to find an optimal upgrade plan incorporating the forecasts for technology development and end-of-life decisions. Through this method, total useful life cost can be minimized and sustainability can be also improved by upgrading appropriate modules at the right time with minimal impact on the system performance.