Success With a Remote Engineering Team

By Nate Crosno, Sr. Web Developer

“Tech Company” might not be the first thing that comes to mind when someone hears the name Limos.com, but the truth is we have a great in-house engineering team (If I do say so myself). With Yahoo all over the news after revoking all remote working privileges, we want to share our success. As the company has grown we’ve experimented with various techniques and feel we’ve settled into a steady rhythm of deploying quality features at a very quick pace with an almost entirely remote engineering team.

Our team currently consists of all remote developers while our QA, DBA, and management works primarily in our SF office. We’re a Rails shop and have had much more success finding qualified candidates by opening up the possibility of working remotely.

Your mileage may vary of course, but here are some aspects that have been key to our success:

Daily Video Stand-Ups

I’m going to start with the biggest one right off the bat. I’ve been working remotely for over a decade now and daily video stand-ups have seriously changed how I feel about my job. From my own perspective I feel like I have gone from the lone cowboy wrangling code on the prairie to part of a cohesive team. Every morning at 10:45 we all jump on a Google+ Hangout for a quick 15 minute status update.  We keep it short-and-sweet and then regroup afterward if any more in-depth discussions are needed.

Pair Programming

Yes, it can be done with remote teams! About a year ago we started getting much more into pair/team programming and it has definitely made a difference. Not only has the quality of our code increased, but so has team morale and productivity. We have also been blessed with team members that really gel well together.  As a natural outcome of our team dynamic, most of our developers spend the majority of the day on Skype with at least one other teammate. Each sub-team works a little differently. Some spend almost 100% of the time screen sharing and working on the same task together, and some of us go back-and-forth between working together or on separate tasks (though usually as part of the same project). Even when we are not directly screen sharing, being constantly connected over Skype has improved our code by allowing us to quickly bounce ideas off one another and allow for impromptu code reviews — the same way you would in an office environment.  I can also attest that it personally helps keep me focused. It took a little getting used to, but there are no longer awkward silences, and a long period of quiet concentration is no different than it would be in the office.

In addition to Skype and G+, we also use a lot of IRC amongst the team for quick group conversations that don’t quite warrant a phone call but need more back-and-forth than email.  This is actually a more recent addition to the team and has lessened our use of other tools (sorry, Yammer).

Regular 1:1s

We all have weekly video calls with our direct boss. We all get busy and it’s important to have that reliable time carved out — even if there is not much new work stuff to discuss.  The time can be just as important to catch up on personal stuff, which helps build the bonds that are sometimes missing when compared to folks who are always in the office with more opportunities for chit-chat.  (IRC has helped with this as well.)

Staying Organized

We stay pretty close to most of the Agile Development methodologies with daily stand-ups, backlog grooming, etc. Our current task management system of choice is Pivotal Tracker. Keeping the backlog of tasks well groomed and ready for us to attack has gone a long way towards increased productivity from our team. Good communication between Engineering and the business side has been critical. As Engineers, we love being involved early in the idea stages of projects and having input, but we also really want the ideas to be fully baked by the time we actually start working on them.  This of course is nothing unique to remote employees and is key to the success of any team.  However, communication between in-office business folks and the remote Engineering team takes practice, which brings me to my final point . . .

A big, dedicated video conference system in the office.

The room we have reserved every day for our Stand-Ups has a big screen TV hooked up to a little net-top PC with a web-cam.  The first person in the room fires up G+ and invites the rest of the team.  This makes it so much easier for everyone in the office to participate and feel the remote people are there with them.  We use the same room as much as we can whenever there are meetings with people in the office.  I can’t stress this enough: video, video, video. We are visual beings and it really tricks our minds into thinking the person is really there and you’ve had a “real” interaction with them instead of just a phone call. Seeing facial expressions, hand gestures and the like is huge.

To sum it up, the key has been to keep our remote employees from feeling remote. The latest crop of VOIP with video, screen sharing tools, and nice high bandwidth connections make all of that so much easier when paired with a few simple practices. It’s a world of difference from when I started doing this 10+ years ago.

When you are disconnected from your team, you drift off and start doing your own thing (ala Yahoo, from what I’ve heard).  None of us are micro-managed but we are all constantly connected and have a real sense of a team community.  We want to see the team succeed.

Powered by WPeMatico