Large-scale software is developed by teams of engineers that work together. The teams’ compositions change all the time, with engineers continuously leaving and joining. Learning about these organizational dynamics is vital to understanding how engineers acquire technical skills and business relationships throughout their career. In addition, since employee turnover can be costly to team morale and productivity, it is important for management to learn how to proactively guide the process.
In this talk, I report on a study of a professional software development organization in which engineers switch teams frequently. We learned what causes engineers to consider leaving their teams, why they leave, how they learn about new teams, and how they decide which team to join. We also quantify the perceived costs and benefits of recent moves made by the engineers. We offer recommendations to engineers and their managers on how to ensure that both make better, happier team moves.
Andrew Begel is a Senior Researcher at Microsoft. He studies software engineers to understand how communication, collaboration and coordination behaviors impact their effectiveness in collocated and distributed development. He then builds software tools that incentivize problem-mitigating behaviors. Andrew’s recent work focuses on the use of biometrics to better understand how software developers do their work, on understanding evolving job roles in the software industry, and on helping tech companies learn how to work more effectively with autistic software engineers. Andrew received his Ph.D. in Computer Science from the University of California, Berkeley in 2005.