Bmbix cares about its use of technology and its effect on our shared environment. We consider the energy sources used by our datacenter providers, and their efficiency and commitment to green ideals. When making software engineering decisions, we consider the energy efficiency of our choices. Where our code runs on end-user hardware, we give consideration to supporting lower specification devices so that upgrades are not required.
Software Engineering and the Environment
Every business has a responsibility to consider the effect its operations have on the environment.
Our business is the provision of secure messaging systems which allow accounting systems to talk to each other. We believe our activities reduce mistakes, increase efficiency, make fraud harder, and improve business relationships. Overall we believe these are net benefits to society.
Our business is software. There are three main ways software businesses affect the environment:
- Choice of algorithms and related technology
- Datacenter power source and efficiency
- Support for older hardware
How do algorithms affect the environment?
More than you might expect. An algorithm is a recipe for how to do something with data. There are algorithms for sorting, for searching, for filtering, for performing arithmetical calculations, for encryption and many more.
Software does much of its work by looping, calling the same algorithm hundreds perhaps thousands of times for each task. Some systems tackle tens of thousands of tasks per second.
Often the algorithms we use are contained within widely used libraries refined over many years for correctness and efficiency.
There are some types of algorithm which are costly to use by design. One example are proof-of-work algorithms used by some blockchain technologies, such as Bitcoin.
Other technologies, such as machine learning create a type of black-box where no-one is absolutely sure what the resulting algorithm is. But to create the black-box, sometimes very large amounts of computing resources are used to iteratively train and test such systems. Occasionally the training sets can run to billions of items of data, with each training run taking days. 1
At the time of writing we do not use proof-of-work or machine learning algorithms.
The field of developing and comparing algorithms for efficiency can be highly academic. Engineers working close to production are often able to do no better than apply rules-of-thumb and approximations based on first principles. Fortunately the academic community is trying to work out better ways in which the sustainability of software can be assessed. 2 3
Deciding on a green datacenter
The datacenter you choose is typically governed by a range of competing factors. Cost, facilities, reputation, service level agreements are key considerations.
In our case, we started out with very simple datacenter requirements, but later moved to Amazon Web Services for operational reasons: principally our lack of sufficient resources in devops to monitor and manage all our services, and secondly, being attracted by the horizontal scaling possible with AWS out of the box.
AWS is making a significant effort to ensure its operations are environmentally friendly. 4
However, in the course of preparing this article a report from October 2019 which indicates that AWS is not doing as well as Microsoft Azure or Google. This is an aspect of our operations which will be kept under review. 5
Support for older hardware
The only place our code runs on end-user’s hardware is our web application which runs in teh user’s browser. At this time we are not aware of any problems. However, our application is relatively young and as new features are added, consideration will be given to not gratuitously breaking support for currently-working devices, or providing workarounds where viable alternatives exist.
Assessing software, and particularly assessing software supplied as a service, for environmental friendliness is a relatively new endeavour. In the course of preparing this article we have uncovered some shortcomings in our own operations where we feel we can make better informed decisions in the future. For those looking for further reading, we highly recommend Sustainable software products—Towards assessment criteria for resource and energy efficiency [Kern, Hilty, et al] which has a thorough coverage of the issues involved. 6
The protection of our natural world requires thought and effort, but the splendour of our world which sustains our lives is surely worth it. We should not think that our footprint is too small to matter.