TL;DR: Technology should support humanity and avoid harming people and their values; we want to help engineers and technology creators create solutions that promote positive values and aim to reduce harm to our society and people. The Value-Driven Analysis and Design (VDAD) process aims to combine value-driven approaches with state-of-the-art software engineering practices such as Domain-Driven Design (DDD).
Digitalized solutions generally try to optimize all kinds of processes, make people's work easier and achieve economic goals. While economic values already receive a lot of attention, it is often forgotten that digitalizing our world "wherever we can" has potentially negative effects on human values as well.
The goal of this work is to enable all types of stakeholders in software-intensive projects to respect human/ethical values equally with economic and technical requirements throughout the life cycle of a project.
We aim to achieve this by providing:
- Lean and "audience-centric" processes and novel work practices.
- Knowledge structures, notation suggestions, and concrete examples.
- Recommendations for appropriate tools that support the suggested work practices.
VDAD targets all roles and individuals engaged in digitalization projects. Every company or team engaged in the development of digital solutions has an influence on human beings, society, and our values. Technology creators who aspire to craft software and digital products that is both valuable and free from harm to humanity are invited to apply VDAD practices in their projects.
The user stories page outlines the target audience of VDAD with concrete, exemplary user stories.
If you are interested in applying our practices in your projects, please contact us. We are always happy to consult and/or collaborate on industry/research projects to see our ideas applied in the "real world" and to improve them based on the feedback collected.
Value-Driven Analysis and Design (VDAD) describes an iterative process consisting of seven steps. Each step is described on a separate page and links to practices (activities and artifacts) along the process:
- Process Overview
- Step 1: Aquire Domain Understanding
- Step 2: Identify Stakeholders
- Step 3: Identify Values per Stakeholder
- Step 4: Prioritize Values
- Step 5: Make Digitalization Decision
- Step 6: Derive New and Adjust Existing Requirements
- Step 7: Design Software Architecture
- Process Continuation (Iterative Approach)
The practices folder contains the practices supporting the VDAD process:
Additional files:
- User Stories that describe exemplary VDAD application scenarios.
- Selected Tools that support the VDAD process and our project.
- Project Background and Related Work
- Glossary
Any form of contribution is very welcome; please check CONTRIBUTING.md for contributions.
We further welcome any feedback on our processes and practices. Use GitHub issues to get in touch or contact us. We are also happy to discuss potential collaborations for research and industry projects.
Contact: Stefan Kapferer, Eastern Switzerland University of Applied Sciences (OST)
Olaf Zimmermann and Mirko Stocker contributed to the VDAD repository content and related Context Mapper tooling via co-authoring, providing review feedback, experimentation and testing. Our shepherd for the EuroPLoP 2024 VDAD paper, as well as the attendees of the writer's workshop at the conference, provided valuable feedback on our proposed process pattern. Thank you all very much!
Version 1.0 of VDAD has been supported by the Institute for Software (IFS) at the Eastern Switzerland University of Applied Sciences (OST).
This work is licensed under a Creative Commons Attribution 4.0 International License.