The Karlskrona Manifesto

Sustainability Design and Software
By Christoph Becker, Ruzanna Chitchyan

1. INTRODUCTION#

1. society is facing major sustainability challenges that require long-term, joined-up thinking. How do we sustain our technical infrastructures, given how much we rely on them for everything from communication and navigation through to storing health records, identifying security threats, and keeping the lights on? How do we sustain prosperity in society, given the erosion of trust in our political institutions and a growing inequality in ownership of resources? And, above all, how do we sustain the planetary systems that support life on earth, in the face of accumulation of pollutants, species loss, and accelerating climate change?

2. The lack of long-term thinking in software engineering research and practice has been critiqued throughout the history of the discipline. For example, software maintenance and evolution were raised as concerns even at the very first software engineering conference. [1] Since then, effort to increase the maintainability of software products and facilitate their evolution have often focused on improving architecture, decreasing life-cycle costs and managing technical debt. [2]

[1] Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany. Brussels, Scientific Affairs Division, NATO (1969), 7-11 Oct. 1968.
[2] P. Kruchten, “Technical Debt: From Metaphor to Theory and Practice,” IEEE Software, vol. 29, no. 6, pp. 18–21, Nov. 2012.

3. Software product qualities and user benefits are generally treated as secondary concerns, optional qualities to be addressed only after the system under design has been shown to be a success in terms of technical and/or marketing criteria. The larger impact of software artefacts on society and the natural environment is not routinely analysed. But by trading off longer-term sustainability questions for shorter-term success criteria, we accumulate threats to sustainability. ... "There is much to be gained from far-sighted thinking that also enables short-term achievements." [3] |1

[3] P. G. Neumann, “The Foresight Saga, Redux,” Commune. ACM, vol. 55, no. 10, pp. 26–29, Oct. 2012.

4. The benefits of longer-term thinking in software design are broad and far-reaching. In almost any domain, software is a key driver of continued automation and dematerialization [5]. Increasingly, our consumption of resources and access to information are shaped by the design choices embedded in our software systems, rather than the conscious choices we make as individuals. Hence, the design of software systems comes with a special set of responsibilities to society that are much broader than those described in existing codes of ethics for computing professionals.

[5] L. M. Hilty and B. Aebischer, “ICT for Sustainability: An Emerging Research Field,” in ICT Innovations for Sustainability, L. M. Hilty and B. Aebischer, Eds. Springer Int. Publishing, 2015, pp. 3–36.

2. SOFTWARE SYSTEMS AND SUSTAINABILITY #

5. Despite these advances in understanding software maintainability as a technical concern, in practice it is interdependent with its organizational and business context. Thus, technical sustainability of a software system cannot be separated from social and financial sustainability of the organization that created it, ... Durdik et. al. point out that “in many software development projects, sustainability is treated as an afterthought, as developers are driven by time-to-market pressure and are often not educated to apply sustainability-improving techniques” [15], and they call for better guidance for software practice.

[15] Z. Durdik, B. Klatt, H. Koziolek, K. Krogmann, J. Stammel, and R. Weiss, “Sustainability guidelines for long-living software systems,” in 28th Intl. Conf. on Software Maintenance, Sept 2012, pp. 517–526. |2

6. Sustainability definitions from: J. Dillard, V. Dujon, and M. King, Understanding the Social Dimension of Sustainability. Taylor & Francis, 2008.

Sustainability is often thought of as composed of three overlapping, mutually dependent goals: 
   
   a) to live in a way that is environmentally sustainable, or viable over the very long-term, 
   b) to live in a way that is economically sustainable, maintaining living standards over the long-term, and 
   c) to live in a way that is socially sustainable, now and in the future. 

The social dimension of sustainability should be understood as both 
   
   1) the processes that generate social health and well-being now and in the future, and 
   2) those social institutions that facilitate environmental and economic sustainability now and for the future.

7. Sustainability definitions from: R. Heinberg, Peak everything: Waking up to the century of declines. New Society Publishers, 2007.

