Allow for remote work and keep meetings at bay, and you will have the most productive developers money can buy,
That's the word from Brian Houck, principal productivity engineer for Microsoft, who studied productivity patterns at his company and shared some of his findings with attendees at the recent Developer Productivity Engineering (DPE) conference in New York, sponsored by Gradle. Houck and his team studied 5,000 developers across the company and found some surprising results.
Also: 5 practical ways to separate work from the rest of your life
As with almost every company, the 2020 COVID crisis created a 100% remote work environment for all office and professional workers at Microsoft. This gave Houck and his colleagues the opportunity to study the impact of remote work on developer productivity, and they went to 5,000 developers and engineers across the company to explore the issues. The verdict: Developers are more productive and happier when working remotely, versus five days in the office. A puzzling outcome of their study, however, was that hybrid work situations did not result in greater productivity or job satisfaction.
A revelation from the study was that friction in developers' time -- especially waiting for code reviews and having to spend time at meetings -- caused them to lose focus. "Focused work" is key, and the distraction factor was a key inhibitor to productivity, he said.
Measuring productivity turned out to be a complex exercise. For instance, the number of developer pull requests went up 20% during the full remote work period in the spring of 2020. At the same time, Microsoft's stock price went up 20%. "We were producing a lot of code," Houck related. "If you look at those numbers, surely we were being more productive, right? No. Our developers were miserable. They were working 12 to 14 hours a day, and feeling disconnected from their teams."
Productivity is more than just output quantity, Houck continued. Importantly, he added, productivity and job satisfaction vary depending on circumstances. "Fifty-five percent of our developers had less distractions working remotely; 49% had more distractions. Productivity is not one thing. it is many things -- such as "how happy and fulfilled your developers are." When asked what productivity means to them, developers mentioned learnings, business outcomes, and amount of work.
Ultimately, Houck and his team concluded, happiness and job satisfaction for developers come from "spending their days writing code. They don't want to spend their days reading and writing emails. Writing code is a more fulfilling use of their time. We saw that the amount of time developers spend their days coding possibly correlates to their overall job satisfaction."
Also: The impact of artificial intelligence on software development? Still unclear
At the same time, productivity is in the eye of the beholder. "If you asked developers every day how productive they were, and correlate that to what they actually did that day, you find that amount of lines of code they wrote or amount of bugs they fixed have no explanatory power over how productive they felt that day," Houck says.
Houck's team also found that "many developers really struggle with their satisfaction on with their work-life boundaries. And that has a very meaningful relationship to their self-reported productivity. So the key is not to stretch the day longer -- it's finding more time to do focused work. To do that deep thinking, free of interruptions."
To this end, the researchers measured what they defined "as an uninterrupted block of time of an hour or more -- no emails, no IMs, not hopping on Team calls or Zoom calls," Houck relates. "And we can see that development teams who have more time for focused work do more focused work. Developers who feel like they have a better ability to focus are much more likely to say they are productive."
The solution, he concluded, is to have developers "formally block time on their calendars to do focused work. Developers who formally block time on their calendar do 80% more coding during those times than they do during empty blocks of time on their calendar."
Also: Everything you need to work from home
Plus, "explicitly setting aside blocks of time to code is substantially more effective than trying to find empty blocks of time throughout their day," he continues. "One of the most powerful ways to improve productivity in organizations is to assist employees setting aside time to do productive work."
A way to enhance the quality of this blocked time "is to reduce the amount of time we are in low-quality meetings. Too many meetings is the second-most cited workplace challenge for developers." Of course, some meetings are important, especially those that involve collaboration or meetings with bosses.
"How do we tell if a meeting is a low-quality meeting?" he asked. "One way is if you're doing something else during that meeting. If you find yourself sending emails or writing code, that isn't you being more productive, it's sitting in a meeting you shouldn't be in."