Enzo's Clause

Green Coding/ Green Software/ Resource Efficient Programming

This is a green coding clause that obligates companies to develop software (or have it developed) in an energy-efficient and sustainable manner. 

Jurisdiction: Germany
Updated:

What this clause does

Encourages parties to IT and software development contracts to take positive action to reduce the carbon footprint of software development, especially custom software, and software use. 

Clauses

1. [The Developer Team/ The Developer] is responsible for applying green coding standards in the development of the software and reducing the carbon footprint of the developed software. 

2. [The Developer Team/ The Developer] commits itself and all subcontractors it uses to implement the following green coding standards:

2.1 Integration of an automatic [partial] shutdown of the software when not in use or change to a load-saving mode and sensible bundling of automatically executed actions;

2.2 Development of an optimal and intuitive UI/ UX design for a speedy, resource-saving usability of the software;

2.3 Development of software while taking into account energy efficiency aspects, e.g. by avoiding redundancies, optimizing database queries or improving memory usage;

2.4 Use of resource-efficient algorithms, file formats and libraries that minimize the use of system resources such as CPU, RAM and network bandwidth;

2.5 Performing automated testing and version control and using agile software development to minimize code waste and avoid errors that could result in energy-intensive debugging;

2.6 Use of applications that optimize the developed software by removing unused code (‘dead code’) (‘tree shaking engines’), especially when using open source software;

2.7 [Conducting regular internal team meetings and create a data room accessible to all members of the development team with all developed software in order to recycle code created by other team members if needed and make lessons learned available to the entire team;]

2.8 Ensuring maintainability and reusability of software through meaningful commenting of code, preparation of documentation, and systematic storage of created files; and

2.9 Designing systems in accordance with their expected workload, as well as using modular solutions and the possibility of precise workload control, e.g., through cloud computing.

3. The Contractor commits to ensure optimal maintainability and reusability of the software, taking into account the agreement on intellectual property rights to the developed software, and shall allow the client to update and modify the developed software after the end of support, including by third parties.

4. The Contractor commits, over a period of [number of years] years after provision of the software, as soon as critical security vulnerabilities of the software become publicly known, to remedy them without delay and thus to ensure that the software can also be used in the long term without risks to IT security. The Parties shall provide for appropriate remuneration of the Contractor for this in the contract. 

5. [The Contractor commits, prior to delivery of the software or an update, to test the hardware load caused by the software product in idle mode and in the context of a standard usage scenario by installing it on a reference system in accordance with the specifications set out in Annex A and Annex B of the Blue Angel award criteria for resource- and energy-efficient software products (DE-UZ 215) to test the hardware load caused by the software product and to keep it as low as possible, to report on its green coding activities and the concrete improvements achieved as a result, and to provide information to the customer upon request.]

How are you using our clauses?

We'd like to hear how you've implemented our clauses in your organisation.

Is this page useful?