Five axioms to define sustainability: 
   
   1) Any society that continues to use critical resources un-sustainably will collapse. 
   2) Population growth and/or growth in rates of consumption of resources cannot be sustained. 
   3) The use of renewable resources must proceed at a rate that is less than or equal to the rate of natural replenishment. 
   4) The use of non-renewable resources must proceed at a rate that is declining, and the rate of decline must be greater than or equal to the rate of depletion. 
   5) Substances introduced into the environment from human activities must be minimized and rendered harmless to biosphere functions.
   
   Where pollution from extraction and consumption of non-renewable resources has proceeded at expanding rates for some time and threatens the viability of ecosystems, reduction in the rates of extraction and consumption of those resources may need to occur at a rate greater than the rate of depletion. |3

8. For social issues, the dispute centres on whether all aspects of social sustainability eventually lead to questions of distributional justice over access to (natural) resources, or whether there are other aspects of social sustainability (e.g., human rights) that arise independently from the question of how we allocate resources.

9. Software practitioners tend to treat techno-centric concerns (e.g., software qualities and the economic value they create) separately from socio-centric concerns (how software can make people’s lives better) and eco-centric concerns (protecting the environment). Rather than asking whether it is appropriate to balance these concerns, we should instead be asking *What methods and tools are needed to explore inter-dependencies between these concerns, and to foster more integrated and long-term thinking? |4

10. Following Goodland [34] and Penzenstadler & Femmer [35], we identify five sustainability dimensions:
   
   - Environmental: concerned with the long term effects of human activities on natural systems. This dimension includes ecosystems, raw resources, climate change, food production, water, pollution, waste, etc.
   - Social: concerned with societal communities (groups of people, organisations) and the factors that erode trust in society. This dimension includes social equity, justice, employment, democracy, etc.
   - Economic: focused on assets, capital and added value. This includes wealth creation, prosperity, profitability, capital investment, income, etc.
   - Technical: refers to longevity of information, systems, and infrastructure and their adequate evolution with changing surrounding conditions. It includes maintenance, innovation, obsolescence, data integrity, etc.
   - Individual: refers to the well-being of humans as individuals. this includes mental and physical well-being, education, self-respect, skills, mobility, etc.

These dimensions are interdependent. Cumulative effects from the individual dimension will bleed into the social one; effects from the environmental dimension into the individual, social, and economic, and so on. Yet, these dimensions provide a useful tool for dis-aggregating and analysing relevant issues. |4-5

[34] R. Goodland, Sustainability: Human, social, economic and environmental. John Wiley & Sons, 2002.
[35] B. Penzenstadler and H. Femmer, “A generic model for sustainability with process-and product-specific instances,” in Proceedings of the 2013 workshop on Green in/by software engineering. ACM, 2013, pp. 3–8.

11. Some seek to encourage reductions in consumption of energy and material goods, or to support changes in purchasing behavior. Others seek to use software capabilities to build smarter (lower impact) infrastructure. However, there is a lack of common understanding of the fundamental concepts of sustainability and how they apply, and a need for a common ground and consistent terminology. As such, persistent miss-perceptions occur, as researchers and practitioners disagree over whether we’re even asking the right questions. We lack a coherent framework with sound theoretical basis that can provide a well-understood trans-disciplinary basis for sustainability design. |5

3. TOWARDS A MANIFESTO#

12. What is a successful manifesto? An ideal manifesto can provide a focal point of reference and catalyze communities by phrasing key questions in accessible language appealing to a broad audience. It enables others to see connections and synergies and self-identify with the concerns articulated in the manifesto. It contributes to unifying the language about a subject and facilitates visible community building. It also facilitates the action of reaching out to related communities with a clear value proposition and provides arguments for the relevance of the topic, especially encouraging new community members to engage. As such, it can enable a clear communication of the benefits of engaging in the subject.

