Focusing on rapid self-assessment, we wanted to create a tool allowing people to quickly self-evaluate their teams or organisations practices to better identify things they might change to reduce the carbon impact of their software.
The Capability Maturity Model Integration (CMMI) is framework often used to assess the maturity of things on a scale of 1 to 5. The first stage typically is to benchmark where you are, then using the framework to guide systematic improvements across areas. Each of the 5 levels of the CMMI then represents a stage in an organisation's maturity as identified below.
- Level 1: An initial state, where processes are often ad hoc and chaotic.
- Level 2: Managed processes indicate that some basic practices are in place.
- Level 3: Defined and standardised set of processes.
- Level 4: Quantitatively managed processes.
- Level 5: Continuously optimised processes.
Our interpretation of CMMI is to define the states for Levels 1, 3 and 5 across a number of pillars which we believe are integral to building greener software. We've left Levels 2 and 4 undefined as transition states e.g. where you think you might not quite be a 3, but certainly better than 1.
Work through each of the pillars and honestly assess your level of maturity relative to the descriptions in this handy scoring guide; fuzzyness is intended to keep things simple and you should apply the 'mostly' principle when considering your scores.
- If you mostly do something, you probably do it
- If you don't, then you probably don't
Utilise the transition levels of 2 and 4 where you believe you don't quite hit the brief.
Having done this average up your scores per pillar using this assessment template to plot them on a spider chart to understand relative maturity across the pillars and which areas you might wish to focus on for improvement going forward.
Repeat this benchmark every 3 months to track progress and review your improvement plans.
You will find the CMMI framework for each of the pillars in the links below
Pillar | Description |
---|---|
Architecture | How the architecture you use can help reduce your carbon footprint. |
Measurement | The ways you can measure your progress. |
Continuous Delivery | How the way in which you build and run your software can help reduce your carbon footprint. |
Service Design | How you can optimise the way you design your software and receive user feedback. |
User Experience | How you can optimise the user experience and also educate your users to make sustainable choices. |
Planning | How you can help carbon reduction at the planning stage. |
Culture | How you can encourage a positive culture both internally and externally. |
Kainos' Green Software Commitment Linux Foundation Green Software For Practitioners Course The Green Software Foundation Software Carbon Intensity (SCI) on GitHub Greenhouse Gas (GHG) Protocol