Operationalizing Human Values in Software Engineering: A Survey
Human values, such as inclusion and diversity, are defined as what an individual or a society deems important. Failing to address them in software may lead to several undesired effects and issues (e.g., loss of life) for individuals and societies. Different types of solutions (e.g., frameworks) have been proposed to support "operationalizing values in software", that is, ensuring creating software (better) reflects and respects human values. In this paper, "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.
READ FULL TEXT