Sustainable software means that an existing product remains viable in the future such that it makes sense to continuing using, adapting and expanding its capabilities instead of replacing it with another new or existing product. The purpose of focusing on sustainability is to reduce maintenance costs, improve portability and extensibility and otherwise enable future users and developers to keep the product viable for development and use.
A successful scientific software product typically has a life span of several decades or more. Focusing on improved sustainability enables the scientific community to maximize the value, longevity and community impact of a product. As scientific software ecosystems become more inter-connected, improved sustainability becomes even more impactful.
One way to characterize the computational and data sciences communities is through their institutions. Three distinct categories of institutions that develop, use and support scientific software are corporations, research labs and universities. Each category tends to have a distinct business model and set of priorities. However, the broad scientific software ecosystem is inter-dependent and complementary, where products from one category are widely used in others. Even more interaction is possible if the scientific software community can come to understand commonalities and differences.