Vox Pop

Development — Software, Personal, or Otherwise

This website is being deprecated. All archives and new writing is being moved over to MatthewReinbold.com.

Not All Who Wander Are Lost

How to Effectively Develop Software Remotely

Working remotely is not an exact science. Even for me, who had plenty of "out-of-office" time accrued, a month telecommuting from Costa Rica represented an exponential increase in challenge. I'm proud to report that is is possible; a programmer can make a living and experience exotic locations. However, to maintain my sanity (and, more importantly, my bosses') I've come to adhere to the following rules:

The Balcony that Served as My Costa Rican Office

The More Specific the Task, The Greater the Freedom

If possible, the tasks for someone working remote need to be discrete, discernible, and directed. Something like "change the menus to blue by tomorrow" or "we need to get our average search times averaging less than a quarter second" have obvious completion criteria. The end points are quantifiable and don't require collaboration with other parties.

The Further (or Longer) Away, the More Talk Needed

Of course, if all development were so definitive, we'd all work out of our houses. Synchronization with team members is essential. Without a frequent iterative cycles with concerned parties, a developer working in a vacuum could very well suck all the steam out of a project.

Casual conversation is also littered with happy accidents. As technology writer and at-home worker Kevin Purdy explains:

"As much fun as 10-person, 20-message email roundtables about the proper name for the new project can be, there's a lot of context, personality, and creativity lost when you don't argue things out in person--respectfully, but with an audience, however small, to persuade."

Back in the Basement

The More Effort Made, The More Leash Granted

Remote work is built upon trust. Doubt is seeded when someone needs you and you can't be found. Given the lack of contrary evidence - they don't see you at your desk - this can be a problem.

If I do miss a request I'm hellbent to reply as soon as possible. It isn't rocket science. The speed in which I reply can be the difference between maintaining a special privilege and rumors getting started.

The More Tools Availible, The More Likely One is Right

There is no wrong tool for communicating. Everyone will have a preference. Some will be the most comfortable with IM. Others will always reach for the phone. I loved doing Google Hangouts but can make Skype video calls work in a pinch. You won't know which one people will use. However, being remote, the onus is on you to support whatever will make that communication happen.

Remote from a Hotel

When Working, Work

Working from home means having a separate space away from kids and pets. If from a hotel, it means I can't have SportsCenter playing in the background during chats. Being away from the office isn't catch-up-on-the-Netflix time. (Many developers claim they're more effective with background noise playing. However, I tend to disagree.) You are a professional so create an environment, even when traveling, that helps put your mind in the professional context.

Above All, Be Honest With Why You're Remote

Finally, realize that no amazing beach panorama, jungle hideaway, African safari, or coffee shop loft will entice you to do work that you don't want to do. Can you avoid the siren call of Candy Crush if there are no disapproving gazes thrown your way? Will TP reports get filed if you don't see the manager walking past? There will be no peer pressure to keep from goofing off when remote.

This is maybe the hardest part of remote work; being honest with yourself. Being able to maintain the rituals, routines, and appearances is "how you train yourself to do your work when you're supposed to". Do you have the discipline to execute on unsavory tasks without supervision?