In my first article, I talked about spreading the message of green software within organisations. I addressed grassroots change and the importance of organisational support for change. In the second article, I talked about success factors, measurements and metrics to ensure your organisation is fully supportive of greening software.
After having identified the business benefits of adopting green software—as well as the broader societal reasons for this adoption!—and gained early buy-in for this change, you'll eventually hit your next challenge: who drives this change?
Green Software Engineering should be self-sustaining
In 2002, in The Tipping Point: How Little Things Can Make a Big Difference, Malcolm Gladwell explored the science behind human behaviour and the adoption of practices. He defined a tipping point as "that magic moment when an idea, trend, or social behaviour crosses a threshold, tips, and spreads like wildfire."
I believe that Green Software Engineering has the capacity to be self-sustaining, in the same way that organisations have previously adopted various methodologies and practices as a new default, from Agile and Test-Driven Development to the use of Microservices and Open-Source Software. Admittedly, organisations are at various points on this change journey. However, we aren't yet at this tipping point for Green Software Engineering.
Part of our role should be to make our own evangelism unnecessary. We should build the structures, conduct training, and adopt ways of thinking to make green software the default.
I mentioned that grassroots adoption and evangelism can influence the behaviour of your peers. Gladwell goes further, talking about the need to create a community around people to drive a fundamental change in people's beliefs and behaviour.
In that mindset, making green software ubiquitous, today I’ll focus on the capabilities an organisation should build. These new capabilities are people enablers, to create green software, and support the practice of new skills.
I’ll close by setting the scene for future articles on the actual nuts and bolts—the fundamental activities—that teams can adopt; for example, reporting and instrumentation, to write, improve, and use green software.
A brief recap...
We know the importance of a green mindset, and strong sponsorship and champions within your organisation.
We also understand why organisations might want to green their software, and how each organisation can identify and measure their unique benefit, within the technology or governance of your organisation.
The final leg of this stool is the doing function, the mechanism by which we train people, improve processes, and change the way we work.
What do I mean by a “doing function”?
Being deliberately vague here, a doing function is any team or group of people which is capable of helping your organisation to build capability, adopt new practices, and shift the status quo.
If we use the adoption of Open Source, or Inner Source as a model here, your Green Software function might already be well established. Larger enterprises may have several teams looking at various different aspects of Green Software.
Here are some approaches that might be suitable for your organisation to adopt as a doing function, as there is no one size that fits all. What works for an open-source project or small to medium business isn't necessarily a good fit for a larger enterprise.
And your organisation may want to adopt multiple approaches to reach your end goal.
Approaches you could adopt
Centre of Excellence - A Centre of Excellence (COE) is often the most formal organisational construct for sharing knowledge. This is usually a group of people or a team that can coordinate training, process improvement, and knowledge sharing.
Community of Practice - The term Community of Practice refers to people that share a passion or interest. It provides a forum to share information and for peers to learn from one another. These communities of practice often form organically, but can be harder to sustain, as people can rotate in and out of the community based on need, and the amount of time they have available.
Project Team or Committee - A project team is a good way to start sharing Green Software practices. For example, you can set up a project team or committee for creating a training plan for your organisation. This approach could also be suitable if your Green Software initiative is to be delivered by a corporate function, such as human resources, or learning and development. However, unless your organisation has such a deep interest in green software that the practices become self-sustaining, this is unlikely to lead to lasting change. This is because project teams are usually a temporary construct, and by their nature have an expiration date.
Network of Representatives - In a highly federated engineering or manufacturing organisation, you might have a network of representatives or champions that come together to share best practices. These are similar to a community of practice, but are formally embedded within each product team to champion the adoption of the new change.
Your organisation may use different terms for some of these approaches, which perform a similar activity, but the overall ideas should be applicable anywhere.
For the rest of this article, I'm going to focus on a Centre of Excellence, the activities you could start with, and how you can sustain this, but the advice should be broadly applicable to every approach.
Centres of Excellence: Getting started
By this point, I'm assuming you have an understanding of who your business sponsor is for this initiative, and the success factors you're driving towards. If not, you might want to refer back to articles one and two, spreading the message of Green Software, and measuring success, respectively.
So, you've established a Centre of Excellence, or COE. Well done! Your journey is just beginning. As you spread the message, you may have identified supporters and those with a keen interest in green software.
Your COE will need to begin by creating a clear purpose for being, identifying the roles you require, how you will share knowledge, and why joining or working with your community is valuable for your peers.
Framing the purpose
The core group that establishes the COE will be the centre of your community and are responsible for building trust with the rest of the organisation, as well as setting a positive culture. You'll want to spend time as a group ensuring that you all have the same common goals and purpose, as this will influence the activities you undertake.
Identifying roles - and your community of practitioners
As you set up your COE, you'll be negotiating formal roles that might be set by your organisation, and the ad-hoc roles that you fall into through practice.
The role of your COE may initially aim to create a community of practitioners that care, deliberately seeding some elements that a Community of Practice would otherwise take on.
You may want to invite the supporters you have identified to join the COE, either formally if you are able to do so, or as part of a broader community. As the core of your community, you might want to adopt them formally into leadership roles or ask them to present and share their experience. By adopting supporters formally into your community, you can increase motivation, and keep engagement high.
COE members appointed to leadership positions could represent the interests of their community; for example, a technical community, such as frontend developers, or a geographical community, such as those located in a specific office.
Sharing knowledge and maintaining engagement
Your COE will need to identify how knowledge will be shared. First, synchronous sharing. Will you have a regular community call, or an in-person meeting? Is your organisation entirely remote, hybrid, or are you separated across different geographical locations?
Most organisations will also have formal channels for sharing tacit knowledge in an asynchronous fashion. Think manuals, standard operating procedures, code, newsletters, and instruction guides. Keep things simple and frictionless as you can, remembering you're another place for people to spend their precious attention. Sending out polls in Slack, Teams, Yammer, Workplace, and other social networks can be a lightweight way to maintain engagement.
Making adoption irresistible and irreversible
Early activities of your COE should focus on what community members can gain by adopting Green Software principles, and by changing the context of Green Software. Ask how you can remove barriers to make it frictionless to create and learn about carbon-efficient software.
What's in it for me?
We need to put ourselves in our colleagues' shoes. We're probably yet another demand on their time. So we need to show the personal benefits that learning about green software can bring to each person.
For example, supporting your COE could support an individual's career development, as they pick up and learn new skills. It could also be a chance for them to make a significant change for their team, such as improving a DevOps pipeline to make it more efficient or maintainable.
I recommend creating personas to represent the types of people within your organisation that you are looking to support. For example, consider a full-stack developer persona or a salesperson persona. You can then identify different needs, goals and motivations they might have and select or prioritise activities accordingly.
Making it frictionless
Just as I've been writing about how you can get started with Green Software, your peers will need pointers and support to get started.
One approach you can use is recipe cards or small activities that you can promote within your organisation. These could be posted on an intranet or emailed out regularly to interested people across your organisation. Each activity should have a time attached to it, from small activities that could take 5 minutes, such as reading an article, to hands-on activities that may take multiple hours, such as e-learning modules, or self-study software labs.
Centres of Excellence: Continuing into the future
This is the start of your journey by pulling together a like minded team. Whether that's informally as a Community of Practice, a formal Centre of Excellence, or some other vehicle which works for your organisation, you now have a direction and the start of a plan.
In future articles, I'll be focussing on more detailed activities and approaches that your teams can adopt, including observability, instrumentation, devops practices as well as incentives for change and the use of nudge theory. The team you pull together will be key to adopting these techniques.
As your community comes together, please remember that we, at the Green Software Foundation, need your help. Your community will be well placed to support our open-source projects including:
The Principles of Green Software Engineering - Training on reducing the carbon emissions of a software system. Your community can contribute their thoughts.
Awesome Green Software - As your community contributes tools and ideas, promote them here.
Green Software Writers - As I've done, ask your community members to write about their experience with green software.
And finally, you could reach out to our Green Software Speakers community, to speak at an event your community runs. Or you may want to speak about green software yourself. Either way, you can find a lot of resources and support from us.
Other Articles in the CTA on Green Software Series
This article is licenced under Creative Commons (CC BY 4.0)