Sustainable Software Engineering: Visions and Perspectives Beyond Energy Efficiency

In the face of multiple global crises such as climate change, a transformation towards sustainable development is more urgent than ever. Digitalization, as a fundamental change in society and the economy, offers great opportunities for sustainable development, but also poses its own threats, as evident in the immense resource consumption and growing surveillance tendencies. To leverage digitalization for sustainability transformation without compromising it, software engineering requires a significant shift in practices and structures. However, research in this area is still immature, lacking a deeper understanding of sustainability, its application in practice and solid engineering approaches. To bridge these gaps, this thesis aims to operationalize sustainability by proposing sustainability goals for software engineering, followed by the development of novel assessment methods and appropriate tool support.


MOTIVATION
In the age of the Anthropocene [36], human impact on the Earth's ecosystem progresses unabated.By 2023, six of nine planetary boundaries are crossed, including the atmospheric CO 2 concentration and the release of microplastic, pesticides, and nuclear waste into the environment [28,29].As a result, social conflicts and economic damage are more likely to occur, affecting not only the less developed countries of the global South, but increasingly the industrialized countries in the global North as well [2].
In the face of these enormous impacts, the call for sustainable development is growing louder.In 1987, the UN World Commission on Environment and Development defined sustainable development as permanent development that meets "the needs of the present without compromising the ability of future generations to meet their own needs" [1].Accordingly, inter-and intragenerational equity, a global perspective and the linking of environmental and development aspects are constitutive elements for sustainability.
Digitalization as a fundamental transformation in society and economy is seen by many [10,18,31] as a great opportunity to achieve sustainable development.For example, digital precision agriculture or smart mobility systems could enable large reductions in fertilizer and pesticide use, land use, or pollutant emissions.However, as many reports also note [17,19,32], current trends in digitalization have the opposite effect of "optimising the unsustainable status quo rather than transforming it" [19], as evident in the immense energy consumption, hazardous electronic waste, tendencies of mass surveillance, and increasing polarization.
To realize the benefits of digitalization for sustainability without causing the opposite effects, fundamental changes in today's software engineering are inevitable.These changes require not only a rethinking of current economic patterns, but also technological innovation and the empowerment of social actors.Software engineering is challenged to shape this change through new structures, practices, and techniques that align software development with the goal of sustainability.In the past, several approaches have been proposed to address this challenge, such as risk assessment [8,9], stakeholder involvement [4,27], or technical solutions such as Green IT [6,22], which aims to reduce the energy consumption and carbon footprint of digital systems.However, as several studies report, sustainability research in software engineering is still in its infancy, lacking empirical evidence [20], transformative research approaches and perspectives beyond energy efficiency [30].

PROBLEM STATEMENT
The key barrier to current sustainability research and practice in software engineering is the implicit and superficial understanding of sustainability, its relation to software development, and its translation into concrete engineering practices.Indicators of this lack of knowledge are, for instance, the one-sided focus on energy consumption in software engineering publications [21,30], the various definitions of sustainability in software engineering [13,26,35] as well as the missing guidelines at conferences like ICSE, for when a technology is actually considered as sustainable.As a result, sustainability in software engineering is currently a loose concept with few points of reference, not reaching its potential to shape software development practices, processes, and decisions.
To overcome this barrier and make sustainability a central concern in software engineering, sustainability needs to be made tangible in the context of software development.This requires not only an advanced understanding of sustainability and its translation into concrete engineering goals, but also an assessment methodology with appropriate tool support.To achieve this operationalization, the thesis investigates the following main research question (MRQ): MRQ: How can we operationalize sustainability in software engineering?

