Skip to content

Latest commit

 

History

History
26 lines (20 loc) · 1.82 KB

WhatIsSustainability.md

File metadata and controls

26 lines (20 loc) · 1.82 KB

What is Sustainability?

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.

Software products are dynamic, even after they are released. In fact, numerous studies have shown that maintenance (bug fixes, improvements, porting to new platforms and more) consume 70 - 80% of the total project budget. Sustainability is a measure of the cost to maintain and improve a product over its lifetime.

A key factor of proper investment in sustainability is the expected lifespan of a product. If the product is a script, its lifespan may be fairly short, maybe a few years. However, most scientific and engineering software products have lifespans of decades. Given the maintenance cost of software, it is often the case that sustainability improvements--investments that make software more sustainable--are often worth strong consideration.

Of particular importance to scientific and engineering software sustainability is software design and implementation that enable easy enhancement, extension and portability. Also important is automation of common task that assure correct behavior of the software. Working code must be tested and protected from changes in compilers and other dependencies. It must also be protected as changes and additions to the code are submitted.

These activities are essential as we adapt our software informed by new scientific discoveries, better models and requirements to run our software on new and emerging computing platforms.