Our website says “We are a distributed team of superheroes”. This is true. What do we mean by “distributed”? We’re referring to the fact that we have people in Austin, Baltimore, Boulder, Charlottesville, New York City, San Francisco, and Serbia. And to the fact that we sometimes partner with people in other places when demand for our services spikes.
Why do we feel the need to point this out on our website? Because we want potential clients and job applicants to know that we work very well with others, whether they’re across the room or across the world.
How do we make this work so well? Here are a few things that help:
Video Meetings: We always try to steer meetings towards video rather than just audio. As soon as a conversation about working with us generates a meeting, we do our best to steer it towards video. It’s 2014, we have the technology, and a video meeting is worth a thousand phone calls. Our current tool of choice is Google Hangouts, not because it’s even remotely close to perfect but rather because it’s the best thing we know of right now. I also like that we can create a Google Calendar event with a Hangout attached.
In-person Planning Day: We do our very best to meet in-person with new clients for the planning day. This is a time when we don’t know each other well yet but we’re about to jump into the work. We need to talk to the client for a full day, reason together about important product decisions and build mutual trust. If we can only meet with a client in-person once, planning day is the day to do it.
Online Project Board: We usually prefer Agile Zen for this. One quick glance at a project’s Agile Zen board gives a pretty good indication of the current status. The client can prioritize upcoming work and verify completed work here. Email notifications alert everyone on the team about updates, questions, and other changes they might need to respond to or at least be aware of.
Hipchat: We use Hipchat for always-on group communication. We have a few dedicated Coshx rooms, including one to ask and discuss technical questions. This is one place where our clients really benefit from our collective knowledge and experience. We also create a room for each project and invite the client to join us there. This helps us stay in constant communication, which is great for keeping everything on track.
Tech Lunch: Every Wednesday someone gives a tech lunch about something they’re excited about. This is another place where our clients really benefit from our collective knowledge. If nobody has anything prepared then our fallback is usually a fun group coding exercise.
Screenhero: Screenhero allows us to pair program across the world (and sometimes across an office without having to move).
A Team Google Calendar: This is where we log upcoming time off, find out who’s giving the next tech lunch, set up client meetings, and more.
Github: This is where we store the source code for projects we’re working on.
CircleCI: Circle tells us right away, in the project’s Hipchat room, if our tests fail. Then Circle tells us when we fix them so we can get back to what we were doing before.
This list is not complete, nor is it static. We’re always finding new ways to rock without all moving to one place or requiring very much in-person client time.