For novel ideas about building embedded systems (both hardware and firmware), join the 28,000+ engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
By Jack Ganssle
iPods for the Masses
Most wags consider Fred Brooks' The Mythical Man-Month the classic work on software engineering. From it emerged Brooks' Law, which states: "adding people to a late project makes it later."
But in my opinion DeMarco and Lister's Peopleware is the single most important book on the subject ever written. To learn about software productivity the authors ran "coding wars" that pitted development teams from some 600 organizations against each other. Turns out experience, salary, language used and all of the other parameters we'd normally consider important were in the noise. The biggest factor? Interruptions.
Teams with the fewest interruptions were nearly three times as productive as those suffering from the usual plague of never-ending phone calls, queries from fellow workers, the chime of ever-more incoming email, and the like.
Three times. Think about it.
Later studies by other researchers found that after an interruption it takes 15 minutes to get into a state of "flow," that Spock-like trance where you're one with the computer. Yet the average developer gets interrupted every 11 minutes.
Most managers stick their engineers in cubicles rather than private offices, insuring that every overhead page breaks into their thoughts, and anyone's ringing phone brings the entire room's productivity to a screeching halt.
Dilbert rightly calls cubes "anti-productivity pods."
One company, just starting to design a new engineering building, asked me to discuss this issue with upper management. I explained the perils of interruptions and the benefits of offices. Hours of negotiating failed. I was told that the interior designers promised that cubes were more "flexible" than offices.
Me, I'd take productivity over flexibility any day.
Later I had exactly the same discussion with a large company in Finland. That country has two official languages, Finnish and Swedish. English, the language in which we held our talks, is commonly spoken but has the status Spanish holds in the USA. Managers told me, in English of course, that cubes are more "flexible." Same word, different culture.
I think it's a conspiracy.
But the fact is few companies will abandon the stampede to maximize noise and therefore destroy productivity. We engineers simply have to work under the big boss's radar screen to employ practices that let us work efficiently despite a work-hostile environment. There are a lot of tricks we can use. One I've advocated for years is to wear headphones, at least for a few hours a day, to drown out the incessant office hubbub.
But here's a better solution: managers should buy each member of the team an iPod or similar high-capacity MP3 player.
For two or three hundred dollars, say a quarter percent or less of the fully-loaded cost of a developer, this sort of tool drowns out the office politics and chatter and lets Joe Coder focus on cranking great code. Joe's productivity rate will soar. That small investment gets recouped in hours.
I bought a Dell DJ Digital Jukebox (http://www1.us.dell.com/content/products/productdetails.aspx/dj_20_new?c=us&cs=19&l=en&s=dhs), a $249 marvel that packs 20 Gb of music into a shirt-pocket sized package. My 250 or so CDs fill less than half the unit's memory and offer something like 5 work-weeks of music without a repeat. We've taken to calling the thing a DellPod in deference to Apple's leadership in the industry. The Dell unit offers a quality of sound that is, well, music to the ears.
For some reason the supplied ear buds are, for me, uncomfortable. Others in the family have no problem with them. Oddly, if I reverse the channels, putting the left one in my right ear, they feel fine. Or consider Bose's noise-canceling headphones (http://www.bose.com/q3304). Though I've yet to try these out, they look like a comfortable way to insulate oneself from a bustling, noisy office, at least for a few hours a day.
I'd never advocate living in this cocoon for 8 hours straight. We build products as teams, working with other developers, bosses, marketing dweebs and customers. Monkish isolation is načve. But for a couple of hours a day, when your need to concentrate deeply is thwarted by the noisy office, don the headphones and drown out the discord.
The role of a manager is to help her people be maximally productive. That includes providing the appropriate tools, from an environment that has heat and water, to compilers and debuggers, and even to devices and strategies that help one think.
What do you think? Should the company balance their need for "flexible" cube space with tools like MP3 players?