Working with a distributed team: How?

By Christophe Dujarric, on May 24, 2016

This article is the second of a series of 2, on working with distributed teams.

Being an agile distributed team

Agile recommends “Individuals and interactions over processes and tools”. Scrum has pretty formal ways of organizing development cycles. And both promote the need to “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”

I won’t say that using Scrum in a distributed team is an easy thing. And were we always try to spend some time face-to-face, some tools facilitate interactions. What is key in a distributed team, is communication. That’s one of the first things we realized. Having someone from the team in San Francisco means he’ll wake up by the time the French team would go have a beer after work. That doesn’t leave much time to give status updates and hand-over.

Multiply instant communication means

Welcome Skype/Hangouts video/[insert video conference service name]. Welcome a dedicated webcam, screen and microphone. Who never had any issue setting up a video conference, and spending more time doing so than actually talking to the person at the other side of the planet? That happened so many times that at some point we figured: how about spending 1,000 bucks in some high-end equipment, rather than wasting man-days with the team waiting to see each other and hear each other, while we fix cables, software updates and other incompatibilities?

Welcome Slack/Google chat/[insert instant messaging system name]. We especially like Slack, where we have the flexibility to use “channels” for group chats or 1-to-1 chats, exchange files, but also to receive our Continuous Integration, monitoring and other alerting notifications. And as it stores a decent history, it’s pretty easy for someone to look back on the daily discussions and make sure he didn’t miss anything important.

Get the right product development tool at the right time in your workflow

It took us a bit of time to agree on tooling here. Coming from product and project management, the most intuitive tool for me was Jira. The rest of the team saw no use in working with something else than GitHub. What we can now tell: each has pros and cons. Let’s focus on the pros:

  • GitHub is a development tool. It’s amazingly useful for git workflows, code review, and basically any activity that is directly related to coding;
  • Jira is a product management tool. May you work with Scrum, Kanban, XP, or anything else, it’s here to help prioritize your roadmap, and make all preparation work before you start developing. Starting with having “good enough” specifications of a “Minimum Viable Product” for instance.

The other benefit that both of them offer is that any work is traced, and available “from the cloud”. Scrum experts tend to go back to paper sticky notes, and I guess there’s good reasons to that. But no matter how good our webcam is now, we won’t leave it on to film a wall 😉

Never miss and occasion to meet and greet

I’m sure you already experienced that feeling that someone didn’t understand you properly while writing an e-mail or instant chat. And that no matter how you’d try to paraphrase, that stubborn guy on the other end wouldn’t get it. And you also experience that as soon as you picked-up you phone, webcam, or went to see him next door, you’d settle the debate in a few words. Sometimes it’s just a matter of tone of voice that convey a message in a different way.

We’re lucky to be in a business where conferences around the world offer opportunities for us to gather. Video conferences do help, but there’s nothing better than meeting with the team members “in real life”. In my experience, it every time created a momentum where individuals would share ideas, spend a good time as a team, and get back to their respective work location with more motivation, and a better vision of how to bring solutions to our user’s problems.

Oh, and we’re still looking for a DevOps to join us from Latin America!

TL;DR

We’re an Internet start-up. We care about our users worldwide. We’re agile. We learn from our mistakes. We make it possible to work as a distributed team.

Good luck to all distributed teams in internet businesses!

blackfire_hiring

Christophe Dujarric

Christophe is the Product guy at Blackfire/SensioLabs. He has been working in several start-up companies, helping them to make and sell products out of technologies. He’s involved in every step of the product’s lifecycle, from strategy to design and sales, and loves to coach on product management methods.