Dave and Mark presented a talk on sustainable software engineering at BelTech earlier this year:
It’s my pleasure to introduce our first talk of the day. Talking about ‘Software Sustainability and Impact’, let me introduce David Anderson, Technical Fellow at Bazaarvoice and Mark McCann, Architect at Globalisation Partners. Please give them a warm welcome.
Software Sustainability and Impact
Firstly, I’d say it’s brilliant to see everyone here in person and everyone online as well. It’s fantastic to see familiar old bakes (face) and some new friends. So what we’re going to talk about today is Sustainability, Software and Impact. I think this is a fascinating topic to start off with. Maybe this is new and you haven’t heard of it before. So it could be something that will set you off in a different direction for years to come.
I think sustainability will have a bigger impact than security and data regulation!
So the title of the talk is ‘Sustainability, Software and Impact’. You are probably thinking: ‘why are those two lads standing there? What’s the connection?’ We were busy last year writing a book called ‘The Flywheel Effect’. And it is about how we combined business strategy and technical strategy to create a flywheel effect. The tech strategy we looked at is modern cloud. And the business strategy is devised through Wardley mapping.
This combination has been our secret sauce over the last 10 years. And sustainability and sustainable software are key themes in the book. There’s a lot more to it and it’s available for preorder on Amazon now!
What is sustainable software engineering?
What is sustainability?
The United Nations define it as development that meets the needs of the present without compromising the ability of future generations.
Can we deliver, can we build systems and can we deliver our business needs in a way that can go on forever? What are the cloud providers doing?
A couple years ago, all data centres represented about 1% of global electricity use. That’s grown massively as more workloads move to the cloud. AWS, Google and Microsoft have made great strides over the past number of years in their sustainability journey. Google and Microsoft have been a little ahead in their journey. But AWS is rapidly catching up.
They all have strong commitments to be fully sustainable in the next number of years. And it’s not through offsetting, greenwashing or vanity stuff. They are truly going green. By building out renewable energy, waste management systems and holistic sustainable life cycles. They are at the forefront of this sustainability revolution. For those who are still on premise, you need to question your ability to be fully sustainable by 2025.
That stat about global data centres using one per cent of global energy is crucial. With the rise of technology, that global energy need will increase tenfold in the next 10 years. So companies need to reflect on what they can do differently.
AWS Sustainability Approach
One way to describe it is with this diagram. AWS came out with their software sustainability story at AWS re:Invent 2021. Werner Vogels (VP & CTO Amazon.com) used this diagram to explain the standard that AWS has. And I think it is a great way of describing it.
Mark and I are friendly with Adrian Cockcroft who heads up Sustainability at AWS. We have been talking for the last couple years. And he gave us an early heads up that they were thinking about Sustainability. He actually created a concept.
AWS has a shared responsibility concept. They run the compute or computer and you run the software. So there’s a line between their responsibility and your responsibility as a cloud user. Adrian took that same concept and applied that to sustainability.
AWS has responsibility for the data centre, cooling the servers, and managing water usage etc. Everything that is needed to build a data centre. And that’s what they report on. Your responsibility, as a customer, is for the cloud software you write. Your stored data, how you deploy things and recency of your code. AWS are not going to tell you to write more efficient software. That’s your responsibility.
Software sustainability regulations are coming
Regulations and customer demand are coming! Delivering sustainable technology is becoming mandatory for organisations.
Recently SEC.gov, the US Securities and Exchange Commission proposed guidance that all publicly listed companies disclose greenhouse gas emissions and have them verified by a third party. This is coming out from the government level. It’s coming at C suite level. You are going to be asked about your workloads. And you are going to be asked about your business. What is the sustainability impact? And what is your carbon footprint? Also what are you going to develop?
The needs are going to start coming for all of us in the room. And by using technology we are going to have to start answering these demands. For our business, our bosses, the C suite, and for our customers.
Customers are becoming more informed about sustainability. They’re going to start asking for sustainable solutions to their needs. And they’re not going to accept that you’re delivering the software, but you’re not sustainable. They’re going to move to customers, suppliers and providers who can actually deliver a sustainable solution.
The link between sustainability and technical debt
So this is coming thick and fast. The key point here is, are you ready for that? We can get ready. Tools are becoming available, technology is becoming available. There’s nothing stopping you building sustainably.
We need to be ready. Regulation is not going to be tomorrow. But if you are a big company, are you actually thinking about what would happen if you were asked to report on carbon burn for your software? If you’re a technology company, have you factored in your software? If you’re a startup? Is there opportunity here to help the market?
The rumour is that this may be bigger than GDPR. Is there an advantage for the Belfast tech sector to help companies through this? There will be support required to help the companies to make this change.
About 30 years ago, a guy called Ward Cunningham coined the phrase ‘technical debt’. He was working on a project and wanted a way to describe writing code that after a time needs to be fixed. It’s like a garden. If you plant the garden today, and leave it for six months, it’s going to be in a mess unless people maintain it.
How carbon score can help
You also need to maintain software. And the longer you leave that maintenance, the more it is going to cost.
Technical debt is a wonderful metaphor, but we can’t measure it. It’s very opinion based. So it’s a really hard thing to measure. So we’ve been talking about how to measure technical debt for a long time. One measure we sometimes use is cost. The cost of your cloud application running cost. That’s a good proxy for technical debt.
But then cloud providers have started giving savings plans. And you cannot match that up. So it’s hard.
I think sustainability and your carbon burn per application are brilliant metrics for technical debt. All 3 providers, Google, Microsoft and AWS have carbon footprint tools or sustainability calculators. You could see the usage of your software for the last month. And you may think your software is efficient. But the carbon score can tell you otherwise!
It is worked out to a very finite degree. You can measure technical debt to application through use of carbon. And that relates back to good architecture. Which can be a difficult topic.
These tools are emerging. They’re fine grained for daily activities, in a lot of cases. They will give you medium to long term goals. So you can set KPIs and objectives for your carbon score.
The need for sustainability transparency
The other angle is the ability to give your board an exact efficiency measurement for software. I am going to assume that we never hide inefficiencies as software engineers! But imagine that the board of your org can see your carbon score and equate it to the efficiency of your software. That is a massive boost for transparency that can help you already.
So what do you need to do? What are the steps that you can take? The first one is to shut your data centre! Unless you are a half a trillion dollar company and you have the scale to be efficient. In a recent study it showed that a typical workload saved 88% carbon burn by moving to AWS. There are massive carbon sustainability efficiency gains to be made.
Modern Cloud Wardley Map
You’re probably thinking where is the Wardley map?. In case you haven’t seen this before, I’ll talk you through it.
This is a technique that Mark and I have already been using for many years. We use it for our strategic analysis. The guy who came up with Wardley Mapping is called Simon Wardley. And his technique has been around for 15 years.
If you look at the x axis along the bottom there from left to right, we have ‘Genesis’, ‘Custom Build’, ‘Product’ and ‘Commodity’. Every capability or component evolves during its lifetime. When something appears it’s a new capability.
For example, software in the cloud or ML. They fall under ‘Genesis’. This thing is new and has never been seen before. It is a differentiator. If it is valuable, it will move towards the left to fall under ‘Custom Build’. We may not fully understand this thing, like ML. But some people can custom build and capitalise on it. It’s hard to replicate but we are starting to figure out what it is.
As it becomes more valuable and we understand it more, it moves further to the right. And it falls under ‘Product’. Product is when the customer demand establishes. We’re starting to get good at this. We meet customer demand. We refine and start to churn the product out. Eventually it moves over to fall under ‘Commodity’.
Years ago, servers fell under ‘Genesis’. Then we custom built our own servers. After that we could buy one. Now we just rent one when we need it.
Wardley Maps start with customer needs. We have the CEO as our customer of sustainable software. The CEO is the anchor user on the map. They can see things at the top, but the things on the bottom right are less visible.
Confidence in tech
Your CEO wants confidence in your technology department. You want to make sure that the technology your CEO buys is effective. Confidence is based on stability. The stability of being able to run your technology.
You need 3 things to achieve that stability. Operational excellence, which is the ability to run the software and respond to events, etc. Security, being able to prevent your software being hacked or compromised. And reliability, the fact that it doesn’t fail.
Operational excellence, security and reliability require cloud capability. Across the bottom, we’ve mapped the pipeline from modern cloud to legacy code. Those are the basics for a cloud solution. If your platform is built in the cloud, then these are your three basic requirements.
And you can get that from moving from your data centre, straight into the cloud by lift and shift. You don’t need to really architect it. You have a piece of software that’s reliable, secure, and you can operate.
We are talking about confidence in tech. If you want to maintain that confidence, you need to keep innovating. And you need to keep evolving. You can’t lift and shift, stick in the cloud and then stop. Because things evolve and needs emerge.
To maintain confidence in your tech department and your tech team, you need innovation. You need to optimise performance and look after performance efficiency.
Can you do better for less? Look at your cost optimization. You need to manage and drive down the cost of your solutions. In order to invest in innovative capabilities for your business needs.
Finally, to maintain confidence in tech going forward, you need to answer scalability questions. And provide your CEO with data, metrics and dashboards to show how sustainable your solutions are.
Sustainability as a forcing function
As we said earlier, sustainability measures a good proxy for technical debt. When you bring in that innovation you start to see modern cloud capabilities. Speed, low cost, the ability to move fast and be responsive and nimble.
If you bring in sustainability as a forcing function, you look at the cost of your systems and you reduce those. And you look at the performance of those systems. Your technology team focuses on what I describe as higher order items.
You’ve got your basic role and capabilities covered. You now learn the higher order capabilities of sustainability, cost and performance. That force function brings your cloud stance from legacy to modern. You can drive ahead.
In my opinion, high performing companies will have a modern cloud capability. It’s worth thinking about your software. Is it legacy or modern? You may be on the cloud, but you can still have legacy software.
Well architected is key
Well architected is key to this. We are huge fans of the AWS well architected framework. Microsoft and Google have similar frameworks, pillars and questions. But this framework has proven gains on how to deliver tech solutions with confidence. And it’s hard and proven over thousands of engagements with a fast feedback loop.
We’re constantly evolving, iterating and updating the guidance. It’s something we use every day. When you embrace these pillars, you produce stable, efficient and sustainable systems. That allows you to focus on your user needs. You’re spending more time on business needs and delivering customer value, rather than engineering. So it positions you well.
Operational excellence is how to run and monitor systems to deliver value and approved processes and procedures. Security is protecting your information, systems and assets, while delivering business value. Reliability is how you recover from failures. How do you scale to meet that demand? And how do you handle disruptions?
Performance efficiency is how you use your resources efficiently. And how do you maintain efficiency as you scale up and down? And cost optimization is how you avoid unneeded costs.
Finally, the new pillar that came out at AWS re:Invent is Sustainability. And that’s guidance on how you can deliver sustainable software as you meet the challenge. And as Dave mentioned, there’s a forcing function that drives improvement across all the other pillars for your solution.
Next steps for sustainable software engineering
Laura McFarland will actually talk about Well Architected after us.
The idea of green software is actually not new. It has been around for a while. There’s different resources out there. The Green Software Foundation is quite good. It’s an open source foundation that brings a lot of resources together. It’s a good place to start. I would thoroughly advise and encourage you to go look that up.
There are also the principles of green software engineering. It looks at things like serving an image on the web. Does it need to be maximum HD resolution or can you drop it? If you’re performing a task, can you run it in a batch and slower? Do you need to have lots of things running in parallel or can you throttle it.
In the old days, when I started writing software, you worried about network, compute and storage. They were restricted. So this is that old principle coming back again. There’s lots of practical advice.
The difference now is that we’re seeing cloud providers come in and act as a forcing function. In the bottom left, there’s the carbon footprint tool from AWS. If you’re on AWS, you can log into the billing area. You can look at cost and your carbon score for last month but that will be more detailed over time.
On top right you can see the sustainability measures for AWS data centres all around the world. Europe is quite good. They’re all quite green. North America and South America are pretty good. They are green and amber. There is work to do around Asia and Australia. Australia is interesting. The electricity grid in Sydney runs on coal. So that’s why it’s red.
You can unlock where the high sustainability data centres are. And you could effectively move your workloads to a more sustainable environment.
Go deep on your user needs
Understand your users and understand their needs. And then only build what is needed to meet those needs. Don’t over engineer to build for some future that might never happen. Double down on Discovery, understanding your users, their needs and meeting those needs.
Not everybody needs low latency solutions. And not everybody needs to be available 24/7 365 days a year. Only build what you need.
Secondly, take this very seriously. The big 3 cloud providers are taking this seriously. Leverage them, move your workloads to them, and start to think about your sustainability and carbon score.
Thirdly, Serverless First positioned us to do this well. If you have a serverless first mindset approach, you will be well on your journey toward building solutions that are sustainable. And pay for what you use, scale up and down with demand, leverage managed services and have less code liabilities. Move that responsibility on to the cloud providers.
Every day, they’re making it more sustainable and efficient. They’re offering new capabilities and features, like the ARM chipset and Graviton. If you position yourself well, you can take advantage of these things within days or weeks of them being announced and released.
Follow the well architected sustainability guidelines. The pillar and the question sets have really good guidance on how to position your workloads in the right region to meet your SLAs. And how to scale up and down in a sustainable way and choose the right architecture and designs for sustainability.
Also how to manage your data in a sustainable way. Typically, a lot of that is stuff you don’t use. Data is a liability. As well as code is a liability.
And lastly, look at your development and deployment practices. Do you really need 50 Dev environments for your team and 300 databases when you can design to have one or two? This guidance and questions will help you deliver sustainable solutions.
Motivate your teams for sustainability
We talked about sustainable software development and regulation. I think it’ll take some companies several years to make this change. It depends how mature your technology is. And it comes down to the approach your org takes.
Unfortunately many will ask their computer science grad to save the company some money. But if it is a $10 billion company they are not going to want to save money. ‘I’ll do what you are asking of me, but I’m not super motivated’.
Or they could ask the grads to clean up the data. But they are not in the data team so ‘I’ll see what I can do’. I know this from being that person/grad years ago. Or they could ask the grads to secure our system. But they are not in the security team. That’s their job. Again ‘I’ll do what I can’.
But when you say that we need to reduce our carbon burn for our software, because there’s an impact on the planet. That is much more engaging for an engineer than any of the other three. It’s not just compliance regulation. There’s actually a motivation. There’s intrinsic motivation to do this for everyone.
In our ‘The Flywheel Effect’ book, we talk about the flywheel effect and the impact sustainability will have. The book is available for preorder on Amazon. And it will be released at the end of the year.
We also have a blog at The ServerlessEdge.com. And we have a podcast called ‘Serverless Craic’. I’m still not quite sure what we’re doing. We just turn up and talk! Follow us @ServerlessEdge on Twitter. We’ll keep talking about this stuff and more. So thanks for listening.
Transcribed by https://otter.ai