Hint: This practice is inspired by the more general planning technique Impact Mapping. We adjusted it specifically for the needs of identifying positive and negative impact on human being’s values.
There are varying starting positions from which a group of people might want to think about the impact of some piece of technology they are aiming to build. Such starting positions can be:
Value Impact Mapping (VIM) is eligible whenever some technology like software, that is used by people and has impact on people, shall be created or adjusted.
Precondition: We assume that the direct and indirect stakeholders of the system or feature to be built have already been identified. If this is not the case, a stakeholder analysis should be conducted, for instance leveraging the Stakeholder Mapping practice.
The goal of this practice is to identify all stakeholder’s values that might be affected by the system or feature. The impact on such values might be positive, neutral, or negative. Examples for ethical values applicable to system design are autonomy, fairness, privacy, respect, etc. Systems can promote or harm such values for stakeholders. For a deeper understanding regarding what values are, have a look at the IEEE 7000 Standard1 or the introduction video What are Values by Sarah Spiekermann. A set of common ethical values is provided in Annex G of IEEE 7000, which is positioned as suggestive but not normative.
In addition to identifying the values, a goal of this practice is to find potential mitigation actions for negatively impacted values.
First, “what” and “which “questions have to be answered:
Ask the following questions for each stakeholder in order to identify their values and the impact of the system or feature towards those values:
References: These questions come from the IEEE 7000 Standard1 and Value-Based Engineering (VBE)2; they are based on the three ethical frameworks virtue ethics, duty ethics, and utilitarianism.
Ideally, you answer the questions and identify the values together with stakeholder representatives. Conduct interviews with them and find out what is important to them. In case a direct conversation is not possible, you could create Personas.
The Proctive Consider, Analyze, Review, Evaluate (CARE) framework3 and Software Development Impact Statements (SoDIS)4 as well as the Consequence Scanning5 also provide questions to ask when prioritizing values and assessing impact.
In a second step, “how” questions look at dealing with values and their impact:
For each harmed value identified in the previous step, think about whether there could be mitigation actions.
Together with your stakeholders, try to find adjusted solutions that still fulfill your (non-)functional requirements, but do not harm the identified values as much as the solution you had in mind before. This can also mean that you agree that some features should not be implemented.
Inspired by the Impact Mapping practice, we suggest to use a mind map, structured into four levels (feature-stakeholder-values-actions):
The four levels are:
You can create Value Impact Maps physically on the whiteboard or with any graphical tool that supports mind maps. For example, Miro provides a template: Miro Impact Mapping template.
Context Mapper with its Context Mapping DSL (CML) language offers a Domain-Specific Language (DSL) to model stakeholders and their values. Context Mapper is available as a Visual Studio Code Extension, as an Eclipse Plugin, or alternatively available as Online IDE via Gitpod. With CML you can simply model stakeholders and value registers in textual form and then generate a Value Impact Map with its PlantUML generator automatically.
The following example illustrates how values in value registers1 can easily be modelled in CML. Checkout the Context Mapper documentation on value register modeling for more details and complete documentation.
BoundedContext SameDayDelivery
Stakeholders of SameDayDelivery {
StakeholderGroup Customers_and_Shoppers
StakeholderGroup Delivery_Staff_of_Suppliers
}
ValueRegister SD_Values for SameDayDelivery {
Value Freedom {
Stakeholder Customers_and_Shoppers {
priority HIGH
impact MEDIUM
consequences
good "increased freedom"
}
Stakeholder Delivery_Staff_of_Suppliers {
priority HIGH
impact HIGH
consequences
bad "work-life-balance"
}
}
}
To illustrate this practice, we use a fictitious online shop scenario. An existing online shopping company wants to realize a new offering for “same day delivery”. Customers in emergency situations shall be able to order everyday products and get them delivered on the same day.
The company already identified the stakeholder groups and stakeholders by creating a Stakeholder Map:
Now, they elicit the values of these stakeholders and identify benefits and harms towards those values. The following exemplary Value Impact Map is not complete (it does not cover all stakeholders); it shall just illustrate how such a map could look like.
The team identified the following benefits and harms (top-down order as in the map below):
Note: This list does not claim to be complete; you might come up with other benefits and harms for this specific scenario.
Once the company identified the values (column 3 in Value Impact Map above), they added mitigation actions that could reduce the harm to some values:
Again, this list of mitigation actions is not complete. You might come up with others.
Alternatively, the values could have been modeled with the Context Mapper CML language, as introduced above. With its PlantUML generator, the Value Impact Map would be automatically generated as follows:
Value Impact Maps can be created with various tools:
There are alternative and related practices/techniques to achieve the goal of producing valuable, ethically responsible software:
Our Stakeholder Mapping practice is of course related as well, as both require stakeholders and are used in subsequent steps of the VDAD process; Stakeholder Mapping supports Step 2, while Value Impact Mapping (VIM) can be used for Step 3.
IEEE Standard Model Process for Addressing Ethical Concerns during System Design, 2021, https://ieeexplore.ieee.org/document/9536679 ↩ ↩2 ↩3 ↩4
Value-Based Engineering - A Guide to Building Ethical Technology for Humanity, Sarah Spiekermann, 2023, https://doi.org/10.1515/9783110793383 ↩ ↩2
Proctive Consider, Analyze, Review, Evaluate (CARE), https://ethics.acm.org/wp-content/uploads/2021/03/Proactive-CARE-for-Computing-Professionals.pdf ↩
Software Development Impact Statements (SoDIS), https://doi.org/10.17705/1CAIS.01540 ↩
Consequence Scanning, https://doteveryone.org.uk/project/consequence-scanning/ ↩