Green Software Development Project

Green Software Development

Overview

Software is a core component of IT. So, how can we produce more sustainable software? Indeed, there are different ways to think about sustainability in software (1) green in software, (2) green by software, and (3) green in software engineering, as illustrated in Figure 1.

Figure 1: Green Software and its aspects. Adapted from Calero (2015a)

Green by software refers to software whose domain is the preservation of the environment, for example, energy management software (Calero, 2015a). Green in software refers to how to develop software in a more sustainable way, including both software development issues and beyond, for example, strategic and governance issues (Calero, 2015a). Finally, sustainability in Software Engineering (Green in Software Engineering or Green Software Development) aims to include sustainability practices in the software development process, in other words, consider such practices as part of software development (Calero, 2015a).

Software Engineering is defined as “the application of a systematic, disciplined, and quantifiable approach to the development, operation, and maintenance of software, and the application of engineering to software” (ISO, 2010).

Considering this definition, sustainability in software engineering can be summarized as the set of practices that consider environmental-related aspects (Calero, 2015a). In other words, it involves conducting all software lifecycle activities sustainably, from its conception to its retirement. This definition is illustrated in Figure 2.

Figure 2. Sustainability in Software Engineering. Adapted from (Calero, 2015a)

Out of the 15 knowledge areas of Software Engineering presented in SWEBOK (Bourque and Fairley, 2014), Calero et al. (2019a) identified that research considering the aspect of sustainability has already been carried out in five of them: requirements, design and architecture, construction, testing, and software quality. The main focuses of these researches are on sustainable development, requirements engineering, hardware, embedded software, algorithms, big data, and mobile applications.

Despite more than two decades of existence, concern for sustainability in software engineering has been a constant and growing target of research. However, much still needs to be studied and, more than that, many of the results of these researches still need to be applied to software development in the daily life of companies that produce software worldwide.

A study conducted by Calero et al. (2019b) investigated the application of sustainability practices in software in ten major software-producing companies: CA Technologies, EMC, Hewlett-Packard, Microsoft, VMware, SAP, Symantec Corp, Apple, IBM, and Oracle. The authors did not identify the application of any practice in the green in software dimension in more than half of these companies: Microsoft, VMware, SAP, Symantec Corp, Apple, and Oracle.

This situation is no different in Brazil. Karita et al. (2021) conducted a survey with 99 Brazilian software professionals. Among the findings, the study found that a large part of the respondents have little knowledge related to software sustainability. Well, if the professionals are unaware of the area, certainly the application of knowledge is far from being a reality.

Therefore, this project aims to draw attention to the need to know this area and, once we have this knowledge, to bring it to companies. In this way, we will be contributing to the construction of software that cares about the effects they produce on the environment.

References

Goal

To draw attention to the need to become familiar with this field and, once we have that knowledge, to bring it to companies. In doing so, we will be contributing to the construction of software that is mindful of its environmental impact.

Members

Publications