The Work Life of Developers: Activities, Switches and Perceived Productivity – TSE 2017

by André N. Meyer, Laura E. Barton, Gail C. Murphy, Thomas Zimmermann, Thomas Fritz

Many software development organizations strive to enhance the productivity of their developers. All too often, efforts aimed at improving developer productivity are undertaken without knowledge about how developers spend their time at work and how it influences their own perception of productivity. To fill in this gap, we deployed a monitoring application at 20 computers of professional software developers from four companies for an average of 11 full workdays in situ. Corroborating earlier findings, we found that developers spend their time on a wide variety of activities and switch regularly between them, resulting in highly fragmented work. Our findings extend beyond existing research in that we correlate developers' work habits with perceived productivity and also show productivity is a personal matter. Although productivity is personal, developers can be roughly grouped into morning, low-at-lunch and afternoon people. A stepwise linear regression per participant revealed that more user input is most often associated with a positive, and emails, planned meetings and work unrelated websites with a negative perception of productivity. We discuss opportunities of our findings, the potential to predict high and low productivity and suggest design approaches to create better tool support for planning developers' workdays and improving their personal productivity.

Reference

André N. Meyer, Laura E. Barton, Gail C. Murphy, Thomas Zimmermann, Thomas Fritz. The Work Life of Developers: Activities, Switches and Perceived Productivity. In IEEE Transactions on Software Engineering: (2017), 2017. To appear

BibTeX Entry

@article{meyer-tse-2017,
    title = "The Work Life of Developers: Activities, Switches and Perceived Productivity",
    author = "André N. Meyer and Laura E. Barton and Gail C. Murphy and Thomas Zimmermann and Thomas Fritz",
    year = "2017",
    journal = "IEEE Transactions on Software Engineering",
}