I’ve worked as a telecommuter for 7 years and as an on-site employee for 3. I’ve spoken to those who are both strongly for telecommuting and strongly against it. The conclusions I’ve come to are:
Telecommuting programmers work more and are more productive in the hours they spend
Because there’s no physical going to work, one is always at work. As a telecommuter I tended to work 10-12 hour days as opposed to the strict 8 hour schedule at my on-site work. Furthermore, I tended to work at times when I was feeling most productive, with fewer interruptions, noise, and on better equipment. Last month a lead programmer at the Collective spent one day working at home and remarked to me “I’m surprised how much I got done at home.” This is no surprise to anyone that has telecommuted.
Telecommuting programmers have better communication
A common argument against telecommuting is that communication is worse. The quality of written vs. verbal communication depends on the communication skills of the indvidual. While some producers and artists need improvement on this, programmers tend to excel at textually describing information, using accurate terminology with complete descriptions and all necessary and relevant information In practice, be it instant messenger or email, programmers are more likely to accurately describe what they mean in text than verbally. Furthermore, it is much faster to read and write than to speak, without the repetition and noise you get with verbal descriptions. Should verbal communication be necessary, there is an invention called the phone that does a pretty good job. It’s never been necessary for me in 7 years.
Regardless, I really don’t see any difference between speaking to someone on the phone and speaking to them standing there. Need diagrams? Want to show a bug? I’ve never had a case where a bug could not be accurately described to me without being there in-person.
Another benefit of electronic communication is that one can quickly send short messages “Where is the code that renders the GUI?” on instant messenger and get a fast response “See GUI.h”. This results in vastly improved productivity for the person asking the question without disrupting the attention or workflow of the person answering the question. With verbal communication you invariably disrupt the person you are asking and it takes them 15 minutes to get back into the zone.
Part of the reason why one person (me) was able to implement loading and saving of multiplayer games, with 4 game modes, in Deadly Dozen 2 was because of the efficiency of electronic communication. Anytime I had a question I could ask and get a fast answer. There is a massive time savings between being able to ask a question and continue working as opposed to having to guess and check foreign code, and redoing work because a previous assumption was incorrect.
Everyone I’ve spoken to that has tried telecommuting has had positive feedback regarding communication. One producer indicated to me that he wouldn’t allow it because of the poor communication. When I asked him if he actually tried it before his answer was “No but…”
Telecommuting programmers are cheaper
No office, no power usage, no free lunches, the programmer provides his own equipment. Programmers at home tend to continue working while eating while programmers at the office tend to go out to lunch with coworkers. Furthermore, telecommuting positions are in higher demand and there is a shortage of available positions. Due to supply and demand, this means telecommuting employees will often work for less and there is a greater pool to choose from. I’ve turned down work at Blizzard because they have no incentive to offer me to work there other than more money. But if they were to let me telecommute my quality of life would be so much higher that would supplant any monetary incentives they could offer.
But I don’t know who is working!
One argument against telecommuting is you can’t control people. You don’t know what they are working on or if they are working at all. However, just because you force a programmer to be at his desk doesn’t mean he is working. As long as the employer practices due diligence, keeping track of what people are working on whether they be at the office or not, you can easily detect the bad apples.
In my opinion a company that lets its programmers telecommute would enjoy increased productivity, lowered costs, and better communication.