Operationalizing Human Values in Software Engineering: A Survey

Mojtaba Shahin,Waqar Hussain,Arif Nurwidyantoro,Harsha Perera,Rifat Shams,John Grundy,Jon Whittle
DOI: https://doi.org/10.1109/ACCESS.2022.3190975
2022-07-26
Abstract:Human values (e.g., pleasure, privacy, and social justice) are what a person or a society considers important. The inability to address them in software-intensive systems can result in numerous undesired consequences (e.g., financial losses) for individuals and communities. Various solutions (e.g., methodologies, techniques) are developed to help "operationalize values in software". The ultimate goal is to ensure building software (better) reflects and respects human values. In this survey, "operationalizing values" is referred to as the process of identifying human values and translating them to accessible and concrete concepts so that they can be implemented, validated, verified, and measured in software. This paper provides a deep understanding of the research landscape on operationalizing values in software engineering, covering 51 primary studies. It also presents an analysis and taxonomy of 51 solutions for operationalizing values in software engineering. Our survey reveals that most solutions attempt to help operationalize values in the early phases (requirements and design) of the software development life cycle. However, the later phases (implementation and testing) and other aspects of software development (e.g., "team organization") still need adequate consideration. We outline implications for research and practice and identify open issues and future research directions to advance this area.
Software Engineering
What problem does this paper attempt to address?
The problem that this paper attempts to solve is how to operationalize human values in software engineering. Specifically, the authors focus on how to identify, translate, and implement human values during the software development process to ensure that the software can better reflect and respect these values. This includes different stages of the software development life cycle, such as requirements analysis, design, implementation, and testing, as well as other aspects such as team organization. The paper points out that failure to properly handle these issues in software - intensive systems may lead to various adverse consequences, such as economic losses and reputation damage, which have an impact on individuals and society. Therefore, the goal of the paper is to provide an overview of research on how to operationalize human values in software engineering by reviewing existing literature, and to propose a classification of solutions and directions for future research.