2014-04-12

Green Software Development Model

Shenoy and Eeratta present in their paper “Green Software Development Model. An Approach towards Sustainable Software” (2011) a set of suggestions that should be considered in software development life cycle processes to take environmentally sound decisions for the software product itself but also for the applied software development process.

The suggestions are classified into the general phases of traditional software development life cycles: Requirements, Design, Implementation, Testing, Deployment, Maintenance, and Retirement. Additionally, some suggestions are classified into Supporting Processes with the subcategories Quality and Infrastructure.

The suggestions have the objective to reduce power consumption, user of paper, emissions from avoidable business trips, or e-waste due to early software induced hardware obsolescence. 

Following, some highlights of the suggestions are given, just to give an impression:
  • Requirements
    • develop software that runs also on legacy hardware to prolong its life time and to avoid disposal and e-waste
    • avoid throw-away prototyping, which causes development efforts and thus energy consumption
  • Design
    • prefer simpler designs over complex ones, because complex designs more likely lead to redesign, higher documentation efforts, and training periods and thus energy consumption
    • reuse code and components to avoid energy intensive reimplementation and code duplication
  • Testing
    • apply performance testing and resource profiling especially to ensure compatibility with minimum hardware requirements to avoid early hardware disposal
  • Maintenance
    • avoid software migration, e.g. by preferring platform independent technologies because it likely leads to legacy hardware and e-waste
  • Supporting Processes (here: Infrastructure)
    • prefer peer-to-peer storage and distributed storage over centralized storage solutions for storing the project artefacts to avoid 24/7 energy consumption of centralized servers
For the future, Shenoy and Eeratta propose to include standardized sustainability factors in quality models for software. As appropriate measures, power consumption, size of code as well as the overall impacts of the software product on the environment and on humans that result from using and developing the product are outlined.

Round Up

Most of the guidelines given in the model by the authors are described on a higher level and do not go into much detail. Furthermore, the guidelines mainly focus on energy consumption or, generally speaking, first-order effects and impacts of software on sustainable development. The higher levels themselves are not addressed (for further information on these levels see post “Effects of Information and Communication Technology on Sustainable Development”).

Nevertheless, the paper provides some valuable starting points for your organization-, project-, and product-specific elaborations and their introduction into daily business.

References

  • Shenoy, S.S., Eeratta, R.: Green software development model. An approach towards sustainable software development. In: Negi, A. (ed.): Annual IEEE India Conference (INDICON), 2011. 16 - 18 Dec. 2011, BITS Pilani, Hyderabad Campus, Hyderabad, India ; proceedings, pp. 1–6. IEEE, Piscataway, NJ (2011). doi:10.1109/INDCON.2011.6139638