13. The manifesto has also been called a ‘defunct format’ that ‘belongs to the early twentieth century’ [40]. It arises from the nature of the genre that the creation of a manifesto brings with it the potential for pitfalls and negative consequences. The compact, shortened form of communication often assumed in a manifesto can appear dogmatic, and catchy language designed to be broadly appealing can ultimately hide the real complexity of underlying issues. A polarizing perspective can result in splinter groups rather than a unification, and the questioning of commonly accepted assumptions might alienate rather than unite the audience. Hence, an intended focal point of reference can make others feel excluded rather than invited.

14. The acknowledgement of these risks was discussed in the early stages when initiating the collaborative process and has led us to articulate a set of principles, meant to guard the emerging group from the above mistakes, avoid group think, and foster a sustainable process. These have guided our work:
   
   - Principles, not techniques. The manifesto focus on principles and values of sustainability, not on current techniques, specific models, and suggested approaches.
   - Scope. The intended scope is broad and inclusive, but clearly delimited. This is inherently difficult to define and achieve, but the principle has repeatedly been brought in when shaping the manifesto to provide a balance and a focus consistent with what the authors are confident to address.
   - Emerging structure. We believe that the content and the structure of the manifesto needed to emerge from a common set of elements arising from the discussion, initially at the RE4SuSy workshop. This has prompted the process to be very bottom-up and the structure strongly grounded in what emerged from the contributions of the initial group of workshop participants. Facilitation within and beyond the workshop was strongly focused on providing a stable structure, documenting outcomes, and facilitating the discussion.
   - Participation and transparency. The discussion was initiated within the workshop, and all participants of the workshop were invited to the subsequent process. No conditions set for entering the discussion process.
   - Conversation over consensus. This acknowledge that while internal consensus is critical, universal consensus is an elusive, and perhaps undesirable, goal. The intention for external engagement is to initiate a dialogue rather than aim for full consensus within an extremely broad community.
   - Minimal and adaptive process. In line with the focus on emergent content and structure, we designed only a minimal process and created the required support structure only as necessary. This eventually included an email list, regular Google hangouts, and a shared folder.
   - Synchronous collaboration. The elements of the manifesto, at all times, were written and edited in fully synchronous collaboration.
   - Iterative evolution. A vision was formulated early on, but no specific milestones or objectives were set and the process was intended to be incremental, iterative, and open-ended. |6

4. KARLSKRONA MANIFESTO#

15. What is sustainability, really? We often define it too narrowly. Sustainability is at its heart a systemic concept and has to be understood on a set of dimensions, including social, environmental, economic, individual, and technical. Sustainability is fundamental to our society. The current state of our world is unsustainable in more ways that we often recognize. ... We often talk about the immediate impact of technology, bur rarely acknowledge its indirect and systemic effects. These effects play out across all
dimensions of sustainability over the short, medium and long term. Software in particular plays a central role in sustainability. It can push us towards growing consumption of resources, growing inequality in society, and lack of individual self-worth. But it can also create communities and enable thriving of individual freedom, democratic processes, and resource conservation.

16. There is a tendency to overly discount the future - in fact, the far future is discounted so much that it is considered for free (or worthless). Discount rates mean that long-term impacts matter far less than current costs and benefits. Whereas the consequences of our actions play out over multiple timescales, and the cumulative impacts may be irreversible.

17. There is a tendency to think that taking small steps towards sustainability is sufficient, appropriate, and acceptable. Whereas incremental approaches can end up reinforcing existing behaviours and lure us into a false sense of security. However, current society is on a path that is so far from sustainability that deeper transformative changes are needed.