RESEARCH GAPS
Based on this MRQ, the following research gaps (G1-G3) have been identified: [G1] Current software engineering lacks a holistic understanding of sustainability, which is reflected in a variety of diffuse definitions of sustainability and references to software.For example, sustainability has been described as either "the capacity to endure" [34], "preserving the function of a system over a defined time span" [26] or, in relation to software, as "composite, non-functional requirement" [33], such as extensibility and maintainability.While these definitions cover some aspects of sustainable development as defined by the UN Commission [1], they do not fully encompass sustainability in its social, environmental and economic dimensions.As a result, software engineering fails to provide guidance on what sustainability goals need to be achieved, as evident in existing concepts such as the Karlskrona Manifesto for Sustainability Design [5,25], which tend to be vague and difficult to apply.
[G2] In addition, software engineering lacks appropriate methodologies for assessing sustainability in software development.Sustainability assessments are an important tool in various fields to evaluate the status of certain sustainability goals and to derive appropriate measures [3].In software engineering, for example, Kern et al. [14] and Naumann et al. [24] proposed a set of criteria such as resource efficiency, hardware operating life and user autonomy to evaluate the sustainability of software products, along with an assessment methodology.Another approach [33] suggested to evaluate the sustainability of a software using a set of core quality attributes such as maintainability or reusability.However, due to the lack of theory and the ambiguity of sustainability definitions as described in G1, current assessment methods in software engineering appear to be theoretically weak, resulting in partial or inadequate assessments.
[G3] Achieving sustainability requires not only technical and structural innovation, but also continuous management.This includes the support of appropriate tools that systematically document sustainability goals and measures at the software engineering level.However, due to the lack of theory and methodology as described in G1 and G2, software engineering lacks tool support for sustainability assessments.As a result, software engineers are not able to apply, document, and evaluate the impact of certain sustainability-related actions such as techniques [11,22], process models [23], or stakeholder engagement [4,27] on certain sustainability goals.This may also contribute to the fact that, according to recent secondary literature [20], few of these approaches seem to be applied in practice or even empirically validated.

RESEARCH METHODOLOGY
In order to fill the research gaps and answer the main question, the thesis examines the following sub research questions (RQ1-RQ3): RQ1: What does sustainability mean for software engineering?
To operationalize sustainability in software engineering, sustainability needs to be related to the specific context of software development.RQ1 therefore focuses on translating sustainability into a set of common sustainability goals, such as resource conservation, digital participation, privacy or safety, that provide orientation and guidance in software engineering.For this purpose, I draw on the Integrative Concept of Sustainable Development (IKoNE) [15], which has proven to be a well-founded theory and research instrument in the German sustainability discourse [16].IKoNE concretizes the idea of inter-and intragenerational equity through three main goals, which are further specified by 15 substantive and 10 instrumental rules.These rules need to be interpreted in the context of digitalization in order to derive sustainability goals to be met in software development.These goals will then serve as the basis for a more precise definition of Sustainable Software Engineering.RQ1 therefore closes G1 and presents a theoretical contribution, based on the foundations of sustainability science.
RQ2: How can we assess sustainability in software engineering?
RQ2 aims to develop a methodology for sustainability assessments in software engineering.For this purpose, I will define a suitable set of target indicators based on the sustainability goals derived in RQ1.This set of target indicators may include both product-specific and process-specific indicators at the software development and enterprise levels, along with measurement methods for certain indicators.To develop an assessment methodology, I will draw on existing methodologies from other disciplines, such as life cycle assessments [12], as well as general assessment methods from software engineering, such as maturity models [7].To evaluate the usefulness and applicability of the intended set of indicators and methodology, I will conduct a case study with a software engineering company.Overall, RQ2 closes G2 and provides a theoretical contribution along with an empirical evaluation.
RQ3: How can we support sustainability assessments in software engineering?
To enable continuous sustainability management in software engineering, RQ3 explores ways to provide appropriate tool support for sustainability assessments.For this purpose, I will use the sustainability goals from RQ1 and their indicators from RQ2 to develop a tool for structured and comparable sustainability analysis according to the proposed methodology.This will be preceded by a requirements analysis of the necessary features, technical resources and the possibility of manual and automated data collection for certain indicators.The final tool will be qualitatively evaluated in practice in collaboration with a software engineering company.Thus, RQ3 provides a technical contribution with an empirical evaluation in order to close G3.