2012-09-09

Software Sustainability from a Process-Centric Perspective


This post summarizes and discusses the recently published paper “Software Sustainability from a Process-Centric Perspective” by Guiseppe Lami, Fabriozi Fabbrini, and Mario Fusani presented at the 19th European Conference EuroSPI 2012, from 25 to 27 June in Vienna, Austria.

The paper approaches software sustainability from the point of view of software processes by defining a core set of processes and activities that have the objective to introduce and establish an organizational behavior that supports the definition, development and operation of green and sustainable software. The proposed processes are measurable according to common process capability and maturity standards.

Summary

The paper relates the green software life cycle to software processes and gives a definition of green software process, which are in accordance with the well-known international standards ISO/IEC 122071 and ISO/IEC 15504-42.

Lami et al. define core activities and tasks of green and sustainable software processes.
Their definition of green and sustainable software processes is based on the two definitions of Green and Sustainable Software and Green and Sustainable Software Engineering3:296.

In the paper a Green and Sustainable Software Process is defined as a...
“Software process that meets its (realistic) sustainability objectives, expressed in terms of direct and indirect impacts on economy, society, human beings, and environment that result from its definition and deployment.”4:99
Due to the different activities and tasks as well as organizational divisions that participate in the software life cycle, they talk about software processes instead of a single process. This approach covers not only development5, but also requirements engineering6, maintenance, and operation, which typically occur in a software life cycle.

All these life cycle phases define their own set of activities and tasks, which make up different software processes. The software process introduced in this paper can be used as a common template for these software processes, as it defines a basic continuous improvement cycle and means on how to measure its capability of dealing with sustainability aspects in their application domain.

Lami et al. consider direct impacts as sustainability factors of software processes, e.g. electric power, paper, and fuel consumption as well as more detailed sustainability concepts and measures, e.g. Carbon Footprint, waste, and travel, which were discussed in detail by Naumann et al.3, Taina7, and Albertao8/Albertao et al.9

The paper introduces three basic software processes:
  1. Sustainability Management Process
  2. Sustainability Engineering Process
  3. Sustainability Qualification Process
The Sustainability Management Process comprises four phases:
  1. The preliminary phase covers the definition of sustainability principles and criteria, which motivate the sustainability related activities.
  2. The planning phase identifies and plans the necessary sustainability activities and allocates the required human, organizational, and technical resources.
  3. The monitoring phase monitors the performance of the sustainability activities and finds viable solutions if problems are observed.
  4. The supplier sustainability control monitors if supplied products meet the sustainability requirements and establishes a monitoring policy with the suppliers.
The Sustainability Engineering Process guarantees that the sustainability activities established in the engineering processes achieve the desired sustainability objectives. This is accomplished by identifying and analyzing the factors that have an impact on sustainability. Based on this analysis, sustainability objectives for product development are defined and adequate sustainability principles are applied to development processes accompanied by adequate techniques and methods for sustainability.

The Sustainability Qualification Process addresses the sustainability assessment of externally provided resources and their management processes, e.g. development tools, software artifacts, etc.

Due to the fact that the process definitions are in line with ISO/IEC 12207 and ISO/IEC 15504, it is possible to use the latter one to measure the capability of an organization to drive these processes. The standard uses a two dimensional approach, where one dimension is the capability level and the other dimension is the software process level. The five capability levels range from “Not Performed” over “Performed”, “Managed”, “Established”, and “Predictable” up to “Optimizing”. The last level means, that the performance of the processes is monitored against business and efficiency goals and that a continuous improvement cycle is established.

Finally, Lami et al. discuss the relationship between capability and sustainability. They notice, as it is a common problem with quality management processes, that achieving a high capability level does not necessarily mean that the developed product is a sustainable product. There is rather a higher chance that with managed sustainability issues also the software product is more sustainable than it would have been without the existence of a sustainability software processes.

Discussion

The sustainability factors presented in the paper are limited to direct impacts, the so called first-order effects10:36 or “effects of ICT supply11:283. The not so obvious and easily observable second-order effects10:36 (aka “effects of ICT usage11:283) or third-order effects10:38 (aka “systemic effects of ICT11:284) are not discussed in detail. Happily, the important and highly sophisticated concept of rebound effects10:38,12:13,13:215–6 as a type of systemic effects is mentioned and discussed in short.

The capability model presented in this paper seems to be more suitable then the sustainability maturity model presented by SIG14, because in contrast to the model of SIG, it is not limited to energy efficiency issues. However, Lami et al. miss the important fact, which was observed and required by SIG, that development and operation must closely work together to achieve an energy friendly and thus more sustainable software product.

Seen from an overall point of view, Lami et al. contribute some additional aspects which were to my knowledge not covered so far in academia and industry and which make the set of available methods for Green and Sustainable Software more complete. The Green and Sustainable Software Processes may be used to define the still missing administration, operation and maintenance processes of green and sustainable software.

