For novel ideas about building embedded systems (both hardware and firmware), join the 27,000+ engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. It takes just a few seconds (just enter your email, which is shared with absolutely no one) to subscribe.
By Jack Ganssle
Last week CIO magazine ran an article (http://www.cio.com/article/108501) titled: "Getting Clueful: Seven Things the CIO Should Know About Telecommuting." It's a short and pithy piece that contains some excellent advice for any boss who is either reluctant to try telecommuting, and for those flirting with a pilot program.
Telecommuting, for both workers and bosses, is hard, is doomed to fail when not carefully managed, yet can yield some phenomenal returns. When successful the entire organization wins: home workers are more productive, the company saves overhead costs, and those left in the office suffer fewer distractions.
The article claims that telecommuters are more productive without offering any supporting evidence. For that read "Peopleware: Productive Projects and Teams," by Tom DeMarco and Timothy Lister. The authors' decade of experiments with programmers showed that programmers who work with minimal interruptions are much more productive than those without. The best 25% were nearly three times as productive as the worst 25%. Unfortunately DeMarco and Lister don't break the data down more finely, but given those results for the top and bottom quartiles, it's pretty clear that the top 5 or 10% must have a staggering productivity advantage as the worst performers.
Many other researchers have replicated their results. The conclusion is that for complex mental tasks like programming, interruptions are the primary productivity killers. We build an intricate mental model of our task which collapses into pieces when the PA blares some inane announcement, a coworker answers his phone, or a well-meaning but misguided associate stops by the cubicle and to ask where the coffee filters went.
Disciplined telecommuters insulate themselves from interruptions, and thus can work extremely efficiently. Even if one were not able to obtain the DeMarco and Lister numbers, and "only" managed a 2x boost, that means the manager gets two folks for the price of one.
Home distractions can be plenty alluring, too. The TV, fridge, kids and dog all vie for one's attention. But, with some restraint and a well-planned office the worker has nearly complete control of those sorts of interruptions. At the office they come in asynchronously and uncontrollably.
Yet few embedded developers telecommute. Reasons are many. Most are bogus. Sure, meetings are important, social interaction is a critical part of most jobs (and lives) and, yes, we must be available for the boss. Though perhaps it's impossible to work from home 20 days a month, most of us could manage a day a week. In that one day we'll skip the grueling commute, probably put in more than the requisite 8 hours, and do a couple of days' worth of work.
It's true that sometimes the need for expensive lab equipment binds us to the office. So at least while debugging this may be, in some cases, an insurmountable problem.
Do you telecommute? Why or why not? Would you like to?