A Tale from the Trenches: Cognitive Biases and Software Development

Souti Chattopadhyay, Nicholas Nelson, Audrey Au, Natalia Morales, Christopher Sanchez, Rahul Pandita, and Anita Sarma

Cognitive biases are hard-wired behaviors that influence developer actions and can set them on an incorrect course of action, necessitating backtracking. While researchers have found that cognitive biases occur in development tasks in controlled lab studies, we still don’t know how these biases affect developers’ everyday behavior. Without such an understanding, development tools and practices remain inadequate. To close this gap, we conducted a 2-part field study to examine the extent to which cognitive biases occur, the consequences of these biases on developer behavior, and the practices and tools that developers use to deal with these biases. About 70% of observed actions that were reversed were associated with at least one cognitive bias. Further, even though developers recognized that biases frequently occur, they routinely are forced to deal with such issues with ad hoc processes and sub-optimal tool support. As one participant (IP12) lamented: "There is no salvation!"

file_icon Bias Categories Table: Categories and definitions of cognitive biases, mapped to the cognitive biases described by Mohanani et al. [31].

file_icon Code Schema: Schema for analyzing cognitive biases from developer actions within the study.

Companion files also available on figshare at: https://figshare.com/s/c1936423caf7252677d3.