18. Thus, we propose the following initial set of principles and commitments:
   
   + Sustainability is systemic. Sustainability is never an isolated property. System thinking has to be the starting point for the trans-disciplinary common ground of sustainability.
   + Sustainability has multiple dimension. We have to include those dimensions into our analysis if we are to understand the nature of sustainability in any given situation.
   + Sustainability transcends multiple disciplines. Working in sustainability means working with people from across many disciplines, addressing the challenges from multiple perspectives.
   + Sustainability is a concern independent of the purpose of the system. Sustainability has to be considered even if the primary focus of the system under design is not sustainability.
   + Sustainability applies to both system and its wider contexts. There are at least two spheres to consider in system design: the sustainability of the system itself and how it affects the sustainability of the wider system of which it will be part of.
   + System visibility is a necessary precondition and enabler for sustainability design. Strive to make the status of the system and its context visible at different levels of abstraction and perspectives to enable participation and informed responsible choice.
   + Sustainability require action on multiple levels. Seek interventions that have the most leverage on a system and consider the opportunity costs: Whenever you are taking action towards sustainability, consider whether this is the most effective way of intervening in comparison to alternative actions (leverage points).
   + It is possible to meet the needs of future generations without sacrificing the prosperity of the current generation. Innovation in sustainability can play out as decoupling present and future needs. By moving away from the language of conflict and the trade-off mindset, we can identify and enact choices that benefit both present and future.
   + Sustainable requires long-term thinking. Consider multiple timescales, including longer-term indicators ins assessment and decisions. |7

5. IMPLICATIONS FOR SOFTWARE ENGINEERING #

19. Sustainability cannot simply be seen as a quality of the systems we design, Crucially, we must distinguish between a [solution-oriented] system quality and a [problem-oriented] concern i.e. an ‘interest in a system relevant to one or more of its stakeholders’ [41]. Considering only the system under design from a technical and economic perspective, the [technical] sustainability of a system architecture, as defined in [42], is clearly a system quality and can be measured and improved by techniques such as evolution scenario analysis, architecture compliance checks, and tracking of architecture-level code metrics. However, in the overall design of the complex socio-technical system that contains this system architecture, sustainability needs to be treated as a design concern of interest to multiple stakeholders that will drive specific capabilities and qualities in the system [6]. As such, it will interact in different ways with technical features and system qualities. Understanding these interactions and designing the system accordingly is a challenge that current methods, techniques and tools do not fully address, and needs a broader, more holistic perspective than product quality models and architectural metrics can capture.

[6] C. Becker, “Sustainability and Longevity: Two Sides of the Same Quality?” in RE4SuSy: Proceedings of the Third Int. Workshop on RE for Sustainable Systems. Karlskrona, Sweden: CEUR-WS 1216, 2014.
[41] ISO/IEC/IEEE, “ISO/IEC/IEEE 42010:2011 - Systems and software engineering – Architecture description,” online, 2011.
[42] H. Koziolek, D. Domis, T. Goldschmidt, and P. Vorst, “Measuring architecture sustainability,” Software, IEEE, vol. 30, no. 6, Nov 2013. |8

20. Consider an imaginary software company called CodeIT. Their next project is developing a community car sharing application that specifically intends to satisfy the needs of a suburban community in a western country such as the US. Kodi, the project manager, is sensitive to the impact of car traffic on the environment and painfully aware of the technical debt carried by the project she just completed. As such, she is determined to make her best effort to design responsibly and effectively this time. Is she also aware of the complex dependencies that will surface in this system, and will she be able to contribute both to the sustainability of this system and to the envisioned positive impact it should have?

Kodi could start an investigation into the concerns for economic, environmental, individual, social, and technical sustainability by asking initial guiding questions similar to those suggested in [43]: (1) Does the system have an explicit sustainability purpose? Can we analyze it in depth using sustainable development scenario techniques [44]? (2) Which direct impact does the system have on its operational environment? Which indirect effects can we identify? (3) Who are the stakeholders for sustainability? Who are the domain sustainability experts, policy makers, and legal representatives?

[43] B. Penzenstadler, “Infusing Green: Requirements Engineering for Green in and through software systems,” in RE4SuSy: Proceedings of the Third Int. Workshop on RE for Sustainable Systems, 2014.
[44] S. Bell and S. Morse, Sustainability Indicators — Measuring the Immeasurable? Earthscan, 2008, 2nd Ed.

