Sustainable Software Processes, Episode 2: Green Software Engineering with Agile Methods

In our paper “Green Software Engineering with Agile Methods”1, we described the latest revision of our add-on for software process that enables the development of ecologically sound software or seen from a broader perspective sustainable software. The first version of the process has already been published in 20102.

The process add-on was developed as an example software development process for the GREENSOFT Model3. Beyond software development processes, the GREENSOFT Model covers also purchase, maintenance, and administration processes. However, these processes were only outlined and not described in detail.

The software process add-on refers to other parts of the GREENSOFT Model, most prominently the life cycle assessment (abbr. LCA) oriented life cycle of software products (see figure 1), which is a basic reference for impact factors on environmental and social sustainability. It has to be mentioned, that this LCA life cycle is not a model of how software products are developed. It is neither a software life cycle nor a software process model. Its sole purpose is to model emissions, effects, and impacts of manufacturing, distributing, and using a software product. Hence, there is no necessity to differentiate between requirements, design, implementation, testing or whatever traditional software life cycle phases you prefer. These are just subsumed by the manufacturing phase, because the emissions and impacts are exactly the same, e.g.: office work, travel, and data center usage. Some example impacts are given in figure 1.
In case you wonder why impacts from commuting are not mentioned explicitly: this is to comply with carbon footprint standards, e.g. BSI PAS 20504 or ISO/DIS 14067.25.

According to our general understanding what green software is and how it should be produced (see post What is Sustainable Software?), it is necessary to anticipate and to consider current and future impacts on sustainable development that arise from operating and using the software. A tool to get some basic ideas is the life cycle that was briefly explained above.

Figure 1: LCA life cycle of software products (own drawing)1:79

Our proposed software process provides several add-ons that can be integrated in any software development process (see figure 2). Hence, it is not a complete software development process. Basically, the add-ons consist of two continuous improvement cycles: one cycle improves the running software process whereas the other cycle has its focus on the software product.
The first is implemented  by the Process Assessment activity, the second is implemented by the Sustainability Reviews and Previews.

Figure 2: Proposed green add-ons for software processes (own drawing)1:81

The goal of the Process Assessment activity is to enable informed decisions based on data collected from the software process. The collected data should be extensive enough to undergo a product carbon footprint (abbr. PCF) calculation or a LCA. Furthermore, Process Assessment should already start in early process stages, e.g., when the product idea is being developed.

The Sustainability Review and Preview activity has its focus on the “greenness” of the software product. As the name of the activity implies, it consists of two parts, a review part and a preview part. The review part reviews the work done from a sustainability viewpoint. The preview part develops solutions for the discovered issues and checks their compatibility with sustainability objectives. Regarding the LCA life cycle, mostly the distribution, usage, and deactivation phase are of interest for developers. This means also that the term “developers” includes not only software developers but also the people who are developing the packaging design or people who decide on the necessary IT infrastructure for distribution.

The Process Assessment and the Sustainability Preview and Review activities are executed during the repeating timeframes of a software development project (e.g. an iteration, increment, Sprint, or whatever name your specific process uses). At the end of such a timeframe, the findings, taken measures, and results of both activities are reported to customer representatives and other stakeholders in an Interim Sustainability Presentation meeting. Additionally, the findings, measures, and results should be briefly logged in the so called Sustainability Journal.

At the end of the software product development project, a final Sustainability Report based on the Sustainability Journal and the Interim Sustainability Presentation should be released and presented in a formal project closing ceremony.

Due to the fact that the process is not a complete process, we outlined in our papers how to tailor it to Scrum2:712–3, 6 and Open Unified Process (OpenUP)1:82–3, 2:712, 7.

In order to support persons responsible, e.g., the development team, or product designers in making informed decisions, several tools had been proposed (even in other papers):
Product Carbon Footprints can be used  to assess the impact on the environment, especially the atmosphere and thus the climate. PCFs are a useful tool for Process Assessment and an appropriated outcome for the Sustainability Report8.
The energy consumption in the first level introduced by operating software systems may be measured with an approach9, 10 similar to the measurement and rating of computer systems performance or runtime efficiency11, 12. Our approach measures, in addition to the performance parameters, also the power consumption of the system.
It is also possible to integrate such a measurement setup into the build process of a continuous integration server and to define energy consumption tests on the level of unit tests1, 13.
Besides these, many other measurement and approximation tools for software induced energy consumption have been described so far14, 15, 16, 17, 18, 19, 20, 21, 22.


