And you thought being a software engineer was all about dreaming up clever algorithms or amazing graphics routines and then instantiating them in elegant, tightly written code. Shows what you know.
It turns out, at least according to a survey conducted by software delivery service Electric Cloud, that developers spend almost 20% of their time... waiting. Waiting for their code to compile (that is, for it to be translated from a programming language like Python or C into a binary machine language computers can execute). Waiting for test routines to finish running. Waiting for that junior developer to get back with the Diet Coke and Funyons.
You get the idea. According to the survey, software engineers spend as much time waiting as they do brainstorming and collaborating. Check it out (click on each graphic for a larger version):
Of course, waiting can take many forms. Some programmers doubtless use the time to plot our their next project or bug fix. Others may have, well, other pastimes. (As in this iconic XKCD comic, for instance.) In any event, the sheer amount of time devoted to the waiting game blew the surveyors away.
"It was definitely surprising," said Ashish Kuthiala, Electric Cloud’s director of marketing. "When I was a software engineer, I remember losing time to meetings when I’d rather be coding. But we didn’t realize how much time engineers lose waiting for tests and builds to complete."
Electric Cloud conducted its survey last month after hearing clients — a group which includes Intuit, Samsung and GE — complain their engineers weren’t working as quickly as they’d like.
"Software engineers are our clients' most expensive resources, so they're always concerned about whether they're being as productive as they can be,” Kuthiala said. Spoken like a true pointy-headed boss, you might say.
Electric Cloud circulated the survey to LinkedIn groups and forums engineers frequent, offering a Kindle raffle prize as an incentive. So far, it's received nearly 1,200 responses. Survey participants had the option to remain anonymous or disclose their company names.
"Every time we conduct the survey, the results continue to map on top of each other," Kuthiala said. “It doesn’t just show how the majority of engineers spend their time, it can be used as a benchmark to see how your company’s engineers are doing compared to the average."
Is there any way to shorten those waits, or even avoid them altogether? Not really. Unsurprisingly, Electric Cloud offers a service it says can help by automating the cycle of building, testing and deploying code. Some open-source software claims to do something similar. And then there's the time-honored, if not-necessarily-reliable, option of just throwing as much hardware as possible at the problem.
And yet as long as there are compile delays and testing latencies, engineers will always have an excuse when they're slacking off.
Let's hear it, coders. How does your work week break down compared to these survey results?
Photo by Flickr user Phil Heaberlin, CC 2.0
Updated at 11:49 AM on April 25: Electric Cloud's client list has been updated based on new information from the company.