Specifying Ethical Requirements

Project Proposal by Martin Stacey


Specifying Ethical Requirements

Software

None

Covers

Moral philosophy, requirements specification, software development processes

Skills Required

Interest in ethics, interest in software development or software management

Challenge

Conceptual ???? Technical ?? Programming

Brief Description

We all agree that software that is going to get used in the real world, and influence people's jobs and people's lives, should meet ethical standards for good software, that is, not being evil software. But how can we achieve this in practice? How can we specify what 'ethically acceptable' means, precisely enough that our specification can guide development?

It's very easy to indulge in pointless vague hand-waving about computer ethics. It's a lot harder to be specific and detailed about what the software needs to do, and what the development process needs to do. A good analogy is designing for usability. It's easy to say 'easy to use' and 'easy to learn'. It's also pointless. It doesn't help with either designing software or evaluating it. DMU students are taught to dig into detail about exactly what aspects of the user experience need to be good or right, and in what ways, and to specify this exactly enough that one could go and do the measurements to see if the software meets its specifications. This is worth doing even if you don't expect to make the measurements. It enables you to start discussing whether you've got the usability requirements right, and to consider what trade-offs you're prepared to make. (A good rule with all requirements and design specifications is 'Don't be afraid of being wrong. Be afraid of being too vague.' If your specification isn't exact enough to be wrong, it isn't exact enough to be useful.) The same should apply to ethical specifications.

Your task in this project is to push forward the state of the art in specifying the ethical requirements that a software system or its development process need to meet, to enable the creation of ethical specifications that are not just wish lists, but are specific enough to provoke the right discussions at the right times, enable considerations of trade-offs, and enable detailed and fair ethical evaluation.

Variants

You could aim to produce a detailed procedure for arriving at an ethical specification for a software system. You should consider how widely applicable it is; you might like to aim at a procedure for a particular type of software and/or a particular development methodology.

You could evaluate the effectiveness of existing ethical guidance in enabling people to create ethical software, in particular, how well it enables them to think in detailed concrete terms about the ethical problems involved in a particular software project.


Back to