Sustainability is a complex term that is used in a lot of different contexts, and has many different assumptions and associations toed to it. In my research, sustainability is a vital concept which underlies the research, and is found in many of the key papers in the research literature. So there is no avoiding the question: what does sustainability mean in software development?
A starting point for the investigation of sustainability is the UN Sustainability Goals. This ambitious project, set up and agreed by all United Nations member states in 2015, lays out a set of 17 suatainability goals with a target date for adoption of 2030. These goals are wide-ranging and include the following areas:
- GOAL 1: No Poverty
- GOAL 2: Zero Hunger
- GOAL 3: Good Health and Well-being
- GOAL 4: Quality Education
- GOAL 5: Gender Equality
- GOAL 6: Clean Water and Sanitation
- GOAL 7: Affordable and Clean Energy
- GOAL 8: Decent Work and Economic Growth
- GOAL 9: Industry, Innovation and Infrastructure
- GOAL 10: Reduced Inequality
- GOAL 11: Sustainable Cities and Communities
- GOAL 12: Responsible Consumption and Production
- GOAL 13: Climate Action
- GOAL 14: Life Below Water
- GOAL 15: Life on Land
- GOAL 16: Peace and Justice Strong Institutions
- GOAL 17: Partnerships to achieve the Goal
The contribution of the information technology (IT) industry to these goals is just as varied, with some aspects of computing, software, and data applicable to most, if not all, of the goals. There is an important distinction, though, which can help focus the scope of my research on a specific area. A common theme in much of my reading on this topic is the distinction between IT for sustainability and sustainability of IT.
In the first case, IT for sustainability, the technology is part of the solution. The provision and operation of IT systems,, in conjunction with other approaches, helps to achieve the overall sustainability goals. An example might be the way that IT infrastructure can make work more mobile, helping with goal 8, or track and manage otherwise difficult aspects of the environment, helping with goals 13-15.
In the second case, sustainability of IT, the technology is part of the problem. The costs of technology and infrastructure can concentrate benefits in already wealthy societies and increase rather than decrease inequality (goal 10), and the upgrade culture prevalent in technology consumption can pollute the environment (goals 14 and 15) and lead to irresponsible production and consumption (goal 12).
This is not an exclusive distinction, though. Many IT systems both contribute to sustainability by what they do, and yet detract from it by how they are implemented and how they operate. It is important to avoid the temptation of just looking at the nett gain and assuming that all technology is therefore as good as it can be. We need to both improve the value provided by IT systems to the sustainability goals, and reduce the negative impact of these systems.
My research concentrates on the second case and examines specific areas of the sustainability of software systems. In particular, it looks at the environmental impact in terms of energy use and equipment requirements associated with ostensibly minor choices during the software development process. They significant aspect of this research is that, in the same way that the overall UN sustainability goals are global and wide-reaching, small software decisions can have a potentially disproportionate effect on the natural environment. A decision which is made just once, can easily be multiplied so that the consequences of that decision will occur millions, or even billions of times.
So for me, what sustainability means in software development is the realisation that the choices which software designers and developers make every day are not free of consequence, and an increase in understanding and awareness could help significantly reduce the negative impacts of IT systems on the environment, and thus also reduce their negative impact on the UN sustainability goals.