Digital Nudges for Encouraging Developer Behaviors
PhD Student, North Carolina State University
Thursday, January 21, 2021
9:30am - 10:30am
Decision-making is one of the most important skills in software engineering. Professional software engineers, or developers, are frequently faced with decisions in their work, and the choices developers make have a significant impact on the technology we use everyday. Unfortunately, software engineers often make bad decisions in their work and research shows developers frequently adopt bad programming behaviors. Furthermore these bad decisions are very costly, leading to negative user experiences and wasted time, money, and effort for developers and companies. To improve the decision-making of developers, this work seeks to incorporate concepts from behavioral science, specifically nudge theory, into software engineering to design automated recommendations to improve developer behavior. 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.
Thus, I introduce developer recommendation choice architectures, a framework for creating effective automated recommendations that nudge developers towards better behaviors and practices in their work. To provide evidence supporting this framework, I collected quantitative and qualitative data from experiments observing the behavior of computer science students, open source software developers, and professional software engineers in industry to show that incorporating developer recommendation choice architectures into automated recommendations improves the productivity of developers and the overall quality of the software they create. As our society becomes increasingly dependent upon technology, I aim to use this framework to continue observing developer behavior and motivating the design of future tools for improving the productivity, decision-making, and behavior of software engineers, thus enhancing user experiences and increasing the quality of software we use in our daily lives.
Chris Brown is a Computer Science PhD student at North Carolina State University from Rock Hill, SC. After completing his Bachelor’s degree in 2013 at Duke University, he spent several years as a software developer in industry before returning to graduate school at NC State in 2015, where he works with Dr. Chris Parnin. His research focuses on improving the behavior, decision-making, and productivity of software engineers by integrating concepts from behavioral science into bots and automated systems.