Measuring Values in SE

Values as mental representations.
FIgure 1: Values as mental representations to be studied on three levels: system (L1), personal (L2), and instantiation (L3) level.

“Measuring Values in Software Engineering”  is our latest peer-reviewed  work. It has been accepted for presentation at the 12th International Symposium on Empirical Software Engineering and Measurement (ESEM2018), 11-12 October 2018, Oulu, Finland.  Accepted on: 13th  August 2018 . Pre-print version.

Abstract

Background: Human values, such as prestige, personal security, social justice, and financial success, influence software production decision-making processes. Whether held by developers, clients or institutions, values are both highly subjective and deeply impactful on software outcomes. While their subjectivity makes some values difficult to measure, their impact on software motivates our research. Aim: To contribute to the scientific understanding and the empirical investigation of human values in Software Engineering (SE). Approach: Drawing from experimental psychology, we consider values as mental representations to be investigated on three levels: at a system (universal, L1), personal (abstract, L2), and instantiation level (concrete, L3). Method: We design and develop a selection of tools for the investigation of values at each level. As an example, we focus on the design, development, and use of a Values Q-Sort built by mapping Schwartz’s universal values model onto the ACM Code of Ethics. Results: Q-statistic sorts work with smaller samples than R-statistic surveys; from our study with 12 software practitioners, it is possible to extract 3 values ‘prototypes’ indicative of an emergent typology of values considerations in SE. Conclusions: The Values Q-Sort combines the extraction of quantitative values prototypes that indicate the connections between values (L1) with rich personal narratives (L2) reflective of specific software practices (L3), and as such, it supports a systematic, empirically-based approach to capturing values in SE.