The agile manifesto calls for “individuals and interactions over processes and tools”. Remote teams have to work at creating more interactions. Technology has helped this in recent years. Many agile coaches will tell you that your team needs to be co-located. Although many companies seem to make it work. You can run into some challenges but, they can be overcome.
Developing software with remote teams can be challenging. As they point in this article from Atlassian we need to structure the teams around the integration points or APIs. Setting the team up so they can develop things in a modular fashion can eas the coordination burden. Also making sure to review the code as part of the process to ensure quality work is done.
Technology people can get a bad rap as anti-social. Working with many different people at many different organizations this is a gross misrepresentation. I would agree that some are quiet where others are quite talkative. It is important to invest time with each of your team members. Get to know them and make a true connection. This connection builds trust and unity with the fellow teammates. This can still happen with a remote team. We just need to be deliberate about our relationships.
It is important to build the team spirit. Remote teams can make this a challenge. Overcommunicating decisions to the whole team can ensure the message is getting through. Leaders who keep information to themselves create a void. Sharing often and repeatedly helps remove any doubt. Setting up the development environment needs to be easy and frictionless. Communicate with everyone on expectations and the definition of done. Create guidelines for communication to the team members on work and bug reports. This can save time in multiple questions or uncertainty.
The tools we use are important too. If they don’t support a remote work environment you adding to the level of difficulty. As they point out in this article from Help Scout the tools can be critical. One tool they recommend is Trello. I have used this tool before and it does a good job tracking work with a simple design. Remote teams can always struggle with who is working on what. Trello can help alleviate that problem. GitHub is another remote development power tool. GitHub has a nice user interface and helps developers track code changes easily and effortlessly.
I am an early riser. So many times when I get to our 9 AM Stand up meeting I am already into my work. I would like to give the asynchronous updates a try. Essentially you create a Slack channel or some other mechanism to store everyone’s update for that day. This helps with people who work in different time zones or have different schedules. For instance, a former co-worker of mine named Greg once shared a story. He worked with a few developers that were night owls. They would come in after many people had gone home. They would work into the early morning. He had a hard time coordinating with them. Perhaps he could have used something like the asynchronous updates.
Make sure to distribute work evenly. People want to feel part of the team and like they are doing their fair share. Also, it helps to understand where each team members strengths are. We want to challenge people to learn new skills. Of course, being productive is important too. Make sure the team members are working in their strength for a majority of the time.
As they point out in this article try to pair up team members whenever possible. This can a great resource to transfer knowledge and help others learn. If needed use some video conferencing software to enable this with each of the remote teammates. Using Facetime or Skype can give that feeling that you are there with them.