Some SOGS respondents referred to their interest in broader ethical questions about computing. One individual said, “I’d love to see [green software principles] expand beyond how we build things and into what we build. What is needed? What can we stop doing? How can we be more intentional about how ethical and ultimately useful our products and services are?” Software practitioners concerned about their work’s ethical implications might wonder why they are building particular technologies instead of others. And this especially applies to products that are likely to have a detrimental impact on the environment.
Another practitioner shared, “My last company had a ‘green committee.’ People from that committee said that we could not ask management to stop having customers from destructive and dirty industries. The green committee did not dare to ask for the big wins in carbon emission reductions.” Sustainability and other ethical considerations can conflict with business priorities. When competing priorities become a point of friction, software development teams feel less empowered to advocate for greener approaches. However, Gogoll et al. argue that while larger questions of what technology to build emerge from management decisions and business ethics, software development teams might have some control over the design of specific features, balancing, say, users’ privacy with business objectives.
The Karlskrona manifesto for sustainability design, published in 2015, is an early example of software practitioners and researchers coming together to advocate for sustainability as an ethical intervention. In it, Becker et al. call on software practitioners, researchers, professional associations, educators, customers, and users to come together to integrate sustainability design into software systems.
An analysis of AI ethics codes of conduct, published in Nature, shows that sustainability is part of the list of considerations software developers use when designing and building more ethically sound technologies, along with other factors such as transparency, fairness, security, and privacy. The ACM Code of Ethics states: “In addition to a safe social environment, human well-being requires a safe natural environment. Therefore, computing professionals should promote environmental sustainability both locally and globally.” But as Gogoll et al. articulate, codes of conduct are not a practical way of ensuring software developers build more ethical technologies because codes of conduct tend to group several diverse values without ranking or guidance on how to make decisions. In practice, developers have to make choices, and there are tradeoffs between different values, such as accessibility and sustainability. In their roadmap for ethics-aware software development, Aydemir and Dalpiaz argue that ethical considerations are often less of a priority than time-to-market constraints, and a general lack of awareness about sustainability in software engineering, for example, can make it more challenging to prioritize despite pressure from consumers and governments. They state, “We advocate for tools and methods to enable stakeholders to be aware of ethic issues, articulate their requirements, and use ethics as one of the criteria for choosing appropriate software.” Software practitioners tasked with and taking on the responsibility of creating green software applications require more concrete guidance and managerial support. Philosophical or ethical imperatives are not sufficient.