Tools For Remote Teams
Most of our projects have a development team located in Warsaw and the product team in USA or some different location. Before we start a project I’m often asked how are we going to handle challenges with communication and coordination between remote teams. Over the years we’ve come up with best practices that we use and improve all of the time. I’ll share some of them with you right now.
When we’ve started 10Clouds – around 3 years ago – we used to chat on Skype. No voice or video. This resulted in a lots of confusion and sometimes funny situations like responding to a single question for more than couple of minutes discussing on the answer or our clients disappearing mid meeting without us knowing. One day we’ve decided to just start using voice and video. Since that we’ve tried a lot of different tools and now stick to just a couple selected ones. Our favorite tool for calls is Google Hangouts. With Its convenient integration with google accounts and straightforward screen sharing it has taken over the lead. Google Hangouts allows us to have video conferences with 4-6 people with ease. Using Google Hangouts we can easily perform a sprint review or a product demo with the remote team. It’s one of those essential tools that we just have to use.
Apart from the tools the crucial part is having a development process that keeps everyone in the loop and makes sure that the team is working on the most important features. For that we use our own flavor of scrum with planning, sprint reviews and daily scrums on Google Hangouts. That way we can report on progress and demo features which are ready for deployment. We’ve found that it’s extremely important to get the entire team included in the process.
Project description and mockups
A key to success is having all of the documentation easily available for the entire team. To achieve that we keep project description, technical documents and mockups in Confluence. We make it available to all of the project stakeholders. Confluence provides very convenient integration with tools like Balsamiq Mockups or Gliffy for mixing text specification with low fidelity mockups, sketches etc. It’s also a good place to keep all of the meeting notes. Confluence also allows you to embed checklists in your pages which we use to control the quality of our work and make sure that we haven’t forgotten about anything in the process we are using.
Wiki is very important at the time we refine the ideas around a new project but once the development has started more focus is put into Jira, which we use as an issue tracker. Jira is a very flexible tool with a great agile plugin GreenHopper that works well with projects running some flavor of Scrum or Kanban. Our customers have access to the same screens as our developers and can comment on user stories, report bugs and track sprint progress. This allows us to keep everyone in the loop.
A very important part of our toolbox is Github with its pull requests that allow us to easily connect big chunks of code to user stories and create a culture that promotes instant code reviews and encourage team members to look at the entire code base and not only at their “own” chunks.
Internally we also use HipChat for day to day talks, monitoring the deployment process, results of automated testing etc. If we are working with remote developers or when the client wants to have a direct access to the development team we add them to HipChat as well. That way everyone can talk about current development in a seamless way. HipChat also is a great place for us to blow off steam. Recently animated gifs became very popular on one of our hidden channels:
Care for comments?
I would gladly hear about any other tools that you’ve found useful when leading a remote team or any suggestions as to how we can improve our toolset. Over the years we’ve changed and adapted many times and when we see a better option we’re never afraid to try it.