Guide for co-creation of ethical software
Using Value Sensitive Design to build technology in line with the values of the people who use it
Technology and the people who use it shape one another. This guide takes you through the steps of finding out what users value, and of turning those values into software — using value sensitive design, and the research done in the Mobifree project as a worked example.
Read me
Technology directly impacts the way people live, make decisions and interact. Sometimes on purpose, sometimes this happens unconsciously. Either way, users and technologies are in a relationship with each other: people shape technology and technology shapes them. While this is evident in extreme examples, such as addictive algorithms, this relationship is also present in more subtle forms, such as interfaces that quietly influence users’ choices, habits and perception of a technology.
The relationship between users and technology does not have to remain subconscious: what if technology could be shaped according to the values of users?
This guide takes you through the steps of building technology in line with the values of end-users. It is based on the value sensitive design methodology. Value sensitive design (VSD) is a framework that asks what people find important and translates this into design requirements. In this way, values can be part of the design of a given technology from the beginning.
Importantly, values are more than user preferences. They are why people care about certain things. They express what people find important in their lives, with a focus on ethics and morality.
Using value sensitive design methods can help discover issues that traditional UX methods may overlook. Asking people about their values can reveal deeper concerns that affect trust, adoption, and long-term use of a technology. For example, it can show whether a product fits the rules and practices of potential client organisations, supports desirable interactions between users, or creates unintended risks for beneficiaries and clients.
Who this guide is for
As a project manager
of software products, this guide offers you steps to evaluate software based on user feedback, which can help to plan development work and technical roadmaps. It can help you align the value proposition of your product with a range of user values, such as safety, privacy protection, environmental sustainability, or freedom of choice of software products.
As a developer or designer
this guide provides a step-by-step plan with methods to identify the needs and values of different stakeholders, to ideate suitable design interventions, and to consider how such interventions could be designed to avoid harms for certain end-users.
As a researcher
this guide provides steps to organise your research process so that you can study, systematise and compare the values of different stakeholder groups. It also explains how to translate values into design requirements, which helps you discuss design problems and solutions together with developers and designers.
What value sensitive design is
Why values rather than preferences, and where they meet an iterative development cycle.
Why values?
Value sensitive design can be incorporated into the existing software development cycle, making sure that the software aligns with stakeholders’ values and that potential harms are minimised. VSD is characterised by:
- Putting stakeholders at the centre
- Focusing on values rather than user preferences
- Identifying value-related design problems
- Managing tensions between values and avoiding harm
There are several reasons to focus on values:
- Designers understand why something is important to a person or a group. By contrast, preferences indicate a greater liking for one alternative over another and describe choices among options based on those values. Preferences do not explain why people care.
- Values broaden our view on design problems. They can refer to objects (why is some software important to a person), social interactions (how do people want to interact via software), or states of the world (the wish to support fair labour conditions, or environmental protection). All of these values can impact how people perceive software products.
- In contrast to approaches like human-centred design, VSD allows one to consider non-human perspectives (for example via environmental values), and broader societal perspectives beyond individual end-users.
- Optimising a product for one set of values may conflict with other values. Focusing on values can highlight these tensions and ideally leads to products that manage them.
VSD in the development cycle
The different components of VSD can be included in different parts of iterative software development:
- Concept and planning
- Developers usually plan a production backlog, including novel features to be built. Relevant VSD methods for this phase include stakeholder identification, use context research, and analyses of relevant values and risks.
- Design and development
- Functions in the backlog are designed and produced. Relevant VSD methods for this phase include identifying value-based design requirements, and tensions between values and design options.
- Deployment and evaluation
- A first version of your product is ready to be used, and can simultaneously be tested. Collect structured user feedback and continuously refine the system as values and user needs evolve. Evaluate not only usability and performance, but also whether the system supports stakeholder values and avoids unintended harm.
Combining VSD with software development introduces trade-offs. Software development may prioritise speed and rapid testing, while VSD may require more time to explore values, analyse them, and derive possible design requirements. Synchronising development work with ongoing user research is therefore key, and a structured process for acquiring feedback is important. The six steps below suggest how to do this, using the Mobifree project to demonstrate how this worked in practice.
Six steps from values to design
From deciding what to research, to writing down the design intervention that follows from it.
step 1
Determine your research scope and case
Determine your test case. In value sensitive design, this can be approached in different ways:
- Exploratory
- Stakeholders explore your product in an open-ended way. This helps to document what users notice about a piece of software, without predetermining this too much on your end. You can guide this exploration by asking what people notice or what they find striking, and how they assess this. This way, you may find underlying values, or contextual factors for why people notice and care about certain things — for instance, that they frequently use or want to avoid certain features at work because of an office policy. This is useful when it is unclear how users perceive the value proposition of your product, and why.
- Focused
- Stakeholders test specific features. This will point to varying perceptions and harms experienced by different stakeholders, depending on their work or social context.
Then decide how specific or broad your question should be. Do you want to understand how people experience specific functionalities? Or to explore what people find important when using a product like yours?
step 2
Determine your stakeholders
Who should be involved in your research and design process? In value sensitive design, stakeholders include anyone affected by a technology, whether they interact with it directly or not. This means you should look beyond your immediate users. There are two types:
- Direct stakeholders
- The individuals the technology was created for and who are in direct contact with it. This includes intended users, as well as unintended users who appropriate the technology in unexpected ways.
- Indirect stakeholders
- Individuals who are significantly affected by a technology but do not directly interact with the system. This can also include non-human actors, such as animals and ecosystems, and future generations.
How to identify your stakeholders
- Map the context of use: when, where and how is the technology used? This will help you determine who is indirectly affected by it.
- Identify direct stakeholders: list all stakeholders that directly interact with your technology, or are your primary target user group — a specific professional group, age group or social group. Think about diversity: are people from different social and ethnic backgrounds represented, who may experience your product differently? Are people with disabilities or different degrees of digital literacy represented?
- Identify indirect stakeholders: list stakeholders that do not directly interact with the technology, but might still be affected by it. Think broadly: this can include non-human actors such as animals, plants or ecosystems, or future generations. Think about how the environment is affected by excessive energy use or by ordering parts from far away. Another example is people who are registered in your database and who could be affected by a data breach of your system.
Other considerations
As with any research, it is important to think about what you would like your sample to achieve. Are you aiming for statistically representative insights (“x people agree that my software enhances privacy”) or for understanding diverse experiences in depth and in context (“users in a specific context feel unsafe when using the software because of x”)?
Generally speaking, open-ended and interpretative research — such as studying how people experience values in relation to technology — is best suited to smaller samples, where the goal is reaching thematic saturation and where you aim for explanations and contextual descriptions of user experience. In contrast, research that measures how frequently people associate specific values with technology is better suited to larger samples and statistically driven methods.
step 3
Understanding user values
The goal of value analysis is to understand the principles and qualities that matter to people. A key challenge of VSD is that values can be abstract and not straightforward to observe. If we simply ask what people value, we risk getting very broad and generic answers. VSD therefore studies values by observing how people make choices in concrete situations: what are the most important issues users see with a technology, or which features do they find very important.
There are different methods to study user values: interviews, workshops, user testing, narrative scenarios, visual sketches and mockups of desirable and undesirable technologies, and photo elicitation — a method where participants discuss and reflect on images of graphical user interfaces or use situations to express their values.
Each method can be suitable for different development stages. A scenario method, for example, is useful when you want to see how a product idea that is not built yet resonates with users.
Research with limited resources
Workshops and pilots are only one way to do this. If time or resources are more limited, the methods below can be downscaled. Options include targeted focus groups or ‘mini pilots’ with four to six people, where users test one product or feature in a single session; smaller-scale workshops with four to six people, using value cards to document user values; or a limited number of in-depth interviews to identify recurring user values and concerns.
In designing your research, think carefully about how you fit the research setup to the needs of your participants. If you are not sure of digital literacy levels, avoid jargon or technical terms. People also think in different ways: in workshops, try to include different types of activities — a discussion sparked by prompts like value cards, as well as a creative exercise where participants can express their thoughts by making a paper prototype or something similar. Lastly, frame the research setup so that participants can assess the technology in relation to their everyday technology use. Framing the research along everyday use scenarios helps to get answers grounded in lived experiences.
step 4
Analysing values
There are different ways to analyse user value data, depending on how it was collected.
- User-defined values
- Users directly identify which values matter and explain them. They may also define what these values mean in context.
- Researcher-interpreted values
- Users describe experiences, opinions or feedback about technology without explicitly naming values. Analyse the data by coding responses and mapping them to underlying values, such as privacy, autonomy, trust or usability, and look for recurring themes and tensions between values across participants.
step 5
Value tensions: weighing values against one another
Sometimes values come into conflict with one another. This can happen at various levels: between the responses of one individual user, within user groups, between user groups, and so on. These conflicts can be resolved in several ways, for example by integrating values — offering different settings, such as basic and advanced, to support the needs of general users and advanced users in different ways — or by prioritising one value or user group, based on the project scope and target audience.
In value sensitive design it is important to avoid features that could potentially harm any subgroup of your users. The framework below can help you go through the process of prioritising feedback.
Design choice framework
-
Prioritising feedback
- How many times does a response occur, across groups?
- Is there feedback that not everyone noted, but that seems important to you?
-
Identifying tensions
- Do people have conflicting views on this theme — power user versus average user?
-
Identifying design interventions
- Are there design interventions that do not lead to a conflicting user experience, or that resolve or avoid conflicting views?
- Do you need more user research?
-
Prioritisation
- Do you prioritise certain users?
- Who are you generally designing for?
step 6
Translating values into design interventions
After analysing the values, they need to be translated into concrete design interventions. The challenge is to move from a value to a concrete set of functions and designs. Think of it as a funnel from a broad vision to a narrow functionality.
To begin, list all user values you have identified, and provide a definition of each value in the context of the specific technology. This step is very important, because values can mean different things to different people, depending on the technology used and its use context.
When writing up value definitions, it is useful to formulate them as statements for user actions — for example: privacy: it is important to be able to separate private and work-related communication in chat apps. This way you not only turn a value into a norm, an instruction for user action, but you can also think about interface functions supporting or constraining user behaviour. To make the definition concrete, it may help to also state the concrete issue that users experienced.
Once you have defined values, you can write up design interventions. It is useful to first brainstorm different possible interventions that respond to the value definition, and only then write up a concrete functionality. This way you can weigh different design interventions and their user impact before designing one solution.
The art of this process is to consider which feedback has priority to be implemented. Practical constraints play a role here too: sometimes there is no capacity to pick up a particular design intervention, or it is technically not feasible.
For each selected value, identify how the value is currently not being met — for example, lacking accessibility means that bright buttons on a white background are invisible to users with impaired vision. Then identify concrete objectives and solutions: accessibility means meeting the WCAG contrast requirements, so the solution is a contrast fix, updating the button colour against the background to meet WCAG AA.
Frequently asked questions
Questions received from developers of the Mobifree consortium during the project.
How do I weigh and prioritise feedback?
For ways to prioritise feedback, see step 5, on value tensions. In Mobifree, developer teams had different ways of prioritising user feedback. Some focused on how many users provided similar feedback, in order to understand whether the feedback was a general concern. Others assessed how much impact a particular intervention would have for the different stakeholders involved. Both analyses are important: to understand feedback shared by many users, but also to consider how one user’s feedback could harm the interests of another user.
In order to be able to weigh user feedback, good data management is crucial. For the data to be useful, make sure that you can trace answers back to individual participants and their characteristics — is this a power user, a digitally literate person, their profession, age, gender. This way it is possible to assess how many times particular feedback has been given, who has said it, and in what context.
What do I do when the research surfaces values we don’t have the technical capacity to
address?
It is common for there to be practical constraints to incorporating values. If there is no capacity to address the value, it might have to wait. However, as VSD can be much broader than only testing specific technical features, keep in mind that there is not usually just one way of incorporating a value. It may be worth exploring what kinds of design interventions could correspond to a particular value, and prioritising those that are feasible for your team.
Users may also provide feedback that is not a purely technical issue, but also a social one. Think of users who emphasise that the professional use of messaging apps should respect one’s private life. Here the issue can be technical — users have options to switch between private and professional profiles — and social: users need agreements within their organisation on how to use messaging apps. When interpreting values it is therefore important to establish what the actual design problem is, and what an adequate intervention would be: a technological improvement, or an improvement of work processes and rules?
What if participants ask for features that go against a desirable value, because they lack
technical background?
One of the things you could do is try to find out where that perception comes from. Did participants not understand the functionality you offer? Are there certain terms or features that could be clarified so that participants might understand them better? It could also be worth considering follow-up research into user understandings of specific features. This assumes that the participants who made this comment are also the group you want to design for.
How many participants are needed for a meaningful workshop and research data set?
This depends on the type of research you want to conduct. Generally we can distinguish between descriptive research — how many people provide what kind of feedback — and interpretative research: why do people experience, assess and use software in a particular way. Both serve different purposes and have different quality requirements for good datasets. If your goal is to understand how many people share certain user experiences without inquiring into the contextual meanings of using the software, a descriptive approach with statistically representative, and usually larger, sample sizes may be required. If your goal is to interpret the contextual reasons for user experience, smaller sample sizes can be adequate, because you want to know what contextual factors influence the experiences and practices of users.
In interpretative qualitative research, which is our suggested approach to VSD, the goal is often thematic saturation: after a certain point, no major new themes or insights come up in the data. When you reach this point depends on what and how many things you are testing, and with whom — is this a specific professional or social user group, or are you trying to gain insight into a broader group of people?
Your research may also aim to study the perspectives of people usually under-represented in technology development. Often this means testing products with organisations representing the needs of these communities, or working with a small and diverse group of people who may experience technology in different ways. In this case your research does not need to aim at statistical representativity, but to consider the experiences of this user group in the development process.
What if different stakeholder groups want features that conflict with one another?
When this happens, the framework to weigh values in step 5 may help. Assuming both values are equally present in both stakeholder groups, the ideal scenario would be to find a design intervention that accommodates both user groups, for example by including different user levels or selectable features. If that is not possible, you could think about whether there is a specific group you are designing for. If you want to design for both user groups, consider whether one design intervention would harm the interests of the other, and whether there are any ways to curb that harm. In general, any harm to users should be avoided.