The given process approach is designed to be added to software product development processes as a new aspect . So, there is no need to drop your well known, understood, and documented processes in favor for a sustainable one. Furthermore, it seems to be viable to introduce the new aspects in a step-by-step approach. Unfortunately, the measurement tools are not available to the public. However, an experienced developer may implement the required minimum functionality within 5 to 10 person days. A detailed documentation is, except the documentation given in the scientific papers, not available. However, the process has been tested in a study software project with students2.

Next time in this series on Sustainable Software Processes, we will examine another green software development process, which was presented by computer scientists from Kuwait University in 201323.

Are you interested in reading the previous posts of this series on Sustainable Software Processes?

  1. Dick, M., Drangmeister, J., Kern, E., Naumann, S.: Green Software Engineering with Agile Methods. In:: Workshop GREENS 2013 – Proceedings. 2nd International Workshop on Green and Sustainable Software (GREENS), May 20, 2013, San Francisco, CA, USA, pp. 78–85. IEEE (2013). doi:10.1109/GREENS.2013.6606425
  2. Dick, M., Naumann, S.: Enhancing Software Engineering Processes towards Sustainable Software Product Design. In: Greve, K., Cremers, A.B. (eds.): EnviroInfo 2010: Integration of Environmental Information in Europe. Proceedings of the 24th International Conference on Informatics for Environmental Protection, October 6 - 8, 2010, Cologne/Bonn, Germany, pp. 706–715. Shaker, Aachen (2010). http://enviroinfo.eu/sites/default/files/pdfs/vol6516/0706.pdf
  3. Naumann, S., Dick, M., Kern, E., Johann, T.: The GREENSOFT Model: A Reference Model for Green and Sustainable Software and its Engineering. SUSCOM, volume 1, issue 4, pp. 294–304 (2011). doi:10.1016/j.suscom.2011.06.004
  4. PAS 2050:2011: Specification for the assessment of the life cycle greenhouse gas emissions of goods and services. ICS 13.310; 91.190, British Standards Institution, 2011. http://shop.bsigroup.com/upload/Shop/Download/PAS/PAS2050.pdf
  5. ISO/DIS 14067.2 [Under development]: Carbon footprint of products -- Requirements and guidelines for quantification and communication. ICS 13.020.40, International Organization for Standardization, 2014-04-15
  6. Eclipse Foundation: Scrum. http://epf.eclipse.org/wikis/scrum/, 2014-12-27
  7. Eclipse Foundation: OpenUP. http://epf.eclipse.org/wikis/openup/, 2014-12-27
  8. Kern, E., Dick, M., Jakob, D., Hiller, T., Naumann, S., Guldner, A.: Integrating Aspects of Carbon Footprints and Continuous Energy Efficiency Measurements into Green and Sustainable Software Engineering. In: Page, B. (ed.): Environmental informatics and renewable energies. EnviroInfo 2013 : proceedings of the 27th Conference on Environmental Informatics - Informatics for Environmental Protection, Sustainable Development and Risk Management : 27th International Conference on Informatics for Environmental Protection, September 2-4, 2013, University of Hamburg, Germany, pp. 300–308. Shaker, Aachen (2013)
  9. Dick, M., Kern, E., Drangmeister, J., Naumann, S., Johann, T.: Measurement and Rating of Software-induced Energy Consumption of Desktop PCs and Servers. In: Pillmann, W., Schade, S., Smits, P. (eds.): Innovations in sharing environmental observations and information. Proceedings of the 25th International Conference EnviroInfo October 5 - 7, 2011, Ispra, Italy, pp. 290–299. Shaker, Aachen (2011). http://enviroinfo.eu/sites/default/files/pdfs/vol6919/0290.pdf
  10. Kern, E., Dick, M., Naumann Stefan, Guldner, A.: Green Software and Green Software Engineering – Definitions, Measurements, and Quality Aspects. In: Hilty, L.M., Aebischer, B., Andersson, G., Lohmann, W. (eds.): ICT4S ICT for Sustainability. Proceedings of the First International Conference on Information and Communication Technologies for Sustainability, ETH Zurich, February 14-16, 2013, pp. 87–94. ETH Zürich, Zürich (2013). doi:10.3929/ethz-a-007337628
  11. ISO/IEC 14756:1999: Information technology -- Measurement and rating of performance of computer-based software systems. ICS 35.080, International Organization for Standardization, 2010-06-17
  12. Dirlewanger, W.: Measurement and rating of computer systems performance and of software efficiency. An introduction to the ISO/IEC 14756 method and a guide to its application. Kassel University Press, Kassel (2006)
  13. Drangmeister, J., Kern, E., Dick, M., Naumann, S., Sparmann, G., Guldner, A.: Greening Software with Continuous Energy Efficiency Measurement. In: Horbach, M. (ed.): INFORMATIK 2013. Informatik angepasst an Mensch, Organisation und Umwelt. 16.–20. September 2013 Koblenz, Germany // Informatik angepasst an Mensch, Organisation und Umwelt ; 16.-20. September 2013 Koblenz, Germany. Köllen, Bonn (2013)
  14. Bircher, W.L., John, L.K.: Complete System Power Estimation Using Processor Performance Events. IEEE Transactions on Computers, volume 61, issue 4, pp. 563–577 (2012). doi:10.1109/TC.2011.47
  15. Capra, E., Francalanci, C., Slaughter, S.A.: Measuring Application Software Energy Efficiency. IT Professional, volume 14, issue 2, pp. 54–61 (2012). doi:10.1109/MITP.2012.39
  16. Johann, T., Dick, M., Kern, E., Naumann, S.: How to measure energy-efficiency of software: Metrics and measurement results. In: IEEE (ed.): First International Workshop on Green and Sustainable Software, 2012 (GREENS 2012). Proceedings : June 3, 2012, Zürich, Switzerland, pp. 51–54. IEEE, Piscataway, NJ, USA (2012). doi:10.1109/GREENS.2012.6224256
  17. Sahin, C., Cayci, F., Gutierrez, I.L.M., Clause, J., Kiamilev, F., Pollock, L., Winbladh, K.: Initial explorations on design pattern energy usage. In: IEEE (ed.): First International Workshop on Green and Sustainable Software, 2012 (GREENS 2012). Proceedings : June 3, 2012, Zürich, Switzerland, pp. 55–61. IEEE, Piscataway, NJ, USA (2012). doi:10.1109/GREENS.2012.6224257
  18. Wang, S., Chen, H., Shi, W.: SPAN: A software power analyzer for multicore computer systems. SUSCOM, volume 1, issue 1, pp. 23–34 (2011). doi:10.1016/j.suscom.2010.10.002
  19. Intel Corporation: Intel® Energy Checker SDK. http://software.intel.com/en-us/articles/intel-energy-checker-sdk/, 2014-12-27
  20. TPC-Energy 1.2.0: TPC-Energy Specification, TPC - Transaction Processing Performance Council, 06-2010. http://www.tpc.org/tpc_energy/spec/TPC-Energy_Specification_1.2.0.pdf
  21. Capra, E., Formenti, G., Francalanci, C. and Gallazzi, S.: The Impact of MIS Software on IT Energy Consumption, 18th European Conference on Information Systems, 7-9 June 2010, Pretoria, South Africa. http://web.up.ac.za/ecis/ECIS2010PR/ECIS2010/Content/Papers/0073.R1.pdf, 2010-10-25
  22. SPEC - Standard Performance Evaluation Corporation: SPECpower_ssj2008. http://www.spec.org/power_ssj2008/, 2012-02-17
  23. Mahmoud, S.S., Ahmad, I.: A Green Model for Sustainable Software Engineering. IJSEIA, volume 7, issue 4, pp. 55–74 (2013). http://www.sersc.org/journals/IJSEIA/vol7_no4_2013/5.pdf