Digital Nudges for Encouraging Developer Behaviors
PhD Student, North Carolina State University
Tuesday, October 6, 2020
10:30am - 11:30am
Zoom; Registration Required
Software is a vital part of our daily lives. As our society grows increasingly dependent upon technology, the choices professional software engineers make in their work often have a significant impact on the technology we use everyday. Unfortunately, these developers often make bad decisions. For example, research shows software engineers frequently adopt bad behaviors such as under-testing their code, avoiding tools to automatically find programming errors, storing secure passwords in configuration files, and ignoring ethical programming guidelines. Poor programming behaviors are also very costly for software users and companies, with the Tricentis Fail Watch reporting software failures impacted over 3.6 billion users and cost over $1.7 trillion USD in 2017. To improve the behavior of programmers and help developers make better decisions in their work, this research spans disciplines to incorporate concepts from behavioral science, specifically nudge theory, into software engineering.
Nudge theory is a framework for improving human behavior by influencing the environment surrounding decisions, or choice architecture, without 1) providing incentives to adopt the target behavior and 2) banning alternative choices. For example, studies show placing fruits and vegetables at the front of a grocery store encourages humans to purchase and consume healthier foods without providing a reward nor preventing customers from buying junk food. This work introduces developer recommendation choice architectures, a framework for creating effective recommendations that nudge developers towards better behaviors and practices in their work. The framework consists of three principles: actionability, or the ease with which developers can adopt the target behavior, feedback, or the clarity and relevance of the information provided, and locality, or the placement and timing of recommendations.
The results show incorporating developer recommendation choice architectures into automated recommendations improves the productivity of developers and the overall quality of the software they create. This framework aims to observe developer behavior and motivate the design of future tools for improving the productivity, decision-making, and behavior of software engineers. Ultimately, this research hopes to encourage the adoption of beneficial programming behaviors, enhance user experiences, and increase the quality of software we use in our daily lives.
Chris Brown is a Doctoral Candidate in Computer Science at North Carolina State University advised by Dr. Chris Parnin. His research focuses on improving the behavior, decision-making, and productivity of software engineers by integrating behavioral science concepts, such as nudge theory, into bots and automated recommendation systems.