Top

Building an offshore team with agile: 10 practical working tips

Building an offshore team with agile: 10 practical working tips

One question that we receive more frequently is how agile software development works with an offshore team. We get this question from either people already doing agile and thinking of building out a team, or those that are very much involved in outsourcing and are thinking of crossing to the dark side of agile.

 

The short answer is that yes it can be done and that it should be done but it comes with some conditions. We have implemented this type of model numerous times. Below is the list of considerations that we’ve learned on the way.

 

Time Overlap

 

Make sure that you have at least two hours overlap for your teams to be able to communicate in real time. This greatly improves information exchange and builds cohesiveness of the team.

 

 

Time Zone Overlap Remote Team

Depending on your time zone this consideration alone may dictate where to build your team. Some locations simply don’t provided for the needed overlap.

 

Short sprints

 

Fail fast, fail early is one of the agile fundamental principles. By having your sprints one or two weeks you can see progress quickly and take corrective actions when needed.

 

 

Concentrate work by location

 

If you have multiple scrum teams try to organize them by location. Have a full local team and another one remote. This provides for a better communication.

If you have no choice and have your team spread over multiple locations do not break by skills. Do not set it up so you have developers on one side and testers on another. Have all roles represented in each location to allow teams to function independently.

 

Keep your scrum master local

 

At all costs keep a scrum master together with your team. Scrum master is an enabler of the team. Putting them in a remote location imposes unnecessary delays and complications.

 

Define “Done”

 

A product owners must clearly define ‘done’ criteria. Inability to constantly communicate requires remote teams to function on their own. Not having understanding goals clearly will lead to conflicts and mistrust.

 

Have a strong leader at each office

 

You must have a strong leader at every location. Each team must feel enabled to move forward and make things happened.

 

Web and Video conferencing

 

Use of video conferencing creates a sense of proximity of team members. In today’s day these tools are free or nearly free. For example we use Google Hangouts for every team that are open all day long and people can just drop in and out. This way people who are remote can see what’s going on in the other office, they actually overhear conversations as they are happening. This creates for a very productive atmosphere.

 

 

Data Repository

 

Create an easily accessible data repository and collaboration site. There are plenty of tools available that make this affordable. My personal tool of choice is Confluence because of how well it integrates with Jira. SharePoint will also serve this need if you are running in a Windows environment.

 

Invest in training

 

Your remote team must be proficient in scrum or whatever agile methodology you use. Invest in traveling to the remote team and training them. It’s is worth the cost.

 

Email usage

 

Do not use email as a primary method of discussions and decision making. Also don’t use email to store product documentation. Use person-to-person communication to make decision and store all the information in your data sharing repository. This makes it searchable, accessible, and trackable. Email is still a great tool, but it shouldn’t be the only or primary communication tool.