You will always want the best developers. Or at least those more adequate to your company. They won’t be in your city. The world has 7 billion of people and each one can have good reasons to not reallocate or travel daily. Forcing them to do so will result in higher hiring costs and dissatisfaction with the moving. But don’t get me wrong: someone isn’t accommodated just for deciding to not leave friends.
Limitations exist. Geographical distance can’t be considered one. We are on the 21st century.
Hiring remotely doesn’t necessarily mean closing a deal with Indonesians (but would probably add a lot in culture); a remote employee can be in a close city or even in the peripheral area of the same. Because, definitely, developers don’t need to be in the same room to do their job.
Although you may think so, developers’ job is not just deploy a list of features. They need a casual environment of constant knowledge exchange. It’s like an office itself, where they can talk about the need of semicolons in JavaScript while drinking a cup of coffee. An abnormal high rate of delivered points on Pivotal Tracker can be a sign of a successful project, but also exhaustion and introduction of bugs to be noticed just few sprints later. As any professional, they will have a place to learn and cool off when needed. Problems are solved putting everyone interested in the project in the same room; no wonder a discussion group on Campfire is called room.
Campfire isn’t any witchcraft. It’s just a chat. People send messages that other team members can read. With a differential: not every message needs to be read instantly. When you feel that this is needed, you can use… instant messaging (like Google Talk or Skype), which keep working as always. But what kind of message would you send in a company’s (or team’s) chat? The same sentences said out loud in the office’s room: “Hey, do you know any lib for authorizations compatible with Rails 4.1?”, “Ruby 2.1 with rbenv isn’t properly loading with the project”, “What do you think of the design of this autocomplete” or “Can’t we send user’s password by e-mail?” or “Can we find any alternative without leaving this page?”. All of them are part of features that a developer could do alone (with or without Google’s help), but why not share?
As any workroom, not everything is about work. The Campfire room is free for talking about the movie watched in the weekend, an article being shared on Twitter or the last video from Freddie Wong. This kind of action will bring the office to anyone distant from it.
A concern to those trying this method is about communication. Although is a really important worry, cannot be a reason to prevent its use. Working physically remote won’t stop - or increase - communication problems, but will make them clearer. Given the both sides of the coin, you can use this to fix existing problems. A person pushing a feature after its estimated time without asking for help shows someone without pro activity. Being in the same site, he could argue the problem was implicit; remotely, it must be directly reported.
And remember about the need of instantly reading each message? It will give you a bonus: having a lot of people in the same room will force you to scan messages from those not working directly with you. This process will stand to, in a future point, remember yourself that someone knows something about a given problem that you are having. Will stand to know what happens in the company. In a way that working in site wouldn’t allow you. This will give the flexibility to do your job outside of office’s schedule and even attending more courses.
But one of the challenges of working with Campfire is using it in the same room (that with four walls). What should be spoken and what goes as text? Each company can find the better solution for itself, but one simple and interesting use is: needs to be heard or can be interesting to someone else? Campfire. Is immediate? Skip instant messaging and poke your co-worker. You will see satisfaction and more concentration in the team.
So, use Campfire. Even if not from 37signals. You can have HipChat, a channel on IRC or any set group on a chat. Tools, as any other, must be used with a purpose.