The trouble with using green as an adjective is that historically it has been a negative one. A green product manager was either inexperienced, about to be violently sick, or possibly both. Not someone you want to be in a meeting with. Even over Zoom. Even if they have the sound off.
Green, however, is now good. More than that, it’s necessary. A green product manager is one who can design a product or feature and a user experience that minimises carbon released during product development, test, and operation. Being green is already an ethical and future-proofing requirement for products, but we predict it will also soon be a legal one. Ironically, however, almost all product managers are indeed inexperienced at this. We’re green at being green.
The green palette
As we discussed in our recent community whitepaper on sustainable development there are four things to think about when building green software:
- Operational efficiency (i.e. how and where it will be run).
- Architecting for minimal carbon (how it is designed).
- Hardware efficiency (in particular, how end user devices will be managed).
- Context-aware energy efficiency (how to minimise CPU/GPU and network use at times when electricity is carbon intensive).
You might be thinking, “but those are all developer decisions, not PM ones!” and you would be half right. You can’t guarantee a product minimises its carbon emissions without the cooperation of the engineering team. However, as a PM you can help enormously by specifying greeness is a product requirement and then not actively stopping them from delivering on it.
How to wear it
Being green is good for products. It’s cheaper to operate and less risky. These days, a green PM might expect that an informed engineering team will make sustainable operational choices by default like:
- Hosting in green regions (where there is more wind, solar, nuclear, or hydropower in the local grid, for example).
- Using cheaper and more climate-aware hosting options like spot instances, managed services, or serverless.
- Taking time to turn off old systems that are little used.
- Not running CPU intensive jobs like ML calculations at peak demand times or when there is a shortage of sustainable power on the local grid.
Hurray! It's a no-brainer. As a PM you don’t need to worry. It’ll just happen!
Hold your horses. Unfortunately, being cheaper and safer in the long term is not always sufficient reason for something to take place. As a PM, you still need to make it crystal clear to your engineering teams that being green is a product priority, because otherwise it will inevitably conflict with shorter-term demands.
Are you sure your engineering team is informed when it comes to being green and do they grok that it is a non-negotiable requirement? “Sustainability” is now one of the AWS architectural pillars but it is a recent addition. Your developers may not have got their heads round it yet.
Even if they are fully up to speed on architecting for sustainability, if there were a feature it would take them longer to implement in a green way, what would they do? If you don’t make your priorities explicit, they might assume that short-term speed of delivery matters more to you than sustainability. Maybe it does, but be up front about that. Own the decision.
Time is money and if green is slower or more effortful, it might well not happen. Bill Gates refers to this as the Green Premium. Right now it often costs more to be sustainable. We need to reduce that green premium ASAP or it might not happen. The good news is there are options that are easier for development teams AND greener.
The public cloud providers have all set ambitious green goals, and the easiest way to go green is usually to piggyback on their efforts. That means the more managed a cloud service is the more green it is likely to be and the less effort for you. That takes us back to the advantages of managed services, spot instances and serverless.
As a PM, the most effective action you can take to ensure your products are green is to ask for them to be, and be clear that if there is a green premium you are willing to pay it. If you never tell the engineers that you want a product to be climate friendly then sorry to break it to you but it’s your responsibility if it isn’t.
So, apart from making your desire to be green explicit and minimising the cost using managed services, what else can a PM do?
Lean is green
Fortunately, one of the greenest PM decisions you can make is also the fastest, cheapest, most secure, and easiest to maintain.
It‘s to do less.
The most obvious step a green PM can take is to not implement a feature unless you are SURE you need it, and never without regard for the ongoing financial cost, which is often a shorthand for carbon cost.
Are you really happy to spend £20,000 a month (with a matching emission cost) to add another index for the three people who may want to filter data in a new way? Or could you satisfy those people another way? It’s great if you turn off services and features that you discover are no longer being used (beware of zombie services, as Holly Cummins wrote elsewhere on WTF), but we all know that rarely happens. It’s much better not to build them in the first place. However, the worst climate offender isn’t features.
The most subtle environmental antipattern is saving too much data.
Less is more
“Data is the new oil. Keep it in the ground”
- Justin Cormack, CTO Docker
Data really is the new oil. It’s bad for the environment.
According to tech sustainability expert Paul Johnston, “Data makes applications harder to move, upgrade, replace or shift. It's rarely the compute/code that can't be moved.” But this isn’t the only problem. Data makes applications bigger, slower, and more energy intensive.
Collecting or keeping more data than you need is one of the most common sustainability mistakes a PM can make. The key data antipatterns are not having a plan for when to delete data, and not designing for deletion from the start. Data may seem cheap but it isn’t. The size of your database is a drag on every operation, requiring more energy and generating more carbon emissions, and it is an area where overspecification is common. Save less data. Your planet requires it.
Smarter clients are greener
Clients that are smarter and more resilient are also often greener, and designing for unreliable connections tends to be more sustainable too. Smaller data packets and more sophisticated clients pass less data around and require less work to take place on servers. For example, does data update frequently—too frequently to be useful to clients? Let clients decide when they need to grab new data.
Efficiency is not always the best option
- Baden Powell
Green software is only partially synonymous with efficient software, because all electricity is not created equal.
As time goes on and more renewables go into national grids, there will be a glut of electricity at some times (on sunny, windy days) and too little at others (dark, calm days). Having too much electricity in a grid is actually more dangerous than too little—a brown out (too little) is less destructive than a blown wire (too much). You are doing the grid a favour by pulling electricity out of it when there’s too much of it buzzing around, and doing the world a disservice if you force an emergency gas-fired power station to come on line because of additional demand you have placed when there is already too much.
The result is that writing efficient code is useful if your code has to run all the time. However, it is a better option to have systems that:
- Are less time sensitive or
- Perform energy-intensive operations in advance when electricity is cheap, free, or you may even be paid to use it. This concept is the foundation of the grid balancing market which exists in most major countries.
Pre-calculation and pre-caching of complex results might sound inefficient—90% of the time you might just throw them away unused.. What a waste! Except it might be by far the greener option if those pre-calculations were done when there was an energy surplus. It would mean the results were returned faster too. On-demand is one of the worst green antipatterns. Pre-calculation, caching, and eventual consistency are far more sustainable approaches. Architect to reduce latency sensitivity.
“Embrace eventual consistency where possible. This reduces the strain to the rest of the system optimizing the computations”
- Luca Mezzalira - Principle Engineer, AWS
If green isn’t the default it’s not green
“An antipattern would be needing the user to do something to get the green outcome rather than baking it into the product. Don’t make it optional”
- Adrian Cockcroft, Ex Netflix, AWS Sustainability.
We’re not baddies. Everyone wants to be green. Life, however, gets in the way. As a PM, you can preside over any number of cool features, but if they aren’t the default, they mostly won’t be used because even with the world melting around us, climate change is still not users’ top priority. Make it the default or you may as well not have bothered.
“You wouldn’t like me when I’m angry”
- Bruce Banner modelling the weather
Gathering it all together, a green PM needs to:
- Be explicit that sustainability is a genuine product priority and the default, not merely a greenwashing exercise.
- Make sure your engineering team understands what green architecture means (that AWS sustainability pillar, for example) and that they are following the principles.
- Use managed services as much as possible.
- Be lean. Don’t implement features that you aren’t 100% certain are needed, or collect and keep one byte more data than is required.
- Design distributed and latency insensitive systems rather than on-demand ones. Embrace pre-calculation and eventual consistency. Design intelligent clients that are resilient and can operate independently of central servers.
- Don’t get hung up on efficiency. It’s not how much electricity you use, it's how (and when, and where) you use it.
Finally, a green transformation doesn’t have to be one that leaves you in a hair shirt, or no shirt at all after you’ve torn it off in a monstrous bout of frustration. The most effective green options are ones that make life easier, not harder. You just have to work out what those are for your product. The good news is, they include doing less. As a PM, working out what not to do may be your new, green job.