Sustainable Software

This is a working definition; contribute if you feel like it - thanks!

Various concepts are competing for the "Sustainable Software" name.

One is about how well a piece of software will be able to cope with changes. In other words, the goal is to build "long lasting" software. This in turn relates to qualities such as reliability, (self-)adaptability, maintainability or context-awareness of software, as well as to development paradigms such as Agile (see this book, for example).

A second one is about direct environmental impacts of software, such as energy consumption and e-waste from computers made obsolete due to software upgrades (see custom software development services). In this sense a sustainable software is one that requires few hardware capacity and reduces its own power consumption. We could call it "lean" software.

A third one is about indirect effects of software on the environment. In this sense a sustainable software is one that induces sustainable human behaviours. There are an infinity of examples, as software has invaded all our activities, in daily life or business, and most have an impact on the way we behave. Consequently, any piece of software should be designed in the awareness of its impacts on human sustainability. We may cite e-bay, which fosters reuse of physical goods, or paper virtualization platforms, which reduce the use of paper in offices, or google maps' ability to show you public transportation routes towards your destination...

Maybe the real sustainable software is one that combines them all... The little drawing below will probably recall you a famous model for sustainability...

Related Work
- Research Project for sustainable software development (german): Green Software Engineering

- Two aspects are considered in TUM's seminar on sustainability: Sustainable Software Development, Sustainable Software Products.
- Portfolio project management software read more here.