I’ve been working in somewhat distributed teams for a little over a year now. I figured I’d write down some of the more successful patterns a leave some warnings for things to avoid.

Standup

Distributed standup is really easy, you just use a service like Google Hangouts or Zoom.

You also want to make sure everyone can see the wall. If you are using a web based tool for your wall this is really easy.

There are rules:

  • If one person is dialing in, everyone must dial in.
  • If you are dialing in you must have a decent headset
  • If you are in the same room as someone else on the call you must mute yourself when you are not talking

Thats about it.

Retrospective

Similar to standup, but I’ve found that tools like IdeazBoard are great for simulating post-its on a whiteboard. You can also get away with just a shared document, like a Google Doc.

I would avoid high friction tools like Confluence that resist mulitple editors… or editting in general.

Radiators

Most of the radiators I’ve seen are just websites anyway. Just make sure they’re available to everyone.

Some teams I’ve been on prefer to push actual notifications in to a channel in whatever chat room software you are using. Whilst I like that, I still prefer having a page where I can see the state of all of the projects I’m responsible for instead of having to figure it out by reading an event log.

Watercooler

A shared chat program like Slack, HipChat or IRC is essential. The trick is making sure that its accessible outside of your network, and preferably from either your text editor (most text editors have support for jabber / IRC) or have a web interface. This is just to make sure that everyone, even those people who insist on using Windows can contribute.

Encourage silly rooms like “Cuteness” or “Random” and allow anyone to create any room they like. Teams form in these rooms.

Overhead conversations

I’ve experimented with open channels, having an audio or video feed open at all time, with little or no success. The problem I find is that can’t do what I do in the real world and change the volume of individuals by moving myself around the room.

One of the more successful rules was “Every question has to be asked on X”, where X is the chat program you’re using, or dropping the audio channel and having all meetings in open chat rooms. But that can add a lot of overhead where what we’re trying to do is reduce conversational friction.

I honestly haven’t found a good alternative to being in the same room (but I used to say that about pairing)

Planning / Design

I’ve come up with a couple of tricks that work well.

Cell phone cameras

For small sketches where you are desperately reaching for a whiteboard, draw on on paper, take a picture and share with the room. You can then choose to print it out, or edit it, or just recreate with paper and send back.

It is a process that works surprisingly well.

Video Whiteboard

Use a webcam, which can be the one in your laptop, and have a stream of you drawing on a whiteboard. Relies on everyone having a whiteboard.

Honestly, if you are working from home I’d seriously consider making sure everyone has access to a whiteboard.

Online Whiteboards

Universally bad. Avoid. There is something about these apps that is so much harder that pen on paper that they stifle all creativity (once people stop drawing penises).

Pairing

That I’m leaving to a different post.