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.


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.

ViC Pilot at TuW

Piloting values Q-Sort

What values are guiding software engineering?  And what methods and tools might we be able to use to study this?  These are the questions that the Values-First SE (Software Engineering) project hopes to answer.

One month into the project, my colleague Steve Forshaw and I (Emily Winter) traveled from Lancaster to Vienna to meet with project partners and Human Computer Interaction experts at the Institute of Visual Computing and Human-Centered Technology at TUWien.  We took with us some pilot tools  (i.e. the values q-sort cards mapping the latest draft of ACM ethics to Schwartz’s values model – see photo above) that we had been developing, and over the course of the week received feedback as to how we might modify and improve them.

The week was an important reminder of the inherent messiness of this research area- the slipperiness of values, and the difficulties posed by trying to study them.  Studying values in an area like software engineering involves multiple aspects.  We can expect software design and development to be influenced by the values of wider society including politics and economics; the principles and norms of the software industry; the corporate culture of the specific company; and the values and priorities of the individual developer.

The values of these different actors may sometimes align and may sometimes be in conflict.  In addition, there are differences between people’s and organisation’s espoused values and actual practices.  We might also expect that the values embedded into a software product may change radically once the software is released into the market, particularly if it enters into wide usage.

It’s a huge challenge.  But there are methods and tools available to study values, and the trip to Vienna allowed us to try out some early ideas.  The very nature of the research area offers exciting opportunities to combine different methods and tools, and there are established frameworks, such as Schwartz’s values model that can be used.

The necessity of  trying to tackle this challenge also seems ever more pressing.  In Vienna, we heard about TUWien’s new module on Ways of Thinking in Informatics- a module that hopes to encourage critical thinking in computing.  However, in many cases, computer science courses rarely include content and opportunities to reflect on values, unless it is in the form of ethics, which are often presented in dry and uninspiring forms.

As software increasingly influence people’s lives and as scandals like the Cambridge Analytica  and SCL case emerge (see Emma Briant’s work on the matter, for example), the need to spark discussion around values in computing seems ever more urgent.  As the project progresses, we hope not only to develop methods and tools to study the values that are prevalent within software engineering, but also to play a role in encouraging this vital conversation.