The application of green software principles is increasing rapidly
The SOGS survey asked software practitioners, “Which of the following green software principles do you incorporate into your development projects?” The results reflect a wide range of approaches to greening software development:
- 56.54% optimize code by measuring its energy consumption/carbon footprint
- 44.59% minimize the amount of data their software sends/receives
- 35.2% maximize the utilization of their hardware
- 24.73% create software that is energy-efficient
- 20.93% create software that can run on older devices/hardware
- 11.08% create software that is carbon-efficient
- 8% create carbon-aware software
Comments from respondents of the survey provide more insight into why they might be focusing on particular aspects of green software and the barriers they face in adopting other green software principles.
Energy-related financial costs and software efficiency were mentioned as priorities for customers. One respondent shared that their organization did not intentionally follow any green software principles, but claimed that cost considerations might contribute to greener software: “None of these, we don’t have time to spend on it. However, we are trying to reduce cloud cost, and by consequence I would say it contributes to reducing the carbon footprint.” One software practitioner told us, “Carbon footprint is never a question, efficiency of software is. Clients want fast results, whatever it takes.” Other respondents mentioned that their organization’s focus on performance optimization was an indirect, but not intentional, way that they follow green software principles. A software practitioner told us that they prioritized optimization and performance not because it was “green” but because it was “common sense.”
Several survey respondents also mentioned factors that go beyond the efficiency of the software itself, such as circularity, sleep modes, and renewable energy. Software practitioners have clearly expressed that they want more information to make informed decisions. One respondent shared, “Often we’re beholden to the cloud provider we use e.g. AWS - it would be great if AWS had labels next to instances or explorer views that showed us sustainability recommendations.”
One person suggested more of a focus on patterns: “I see a lot of emphasis on shifting to carbon-low places or times for computations, but would welcome more attention to go to minimal architectures and patterns. Remove unnecessary envs, checks, components, microservices, deployments, as examples.” Another person suggested focusing more on greener programming languages and libraries as sources for reducing the environmental impact of software.
Some respondents said they did not apply any green software principles to their software development because their employer did not value green software and they were not familiar enough with green software principles. While software practitioners are adopting a number of green software principles, there are still a number of barriers to implementation.