It isn’t easy to design a new system. Especially living in the world of MVP’s and rush to deliver. Everyone agrees it’s better for an enterprise to deliver fast with quality. Even as engineers though, we keep on having the discussions on whether early optimization is correct or not.
I have no intention on answering this question. Today, I’d just like to add another factor to be taken into consideration, when performing that initial project discovery. It is: resource consumption.
Green Software Engineering is an emerging discipline at the intersection of climate science, software practices and architecture, electricity markets, hardware and data center design.https://principles.green/
I came across the green principles recently. It felt so natural. Eureka. Finally as an engineer, I have a factor I could use to convince others, why thinking on resource consumption, aka optimization, early matters. Beyond discussing the value of lowering the company utilization bills, there is the – what will that do to the planet question now. As with recycling, reducing eating meat, unnecessary travel – all starts with what will the individuals do. As in the words of a wise man:
“We but mirror the world. All the tendencies present in the outer world are to be found in the world of our body. If we could change ourselves, the tendencies in the world would also change. As a man changes his own nature, so does the attitude of the world change towards him. This is the divine mystery supreme. A wonderful thing it is and the source of our happiness. We need not wait to see what others do.”– Mahatma Gandhi
With the whole world now fighting the global warming and overconsumption, so can we as engineers. It would be good to at least start considering impact of our rushed software designs on the environment. Especially that it’s easy to quantify with all of the monitoring and cost control tools available in the cloud.
Deleting/refactoring that unused code or service? Yes! It has value – it’s another drop in the ocean of needs saved, of something that stopped polluting. And it’s not just the internal value. Think of the potential marketing message of following the green principles and contributing to a brighter future of the world.
I’d highly encourage all of the readers of this blog to go through the material listed on the green principles page. These are nothing but good engineering principles, with scientific background and evidence on what helps to fight the climate change.
With my next kata, I’ll try to provide some examples on how things could be optimized early and justified with your product managers and engineering managers for the extra delay.
That’s it for today though. Have a great week!
For a fun exercise – think how many unnecessary json network requests you could save in your systems, to bring the numbers shown in the video above down?