This website will not empower you.

Ethical web development

The author, Daniel Hartley
Daniel Hartley
Reading time: 3 to 4 minutes

The examined working life is worth living.

In economics, an externality is an indirect cost or benefit to an uninvolved third party that arises as an effect of another party's (or parties') activity.

Negative externalities lead to problems. Pollution, rising carbon dioxide levels, and loss of biodiversity are negative externalities that have been repeatedly ignored and for which we must all pay.

If I am to be someone who contributes positively to society, I must accept responsibility for unearthing the negative externalities that arise from my work, and prevent them.

To do so, I need a set of values, a way of working conducive to ethics, and a means of evaluating outcomes.

Values

In my field, software development, as in many others, there are Codes of Conduct (CoC) which enumerate a lot of good things about how I ought to behave professionally.

In their paper on ethics in software processes, From Codes of Conduct to Ethical Deliberation, Gogoll, Zuber et al. argue that these codes are not sufficient to guarantee ethical outcomes.

CoCs are difficult to use as normative guidelines for technical software development due to their underdetermined character. They may trigger behavior such as indifference or the cherry-picking of specific ethical values. Thus, they are of little immediate use during the software development processes.
From Codes of Conduct to Ethical Deliberation (PDF)

The authors conclude,

…we suggest moving from a simple application of “ethical heuristics” to a point where we treat ethical thinking as a skill that has to be practiced and can be embedded deeply into the software development process. Consequently, ethical deliberation must not be limited to ethics councils, company advisory boards or other special committees. Rather, it needs to be practiced and shaped by the software developers who create and intricately understand the technical system.
Ibid. (PDF)

They propose an approach called Ethical Deliberation in Agile Processes. An existing alternative is the open source project Pledge Works.

Pledge Works

Pledge Works is a response to the need for a skill that has to be practiced and can be embedded deeply into the software development process.

The Pledge Works' tagline is: writing pledges for better outcomes. What does this mean?

Context

Pledges express values in a given context. The context is what we want to do and the resources we have available. If the context is unspecified, the pledge will be vague, Don't be evil.

When the context imposes constraints - time, money, people - we need to learn how to adapt our values without watering them down. We must decide what kind of world we want in order to know whether our product favours it.

Given a set of values, and a context, we write pledges.

Pledge Works formula: values + context = pledges. Values are drawn as a blue circle, context as a black square, and they combine into a purple square within a circle to illustrate the Pledge Works approach.
The Pledge Works Formula: values + context = Pledge Works

Ethical deliberation takes thought, discussion and time. Pledge writing can, and probably should, be introduced in an incremental, piecemeal way so as not to unnecessarily disrupt your work.

Outcomes

The payoff for our effort is an outcome that is at least as good as the business as usual default, if not better. Better outcomes, not perfect ones.

I like to write lots of pledges. When I can't tell whether I've broken a pledge - when the outcome is unclear - I narrow the context. My preference is for pledges that read like requirements; given sufficient exposition, I can take the subjective sting out of the decision.

I hope to develop a more systematic approach to Pledge Works but for now I learn as I go along, and do a little better with each effort.

Update Wed 1 May 2024

We (the Pledge Works collaborators) discovered it is helpful to set an end time for a pledge. This requires us to check back on our pledges to see if we've honoured them. Some practices become ingrained, some are unworkable or unachieveable. Letting pledges go also lets us write new pledges.

We are human, we aim for better outcomes, not perfect ones. A time unlimited pledge feels like an attempt at perfection (which will likely fail).

Pledge Works has guidance on how to get started and tools for writing and evaluating pledges, but it has no hard and fast rules. I've written a couple of simple case studies, one for The Public Good, the other for an imaginary Startup, as examples of how I adapt Pledge Works.

Disclosure: I am a collaborator on Pledge Works. The flavour of Pledge Works I describe here is my own.

I find it useful to express my values in the form of pledges. These tend to be more specific than principles.

Links to external references

Related content