Categories
computing

Sustainable software engineering

Birgit Penzenstadler

If I put sustainability into the software system requirements, that means during testing I now have to test whether the system meets those sustainability requirements. What I’m doing now is finding those metrics.

Dr Birgit Penzenstadler is Professor for Software Engineering at California State University Long Beach. In her research Birgit explores the relationships between sustainability and software engineering.

We talk about Birgit’s background and motivations, her teaching and research, and the Karlskrona Manifesto,

Talking points

What are the things that we as software developers should pay attention to?

The first part (of the Karlskrona Manifesto) is about misconceptions that we have about sustainability….for example that there is a magic technical solution just around the corner that’s going to solve the sustainability problem, we’ve just got to find that one silver bullet.

…and for each of those misconceptions we explain what the reality is, and as sustainability is a very complex problem, a wicked problem – we can’t solve it with a magic bullet, it will take many things that solve different aspects of the problem and it’s unclear how we can do that.

The second part of the manifesto proposes a set of principles, for example we need to be looking at longer timescales when we develop systems, and we need to involve multiple disciplines, it can’t just be a bunch of software engineers trying develop a system, we need to get expertise from other people, for example from psychologists, ecologists…

At the end of the manifesto we give a couple of suggestions as to what people might do as the next step.

Start by discussing it, what it might mean and raising awareness.

The major push back I get is “I get my requirements from my customers, it’s not my place to say you should also look at the sustainability aspect”. So this should be part of our ethics standard, that I don’t just look at what is the maximum return on investment and is this safe for humans to use without getting hurt, but we should also look at other categories of damage.

We should always be free to point out social and environmental consequences, but the line at which we should walk away and say we’re not going to do a development…it’s hard to say where that line is.

At the moment we might be developing a lot of systems that we don’t really need.

Instead of inventing yet another system, and developing yet another software product, maybe we should be looking at simpler solutions.

Instead of products to buy, we should perhaps be better looking at sharing systems

The main intention of the Karlskrona Manifesto is to raise the discussion around sustainability, to make software engineers aware of the topic – look, it’s your responsibility to at least think about this and think what you are going to do about it.

I discuss four definitions of sustainability with my students: 1. To persist over an extended period of time.
2. To preserve a function over an extended period of time.
3. The next one (you taught me), ethics extended over space and time – this adds the notion of value.
4. (from Ehrenfeld) Life to flourish indefinitely – painting the vision of an even brighter future.

Then I tell students the other part, from Laurence Hilty – to scope your analysis well, what do you want to sustain, for whom you you want to sustain it, and what is the time horizon you want to be looking at.

For some reason, we humans tend to think that sustainability means preserving the human race on this planet, the truth is the planet would fare pretty well without us, but we still want to be around, so we strongly scope what we perceive as sustainable in that way.

I’m taking the liberty of using one of my 25 lectures on software engineering to discuss software engineering for sustainability because I think that it is important

use case

If I put sustainability into the software system requirements, that means during testing I now have to test whether the system meets those sustainability requirements. What I’m doing now is finding those metrics.

This is taking the requirements problem to the extreme.

If in requirements engineering I define what sustainability means in terms of this specific software, then I have as a starting point for the metrics that will help me determine whether that software system is sustainable…but that means I have to do work at the beginning, it means I have to do a life cycle analysis, which is not yet a standard method for software engineering.

(is it possible to write requirements to solve wicked problems?) It’s tough. I’m an optimist by nature. This sustainability research has sometimes brought me to the limits of my optimism, but I refuse to give up.

There’s a lot of challenge in doing this, but I’m going to try to find the best method that I can.

I can teach my software engineering students to start paying attention to sustainability.

I do think that every one of us, no matter what discipline we are working in, can find at least a small point of leverage.

If I have the freedom to develop a software system, what do I want the system to be about, then I can decide to make a software system that is a completely new solution that helps people to form a community and do something together instead of making small efficiency steps if the solution was not the best one in the first place.

Car efficiency versus car sharing…a case where optimising one solution further would yield far less benefit than going for a completely different solution.

(software engineering is by definition a systems view) yes, and at the same time, I think we software engineers often don’t step back enough. We’re thinking how can I break down this problem into manageable parts and solve those, when we should be taking a step back and trying to apply a systems thinking approach.

(if pushed for metrics) Environmental impact, social consequences.

The environmental impact is not just the hardware, it is what is the system going to be put to use for.

(success) Finishing up my Habilitation.

(Activist) I would say so, yes. It is not my job to teach my students about sustainability, but nevertheless I do it, and I really care about convincing them that it is worth having a discussion about.

(Not your job, but it’s not job to teach in non-racist manner, or non sexist manner either, can we get sustainability to same level? I’m teaching my students to behave professionally non-racist, sustainably…). I would make sure not be a racist in class, but I guess I wouldn’t talk about not being a racist in class during my class, I guess that’s the difference.

I implicitly adhere to good ways of behaving, because that’s what I’ve been taught culturally, and maybe we can get to that same point about sustainability.

(Motivation) When I go out into the mountains at the weekend, and I love the mountains, and I see all that beauty around me – that’s what I really want to preserve.

(Challenges) Californian in training.

(Miracle) Tough choice…I want our planet to have way left population than it currently has. Not because of a disaster, but it’s a magic wand – the population never grew to that many people. And we found better ways of using technology and not taking it to the extreme as we have over the past couple of decades. Maybe we just had a magic moment of insight a few centuries back.

(Is technology going to save us?) I don’t think technology is going to ruin or save us – it’s our choice as responsible human beings to put technology to good use such that it can help us to save ourselves and this planet.

(Advice) Listeners already care about sustainability and probably think about how they can put it into action in their personal lives – I would like to encourage all of you to continue doing that.

This Sustainable Lens is from a series of conversations at University California Irvine in June 2015. Sam’s visit was supported by the Newkirk Center for Science and Society, and coincided with Limits 2015.