These questions highlight that Requirements Engineering is a key area where systems level thinking can be applied to identify sustainability concerns, as it translates the domain dependent goals and concerns into technical requirements that can be realized in the implementation of a software system. Requirements engineers can question user needs, shape people’s expectations and use sustainability concerns and apparent conflicts creatively as drivers for innovation.

Currently, however, Kodi is unlikely to even begin asking these questions. Corporate culture will often not encourage and reward her, and the company’s incentive structure may instead favour short-term thinking based on the economic paradigms that corporations are operating in. Kodi’s SE education will not have prepared her for this responsibility nor equipped her with the mindset to raise these concerns.

Using the manifesto as a guide, how does a commitment to the principles affect the car sharing scenario?
   
Sustainability is systemic. Sustainability is systemic. This raises fundamental questions about the relationship between the proposed software and the problem it is attempting to solve. Often, software engineers fall into the trap of solutionism [45]. Kodi’s questions are based on the assumption that the car sharing app will solve a real problem. However, sometimes, the system the customer wants and the system that should be built are quite different. Choosing appropriate system boundaries and actively critiquing assumptions about these boundaries is important, as any given choice will privilege some stakeholders and their concerns, and marginalize others [46].

[45] S. Easterbrook, “From Computational Thinking to Systems Thinking,” in Proc. ICT4S. Atlantis Press, 2014.
[46] G. Midgley, I. Munlo, and M. Brown, “The theory and practice of boundary critique: developing housing services for older people,” Journal of the Operational Research Society, pp. 467–478, 1998.

Sustainability has multiple dimensions. Sustainability transcends multiple disciplines. Sustainability design in this scenario will require cross-disciplinary expertise covering transportation systems, carbon emissions, social network effects, effects on family structures, but most importantly, the interaction between these and additional aspects. The problem of transportation in suburban communities is often a dilemma to be addressed rather than a problem to be solved, and success may be a moving target.

Concept models, techniques and tools are needed to communicate, represent, and visualize relationships between software, systems, and particular aspects of sustainability in their social, economic, technical, and natural environment.

Sustainability applies to both a system and its wider contexts. Sustainability requires action on multiple levels. The car sharing application could focus on action on multiple levels. For example, the design of the system could focus on making sharing effortless - an obvious choice. If car booking becomes as efficient and effortless as using one’s own car, the volume of traffic could potentially increase, countering a key argument originally brought forward in support of the car sharing project. The application design, however, could also attempt to facilitate joint usage to support a reduction in total traffic.

System visibility is a necessary precondition and enabler for sustainability design. Each participant carries a distinct responsibility, and this comes with the need to be informed about the status and structure of the socio-technical system under design and the right to influence the outcomes.

It is possible to meet the needs of future generations without sacrificing the prosperity of the current generation. Sustainability requires long term thinking. The project’s effects will need to be studied over time rather than at the initial product release date. A long-term requirement that may surface is the availability of authentic, reliable records about the system usage and its trends beyond the system life span so that the phenomena associated with such an initiative can be analyzed. As a typical case involving the interest of stakeholders that are not commonly involved in such scenarios, this example also illustrates that often, there does not need to be a trade-off between these future needs and current needs. Well-defined data models and records management principles benefit current stakeholders as well, and ignoring them increases the technical debt of the system design. |8-9

6. CONCLUSION AND OUTLOOK#

21. Increasing attention is being paid to the broad effects of software on society and the need to embody longer-term thinking, ethical responsibility, and an understanding of sustainability into the design of software systems. However, the software profession lacks a common ground that articulates its role in sustainability design, and a long rooted set of miss-perceptions persist in research, theory, and practice. To truly make progress in understanding the role software plays in the choices we make as designers of the systems at the backbone of our society, we need to understand the nature of sustainability and find a common ground for a conceptual framework. |9