Marissa Mayer is completely right
It may surprise some of you that despite my open source roots and business, I’m not on the whole a big fan of telecommuting. I’ve worked for companies where it worked and companies where it didn’t. I nodded my head when I read about Mayer’s switching Yahoo away from telecommuting. She is totally right.
One big company that I worked for was big into it for employees, but not contractors. A particular employee I worked with tended to telecommute all but one day per week. When he came to work it was like the second coming, everyone had to bend their schedule around his because after all, he wouldn’t be around until next week. You could chalk that up to one abuser, but I also worked at another large company that was mostly telecommute. Everyone at that company telecommuted and it resulted in endless freaking conference calls. We are talking 35 hours per week trying to convince someone to let me do 5 hours of work. I refused to work overtime because the company violated federal labor laws and tried to not pay for time over 40 hours for hourly employees and offer “comp time” but not as a 1:1 ratio... but that is another story. Most of these calls were very unproductive with multiple babies crying in the background. At one point they had me on two conference calls at the same time and expected me to answer in real time on both. I quit very soon after and called up Marc Fleury and said “I just quit my job, I hope you have enough work for me.”
This lead me to work at a company where telecommuting not only worked, but was a necessity. It allowed JBoss to tap top talent from all over the world. There is a difference between “offshoring” and “I don’t give a crap where you are just get the work done” and JBoss’s telecommuting was the latter. Telecommuting worked at JBoss because of the seniority of the staff due to pretty selective recruiting (often times self-selection). It also worked because the JBoss Application Server was architected in such a way that collaboration was infrequently necessary. As time went on, however, more and more people were collaborating and in some cases this resulted in hurt feeling and other social problems. It also resulted in “clustering”. Leads of projects started having offices with people who worked on similar things being grouped geographically and working out of the same office. This allowed for more sophisticated software than the rough aggregation of modules and fairly simplistic application server that the early JBoss was.
However, the company I started in 2008 and currently lead only allows occasional telecommuting for exceptional reasons and with prior arrangement. For instance, we don’t have snow plow or salt and cinder technology in North Carolina and I am only barely exaggerating about the snow plow, we do have one somewhere. However, 99% of the time everyone is in the office.
Why? Because I don’t believe it makes sense to have senior developers writing JSP pages. I believe it makes sense to have every developer with their head “barely above water”. Meaning they are getting something out of whatever they are doing but aren’t “over their head” and will successfully create the software. To accomplish this you want a mix of people. For everyone to progress they need to learn from each other in the highest bandwidth way possible. That means face to face and smelling each other’s breath.
Another reason it is different is that we are doing more business applications and mobile apps than the type of system programming that JBoss did. This is much more collaborative with creative content, application content and backend content that must work seamlessly together. Often times the release cycles are pretty aggressive. This requires high bandwidth communication.
I also wanted a learning environment. As I mentioned before, I don’t want senior developers doing things that bore them because they’ll “phone it in” and screw it up. Not for lack of work ethic, but because the brain works different when it is bored. Also this is good business as the margin is lower. I want senior developers doing senior developer things and the rest of the time I want them mentoring developers more junior than them. This is easiest to do face to face. Moreover, I want an environment where people care about the company they work for and their fellow employees, and it is very difficult to foster that remotely. Scratch that, near to impossible.
Mayer is trying to turn around a company that has spent a decade in the wilderness. This requires high bandwidth communication. It also requires people to care and collaborate seamlessly. This requires face to face communication. Moreover, it is a great way to do a layoff without actually announcing a layoff and losing your stock price. I suspect they won’t let anyone truly valuable go, but maybe start to cluster them. Software creation is a social exercise and Mayer is a smart lady, possibly an overconfident one (turning around Yahoo is the kind of level where you meet the big boss guarding the princess who breathes fire and feasts on the souls of former CEOs), but frankly I think she nailed this decision.