Sustainable code development

When we talk about sustainability in the information and communication technology (ICT), we mostly talk about Green IT or Green Computing. That is, as a matter of fact, a discussion about hardware and, in some minor manner, about energy saving features in operating systems. That's where a lot of resources and money can be saved. But is this all?

Sustainability not only respects ecological aspects, but also social ones. One of those projects is the One Laptop per Child (OLPC), that combines a new understanding of hardware and software in a sustainable manner.

But what does Sustainable Software mean? That's a question nobody focused so far and is hard to define. So this here is meant to be a plattform to discuss this topic and to find a common definition of Sustainable Software. At the end, hopefully, we are able to create a Sustainable Software Label (like the Open Source Initiative for example) and maybe a metric for sustainability in software code. It's a work in progress.

Things to consider:

= Elements of Impact =
 * Hardware production and disposal
 * Energy requirements

= Planned Obsolescence =

Code Efficiency

 * Efficient, or low-processor intensity coding. This is definitely something that should be discussed from a standards perspective.
 * Lifespan of hardware compatibility. Software releases which force users to upgrade computers (and discard older models) are inadvertently swelling the e-waste stream.

Application Lifetime

 * Developing software in a way that can be used for long periods of time without becoming out dated.
 * Developing software that can run effectively on dated hardware.

= Hardware Requirements =
 * lowest possible hardware requirements
 * User Interface which draws less power to display. (Do darker interfaces draw less power than lighter ones?)
 * Support processors that have efficient/ smart power saving features such as sleep mode or smart bandwidth detection.

= Open or Free License =
 * information has to be free of copyrights.

= Open Localization =
 * possibility of user defined localization (no need to be a software developer)

= Open Standards =
 * supports open standards

= Open Formats = = Accessibility =
 * supports open formats (reading archived data in the future)
 * Accessible for people with disabilities

= Uniqueness = Just another accounting software isn't sustainable. This absorbs resources that could be used better.

= No Deskilling through Technology =
 * There's a tendency to use the technology towards deskilling of the users. On the other side this increases the control over the processes by the software vendors and the managers. This ain't sustainable in our meaning. On the contrary, software has to support the skills of the user and give him control over the system and the processes.

=Other=
 * Packaging and delivery methods. Software is one of the few products for which it is possible to eliminate the materials and fuel cost of packaging and delivery completely.
 * Software products or services which creates a viable alternative to a secondary material consumption. Shopping without driving to a store, PDF vs. Print.
 * Software Design Patterns which support LCA processes and general feedback about the impact of design choices in CAD and other design tools.

The software serves the people and not vice versa!

=Articles= Software Industry Making Headway on Sustainability