This research aims to create a comprehensive and reliable repository of best practices for developing sustainable software. This collection will serve as a go-to resource for practitioners, making it easier for them to access credible, effective, and up-to-date sustainability practices. Our approach is designed to ensure the reliability of the practices included and their relevance to current industry standards.
Our literature review was initiated by consulting an industry expert with extensive knowledge as a foundational starting point for identifying key resources. We sought to gather a broad spectrum of materials but carefully evaluate each based on specific criteria. To ensure we were drawing from high-quality sources, we created a structured set of selection guidelines that included:
- Relevance: The resource must align with the key aspects of sustainable software development
- Credibility: Only authoritative sources were included.
- Recency: The source must be relatively recent to reflect the latest trends and technologies in sustainability.
The research method utilises a systematic review and thematic analysis approach. This consists of a structured method that involves identifying, evaluating, and synthesising existing research and industry resources to extract best practices and categorising findings into five core themes (or categories) based on patterns observed in the collected resources. This approach leverages evidence-based research to consolidate knowledge and provide actionable insights without altering the integrity of the original sources. This ensures that the identified practices remain aligned with current, credible standards and uphold the reliability of the findings.
The screening process followed a systematic approach to reduce bias and ensure diverse perspectives. To achieve this, we established rigorous inclusion and exclusion criteria:
- Inclusion Criteria: Resources that meet the relevance, credibility, and recency standards outlined earlier.
- Exclusion Criteria: Materials that are outdated, lack evidence of practical application, or have a commercial focus, including marketing materials or direct product or sales-related material.
Multiple reviewers participated in the screening process to help reduce personal biases and ensure a more holistic view. Each reviewer was tasked with independently evaluating resources based on the criteria, followed by group discussions to address potential discrepancies and ensure consensus. This peer-review process adds rigour to our methodology, minimising errors and providing greater reliability.
Following a rigorous screening and analysis process, we systematically evaluated and synthesised the identified resources into five core thematic categories. These themes were established to provide a clear, accessible, and comprehensive structure for sustainable software engineering best practices—reflecting the area’s most critical to reducing environmental impact across the software lifecycle.
The five categories are:
- Energy and Resource Efficiency
- Software Architecture and Design
- Sustainable Development and Operations
- Sustainable Hardware and Infrastructure
- AI and Emerging Technologies
This categorisation is the result of a methodical review and consolidation of best practices drawn from research, industry experience, and real-world application. Our methodology ensures that the resources provide explicit, actionable practices to reduce the environmental impact of digital products and services. We carefully documented these practices, aligning them with the relevant category listed above. The structure is designed to be practical and easy to navigate enabling users to pinpoint relevant practices quickly and apply them in context. Rather than summarising each resource, our approach aims to direct users to the original materials, preserving the depth and usability of the source information to support organisations in identifying the most effective levers for sustainable impact. Users are encouraged to explore the full details through the original owners.
To enhance the usability and accessibility of the repository, each resource has been annotated with a recommended level of technical expertise. These levels—Beginner, Intermediate, and Advanced—are intended to support users in selecting resources that align with their existing knowledge and needs, thereby facilitating more efficient navigation and engagement.
- Beginner-level resources provide high-level overviews and conceptual explanations, offering accessible entry points for individuals with limited technical background or those new to sustainable software practices.
- Intermediate-level resources strike a balance, presenting moderate technical depth suitable for practitioners with some familiarity with software development concepts.
- Advanced-level resources include in-depth technical guidance, such as detailed implementation strategies, code examples, and low-level optimisation techniques, targeting experienced practitioners and technical specialists.
This classification system ensures that the repository accommodates a broad range of users and encourages incremental learning across varying levels of expertise.