The following overview gives an impression, which aspects are already covered today (aspects covered by Lami et al. are highlighted):
  • A definition of the term Green and Sustainable Software3:296
  • A definition of the term Green and Sustainable Software Processes4
  • A definition of the term Green and Sustainable Software Engineering3:296
  • A software life cycle that relates impacts on sustainable development to its life cycle phases3:296,5
  • A definition of general software processes that aim at Green and Sustainable Software4
  • Capability maturity models that can be used to assess the capability and maturity of software developing organizations and software development projects in producing green and sustainable software and software based services4,14
  • A requirements engineering approach that considers also sustainability requirements6
  • A sustainable software development process where sustainability is interpreted in the sense of Green and Sustainable Software5
  • A set of metrics for Green and Sustainable Software, which can be used to assess the software product as well as the software development process3,7,8,9,15
Something that is still missing, is a set of easy to use and production ready tools that support software architects, developers, and operators in planning, writing, assessing and operating Green and Sustainable Software. Many of the tools that were described so far in academia and industry are only prototypes that are not available to the public or which are not stable and mature enough to be used in real world projects. Additionally, the metrics part is still nebulous today, so that it is not possible to calculate metrics as easily as common code metrics. These areas require further research and development.

  1. ISO/IEC12207:2008: Systems and software engineering -- Software life cycle processes. ICS 35.080, 2008-03-18
  2. ISO/IEC 15504-4:2004: Information technology -- Process assessment -- Part 4: Guidance on use for process improvement and process capability determination. ICS 35.080, 2009-12-31
  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. Lami, G., Fabbrini, F., Fusani, M.: Software Sustainability from a Process-Centric Perspective. Systems, Software and Services Process Improvement. In: Winkler, D., O’Connor, R.V., Messnarz, R. (eds.): Systems, Software and Services Process Improvement. 19th European Conference, EuroSPI 2012, Vienna, Austria, June 25-27, 2012. Proceedings, volume 301, pp. 97–108. Springer, Berlin, Heidelberg (2012)
  5. 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)
  6. Mahaux, M., Heymans, P., Saval, G.: Discovering Sustainability Requirements: An Experience Report. In: Berry, D.M., Franch, X. (eds.): Requirements Engineering: Foundation for Software Quality. 17th International Working Conference, REFSQ 2011, Essen, Germany, March 28-30, 2011. Proceedings, pp. 19–33. Springer, Berlin, Heidelberg (2011). doi:10.1007/978-3-642-19858-8_3
  7. Taina, J.: How Green Is Your Software? In: Tyrväinen, P., Cusumano, M.A., Jansen, S. (eds.): Software Business. First International Conference, ICSOB 2010, Jyväskylä, Finland, June 21-23, 2010. Proceedings, pp. 151–162. Springer-Verlag Berlin Heidelberg, Berlin, Heidelberg (2010). DOI:10.1007/978-3-642-13633-7_13
  8. Albertao, F.: Sustainable Software Engineering. http://www.scribd.com/doc/5507536/Sustainable-Software-Engineering#about
  9. Albertao, F., Xiao, J., Tian, C., Lu, Y., Zhang, K.Q., Liu, C.: Measuring the Sustainability Performance of Software Projects. In: IEEE Computer Society (ed.): 2010 IEEE 7th International Conference on e-Business Engineering (ICEBE 2010), Shanghai, China, pp. 369–373 (2010). http://doi.ieeecomputersociety.org/10.1109/ICEBE.2010.26
  10. Hilty, L.M.: CO₂ Reduction with ICT: Prospects and Barriers. In: Hryniewicz, O., Studzi´nski, J., Szediw, A. (eds.): EnviroInfo 2007: Environmental Informatics and Systems Research. proceedings of the 21st International Conference on Informatics for Environmental Protection, Warsaw, Poland, September 12 - 14, 2007, volume 1, pp. 35–42. Shaker, Aachen (2007). http://www.iai.fzk.de/Fachgruppe/GI/litArchive/EnviroInfo/2007Warschau/Volume1-Environmental_Informatics_and_Systems_Research/CO2_Reduction_with_ICT_Prospects_and_Barriers--a809.pdf
  11. Göhring, W.: The Memorandum “Sustainable Information Society”. In: Minier, P., Susini, A. (eds.): Sh@ring. proceedings of the 18th International Conference Informatics for Environmental Protection, EnviroInfo 2004, October 21-23, 2004, CERN, Geneva (Switzerland), pp. 278–286. Éditions du Tricorne, Genève (2004). http://www.iai.fzk.de/Fachgruppe/GI/litArchive/EnviroInfo/2004Geneva/Volume2-Sh_ring_EnviroInfo_2004/The_Memorandum_Sustainable_Information_Society_--a1306.pdf
  12. Hilty, L.M., Lohmann, W.: The Five Most Neglected Issues in “Green IT”. CEPIS UPGRADE, volume XII, issue 4, pp. 11–15 (2011). http://www.cepis.org/upgrade/media/hilty_2011_41.pdf
  13. OECD Information Technology Outlook 2010. OECD Publishing, Paris (2010). http://www.oecd.org/sti/ito
  14. Visser, J.: Green IT and Software Development. Optimisation of IT Energy-Efficiency at the Application Level. http://www.sig.eu/blobs/Nieuws/2010/20101028%20SIG%20at%20GSE%20App%20Level%20Greenness.pdf
  15. Taina, J.: Good, Bad, and Beautiful Software - In Search of Green Software Quality Factors. CEPIS UPGRADE, volume XII, issue 4, pp. 22–27 (2011). http://www.cepis.org/upgrade/media/taina_2011_41.pdf