It Will Never Work in Theory

Software Developers' Perceptions of Productivity

Posted Aug 23, 2015 by Lorin Hochstein

| Productivity |

André N. Meyer, Thomas Fritz, Gail C. Murphy, and Thomas Zimmermann: "Software Developers' Perceptions of Productivity", FSE '14: Proceedings of the 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering, Nov. 2014. http://research.microsoft.com/apps/pubs/default.aspx?id=228971

The better the software development community becomes at creating software, the more software the world seems to demand. Although there is a large body of research about measuring and investigating productivity from an organizational point of view, there is a paucity of research about how software developers, those at the front-line of software construction, think about, assess and try to improve their productivity. To investigate software developers' perceptions of software development productivity, we conducted two studies: a survey with 379 professional software developers to help elicit themes and an observational study with 11 professional software developers to investigate emergent themes in more detail. In both studies, we found that developers perceive their days as productive when they complete many or big tasks without significant interruptions or context switches. Yet, the observational data we collected shows our participants performed significant task and activity switching while still feeling productive. We analyze such apparent contradictions in our findings and use the analysis to propose ways to better support software developers in a retrospection and improvement of their productivity through the development of new tools and the sharing of best practices.

One of the goals of software engineering researchers is to improve the productivity of software developers. To show an improvement in productivity, you need to be able to measure it, and that turns out to be a tricky thing to do. Researchers have tried metrics such as lines of code per day, function points per day and story points per iteration, but these are all ultimately unsatisfying. Martin Fowler has gone so far as to assert that we cannot measure productivity.

Yet, I suspect that every programmer has thought at one time or another "I really got nothing today". Similarly, I'd wager that every programmer has had days when they simply felt that they were more...well, productive. Like Justice Potter Stewart said of pornography, when it comes to productivity, we know it when we see it.

And so, it's a shock to discover that this is the first published research on software developers' subjective sense of productivity. The authors conducted a survey and an observational study to understand how productive programmers feel when engaged in different tasks, as well as the impact of other factors such as having clear goals or switching contexts.

The survey revealed that completing tasks and having few interruptions were the top two reasons for a productive workday. The surveyed developers selected coding as the most productive activity. Developers reported meeting as both the most unproductive activity and the second most productive activity, a result that manages to be both counter-intuitive and completely unsurprising (in retrospect).

I personally find observational studies more interesting than surveys, and this paper is no exception. For example, I would not have guessed that developers spend only 3.9% of their time debugging compared to 32.3% of their time coding. I was also surprised by the high rate of activity switching the authors observed: 47 times per hour(!).

The challenge in this kind of observational research is applying the results. The authors do make some suggestions about ways this information could be used to improve productivity (e.g., monitoring tools, reducing context switching, setting goals), but these aren't nearly as interesting as the results themselves.

Still, even if we don't quite know what to do with this information yet, the results are still important to help us to better understand how software developers perceive their own productivity.

Note: An earlier version of this blog post incorrectly attributed an essay about productivity measurement to Robert Martin. It was written by Martin Fowler.

Comments powered by Disqus