Since telecommuting came into vogue 5-10 years ago, we've seen tons of varying opinions--just google it, there are plenty of experts and journalists all saying different things. So while I can't universally say that telecommuting is the right option for everyone, I can absolutely say it's right for us and our clients at Drupal Connect where 90% of our development team is virtual.
Here's Why Telecommuting Works for Us
We Get the Best Talent
If our talent pool was restricted to our client's geographical area, we would be in big trouble. Drupal is a specialized product and the top developers are spread out across the country--in fact, across the world. Numerous clients have come to us after struggling with local developers for months or years. They have learned the hard way that PHP experience doesn't equate to Drupal skills. It takes time to understand the Drupal Way; the hooks, the FAPI, the various modules and ecosystem at large, and how to write maintainable, quality custom code--these skills simply cannot be picked up on the job in a month or two.
We Deliver the Best Value
I used to work as a technology consultant, frequently traveling four or five days a week for months-long projects. The work I did demanded an on-site presence, but in doing so it substantially raised costs. From personal experience, I know that by the time you add in airfare, per diems, and accommodations, each on-site resource adds several thousand dollars a week in overhead. In keeping our teams virtual, we are able to substantially reduce costs and deliver a higher value to our clients.
Our Work is in the Cloud
Nearly everything we do is on the Internet. All of our collaboration points-- dev sites, code repositories, bug trackers, project management tools, etc--are on the web. This easy collaboration lends itself very well to telecommuting. Even if we were all in the same office, our teams would literally be spending all day in their browsers--when not writing code of course. In addition, we have plenty of options for communicating through unlimited cellular voice plans, skype, or VOIP (not to mention geekier choices like IRC) -- our virtual teams can access everything they need remotely.
A Certain Je ne Sais Quoi
For a concrete example, I'm looking back on a recent project--ten months with a six-person development team--for a large client in Houston. I know we delivered top talent at a tremendous value and that the client had a very frustrating experience with local PHP developers. But beyond that, I also strongly believe our virtual presence helped initiate and drive change. We were able to keep some distance from the client--in a good way -- and after learning their processes and pain points, improved them. On this front, we used a couple of smart tools to facilitate communication:
- Jenkins, a build server, allowed us to easily maintain multiple branches of the same code base and keep various internal websites in the proper state, be it for QA, production, staging, or bleeding-edge dev.
- Trac, an issue management tool, provided us with a centralized location for all bugs and features and perhaps more importantly, kept these issues out of never-ending email threads
Our virtual team helped usher in positive changes that significantly improved collaboration and communication: given how difficult organizational change is, I'm not sure this would have been possible with an in-house or on-site team.