Audio: Listen to a version of this story on the Three Minute Egghead podcast.
How many projects can you work on at the same time, before losing efficiency? There are many reasons to get involved in multiple projects – impress your boss, gain personal satisfaction, help out colleagues or just because you’re interested. But at some point, there must be one project too many.
“There is a limit,” said Bogdan Vasilescu, postdoctoral researcher in the DECAL lab at the UC Davis Department of Computer Science. “Multitasking fills time that’s otherwise unused, but there is a limit at four or five projects in a week.”
That estimate comes from what Vasilescu and and computer science professor Vladimir Filkov call “digital archaeology,” conducted on the vast amounts of data within the collaborative open-source programming site, GitHub. Vasilescu, Filkov and their colleagues excavated GitHub’s records of how individual programmers contributed to different pieces of software to reach their conclusions, which will be presented at the International Conference on Software Engineering in Austin, Texas May 20. The paper is available online.
GitHub was founded in 2008, and Vasilescu has been studying it since 2012. The site now includes over 12 million contributors who self-organize around millions of different projects, creating billions of lines of code that anyone can use.
“Your GitHub profile is a programmer’s resume now,” Vasilescu said.
Because GitHub records everything, Vasilescu and Filkov could measure how individual programmers work: how many projects they work on during a week, how many projects they switch between in a day, how much they focus on any single project, and how repetitive is their day-to-day behavior. Then, they statistically analyzed which working styles associate with increases in the number of lines of code written per week — one of the facets of programming productivity.
“Over four of five GitHub projects per week, your attention becomes too fragmented, regardless of how you schedule working on them,” Vasilescu said. The results are in good agreement from studies by psychologists, Filkov noted.
The researchers plan to keep digging through GitHub for more treasures. For example, what mix of people creates an effective team? What trade-offs are programmers making with their privacy, when they give away information about themselves by participating in collaborative projects?
It’s a new way of doing science by mining vast amounts of data, Filkov said. “This model of research is here to stay. Software engineering datasetsof this size have never been available before.”
Additional coauthors are: Casey Casalnuovo and Premkumar Devanbu at UC Davis; Kelly Blincoe, University of Auckland, New Zealand; Qi Xuan, Zhejiang University of Technology, Hangzhou, China; and Daniela Damian, University of Victoria, Canada. The work was received support from the National Science Foundation, NSERC Canada and NSF China.
Update: Bogdan Vasilescu is now an assistant professor at Carnegie Mellon University.