A few months back SoftwareDevTools had the opportunity to interview Rich Fillion from Agilebits. We had come across an article of his on remote.co and it sparked our interest. We reached out to him with the intentions of better understanding how he achieves his goals while working within a remote team.
With more than five years working as a remote developer under his belt, Rich has ample experience and shared some great perspectives on what makes a remote team “tick.” But before we get into the details, we must first understand the difference between distributed and remote teams. Many people use the terms synonymously, but at Nearsoft we actually have both team types.
Remote vs Distributed teams
A remote team’s team members are not in the same place and most of the time they live in different time zones or countries (which often go hand in hand). The developers use different processes and techniques to keep in touch with their tasks, to track milestones, and ultimately, to reach the project’s primary goal.
On the other hand, a distributed team shares a common infrastructure; even if they are spread across different cities or countries they share the same workspace or office. They meet frequently to touch base on important project matters, or to kickstart one. There is a system set in place that allows teams to start up quickly.
They have the following characteristics:
- The team uses one or two official mediums of communication; this could be Skype, HipChat, Slack, Telegram or any other chat platform.
- A central project management platform is used to provide accountability and it’s the main tool used to provide a roadmap for the projects being handled by the team. The most common tools are Trello, JIRA, Pivotal Tracker, YouTrack, and Target Process among others.
- Agile techniques such as Daily Standups, Estimation of tasks with Planning Poker and Agile Retrospectives are used regularly providing a set of processes that make it easy for new team members to be on-boarded with project status and goals.
There is a mix of teams that work remotely and are distributed as well, but simply put, some important differences need to be taken into account in order to have a successful software development endeavor when using either team structure.
And, as Rich reminded us, “You need to make sure that the team feels like a real team; so some amount of random chit chat is important to keep things running smoothly.” (We wrote a post on 'How to lead a happy remote team')
How remote teams reach their goals
One of the most important factors to consider when reaching goals and setting expectations with clients is the accountability of delivering what was agreed upon at the beginning of the project. Even in traditional workplace environments, this is something that is oftentimes overlooked and not everyone is capable of doing so. This can only be achieved through healthy communication between group members.
It is the role of the lead developer to create the necessary dynamics inside the group so each member can collaborate and execute their tasks. The communication channel plays a crucial role for the team, allowing for information to flow freely so that everyone can complete their job. The communication channel also provides the means to reach everyone if necessary.
An important aspect of remote collaboration identifying the tools that can provide leverage for two types of communication:
- Quick Conversations
We have used Hangouts, Slack and HipChat for different projects to spark conversations around the tasks and the milestone of projects. We use Hangouts mainly for video calls, which we leverage in our PlanningWith.Cards plugin to do a scrum Planning Poker session. HipChat for text conversations around JIRA tasks and estimations is used as well. Slack is an in between platform for discussions inside private groups or channels and quick conversations with all the team.
For discussions, we have been using a mixture of Bitbucket, JIRA and Confluence for the last month or so. We like how the three platforms can interact and we can keep track of how a project is going and have the right type of discussions in each tool according to the data that it stores. With the designers of the team we like how you can place Invision links to add more context to the user experience.
The most important takeaways for leveraging tools and communicating with a remote team are:
- Emotions need to be facilitated, that means that the lead developer should be aware of red flags in a conversation or discussion that can create noise or unwanted drama.
- Flexible schedules are two edge sword, but agreeing on some overlap time frames is essential to have your team members available.
- Have transparency into What is Hard, What is Fun and What is Challenging is a key part of creating empathy in a group.
- Make sure that people are working on things that they feel that are important for the product or project.
More than anything, it’s important to understand that tools are just a medium to get the message across. Creating deep understanding takes communication and empathy in order to execute and create beautiful software. Remote or none remote teams face that challenge everyday.
It is our goal that we close the gap with tools and knowledge to help make your next software project a success. :)
As you may have noticed by now, we love to interview interesting people on subjects like #Agile, Remote Work, and Software Development in general.
These are some of our favorite interviews:
-Adam Hynes, Sr. Developer at Atlassian. You can watch the video here, -Bentley Cook, Developer Advocate at Trello. We wrote a blog post about the interview, and you can watch the video interview here.
Keep on Planning!
Trying to improve your #Agile practices? OR are you getting started with Agile? Are you in a remote team? Check out our products for Agile teams at SoftwareDevTools. We focus on making agile ceremonies more effective and easier to adopt for remote teams.
Check out our Atlassian tools:
- Agile Retrospectives for Confluence
- Agile Retrospectives for Jira
- Scrum Poker for Confluence
- Scrum Poker for Jira
- Stand.bot for Stride: A bot to automate daily updates.
- And for Slack also!