Towards a common understanding of sustainable software development
The underlying principles of Sustainable Software Engineering are a core set of competencies Software Engineers need for defining, building, and running sustainable software applications. However, despite its importance, recently published studies have shown that Software Engineers have not reached a common and clear understanding of Sustainable Software Development (SSD). Consequently, it might be challenging to understand the value of the principles behind sustainability and how Software Engineers should apply them in practice. Therefore, the first step is to promote a field characterization to mitigate such effects to bridge such a gap. This paper reports on qualitative data analysis to leverage the sustainability principles through the support of the Grounded Theory method. We conducted this study using unstructured data retrieved from a systematic mapping study on sustainable software engineering and a survey applied in the software industry. To achieve the principles, we considered five critical dimensions: economic, social, individual, environmental, and technical. The key results are: (i) technical, environmental, and social concerns are present in all software development life-cycle (SDLC) phases; (ii) software engineers should consider sustainability requirements in the early SDLC phases; (iii) there is a need for stakeholder engagement focused on sustainability; (iv) software quality requirements support the development of sustainable software; and (v) sustainable concerns could generate trade-offs in the project. The yielded results might trigger further discussions around the SSD’s underlying principles and concepts and serve as a basis for the research community to identify models, techniques, and tools to support SSD.