There's a growing understanding of the need for organisations to "be green" or consider sustainability, but where should you start? Check this article for ideas and guidance.
Many conversations focus on the need for business leaders to set a direction. In this post, first in the CTA series, Chris focuses on how to support software engineers and other technologists to take practical action.
I've been invited to regularly write and share my thoughts on spreading the message of green software; why this is important, and other trends I'm seeing in this space. I'll start today by talking about top-down, and bottom-up change.
Geoffrey James, in the Tao of Programming, said "Let the programmers be many and the managers few - then all will be productive."
This viewpoint has some validity. I'm incredibly aware of the drains on my productivity and creativity from context switching, but it fails to take into account the positive benefits that a strong support structure can provide, including supporting change, training, and the development of new skills.
Our development practices aren't set up to be green
Let's be frank. Changing software development practices to be green is a major shift in thinking. We can distill green software generally, into optimal software - software that uses the least compute to do the most necessary tasks.
This concept isn't as radical as we may think. Software optimisation used to be the norm, to fit limited memory, and compute; but the rise of infinitely elastic capacity (as far as your wallet will stretch) has, I'll admit it, made many developers lazy.
Yes, the best of our work optimises to shrink website payload for faster load time, or we optimise software for Internet of Things Devices out in the wild and many other great examples.
But I'd strongly rebut any idea that this optimisation is the norm. That’s why we need change.
To green our software, we need change
We need change because making software green won't just happen. For change to take place, we need:
Easy access to knowledge
Accurate and useful information about writing green software
The tools to measure green software metrics over time
Support to undertake training
Capacity to adopt the practices of green software
Awareness of the importance of green software
Organisational reinforcement
The Green Software Foundation is supporting many of these aspects; developing training, a software development kit to support measurements and a standard to ensure developers are measuring in the same way.
The key factors we can't directly influence are creating organisational support and driving awareness of green software, especially within organisations. This takes me onto top-down organisational change and bottom-up advocacy at the grassroots.
Building organisational support for change
Organisational support will be the biggest driver to support adoption. Without sponsorship and buy-in, it will be difficult to encourage teams and individuals to adopt new practices, or to take time away from current activities.
For change to work, people need to feel dissatisfied with the old way of doing things. People also need to feel confident that the new approach will be better and there's a clear route to get there.
In 1977, Beckhard and Harris published a book about organisational transitions. Their "change equation" demonstrates that for change to take place, there has to be sufficient dissatisfaction with the old way of doing things.
Change takes place when people are confident that a new approach is better, and that it's achievable. The first steps you take must be clear, and carefully planned.
It can also be helpful to think about what the negative outcomes of not making the change would be. What will happen to our organisation and our teams if we don't green our software?
And change within organisations can go two ways: top-down and bottom up from grass roots.
Top-down change - actions you can take
Top-down change requires buy-in and support across an organisation. Here are some pointers you could follow.
1. Consider the values that motivate your organisation, or the drivers you see day to day; as well as what personally motivates you. One person can't do it all, but you can work on building momentum.
Values you might want to consider are:
Employee happiness and impactful work. Making software greener is a responsible thing to do.
Cost reduction. Reducing carbon emissions can reduce energy consumption, which can reduce cost or compute time, allowing you to reduce cloud spend or on-premise electrical bills.
There may be other factors such as the sustainability agenda and responding to customer needs and demands on that front.
2. Having considered those factors, consider identifying a senior sponsor or sponsors in your organisation that buy into these values. This person or persons can help to support the change, and help win support from across the business.
3. Working with your sponsor, identify what success could look like and consider the structures you'll need to get there. I'll talk about this more in a future article.
This might seem insurmountable. This might seem like a lot. Your organisation might have a rigid approach to change, or you might not feel confident taking on the ingrained processes of a massive organisation. But there is also another way!
Grassroots advocacy for green software
Grassroots advocacy within organisations and with external meetup groups can be another way to identify like-minded individuals or create the impetus to change.
A grassroots model means creating ad-hoc interest groups or after-work discussions in which like minded people can socialise and begin to share information about green software.
We're all human. As software engineers, we learn from role models, change our attitudes based upon the behaviours we see our peers undertake, and we grow through new experiences.
The power of grassroots change is often heavily underestimated. But they influence the attitudes of those around us. Attitudes are formed through socialisation and exposure. By raising discussions around green software, sharing best practices, or by starting the conversation, we demonstrate a commitment to change. In doing so, we begin to create openness to changing practices in our peers. When attitudes change, we override our old attitudes and create new behaviours.
How and where could you get started?
Change starts from within. Here are actions you could take, to start driving grassroots awareness within your organisation.
Consider starting an internal conversational group to discuss your current software development practices and propose improvements. Every session, for example, you could discuss a different item in the Awesome Green Software repository.
Mention green software at a sprint retrospective or in a benefits realisation session. It raises the topic, as something you could improve in future sprints, or on future projects.
In an Agile team, consider proposing software optimisations as a topic for your "definition of done." It may not get adopted immediately, but the cost benefits over time, or improved performance benefits could add up. Most importantly, it starts the conversation.
Reach out to the Green Software Foundation. Consider putting yourself forward as a speaker yourself, to talk about your experiences of driving Green Software at your organisation.
Feel free to reach out on Twitter, LinkedIn, Medium or our Forum on Discourse when it is set up, and share with me other topics you'd like me to cover, for practical actions you can take to spread the message of green software.
This article is licenced under Creative Commons (CC BY 4.0)