Remote work in an agile environment
How to stay agile when working with remote team members.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
This quote from the Agile Manifesto’s Principles is often used as a reason why remote work in an agile environment is not ideal. Understood in it’s most literal form, this quote can seem to be against having remote team members.
We tend to disagree with this kind of reasoning. Choosing instead on implementing a remote work culture that embodies the first value of the Agile Manifesto:
Individuals and interactions over tools and process.
Let’s go through each of these keywords in more detail.
Each team member as an individual is unique in the way they work. Some people need more structure, others need less. Some are productive in the morning, some are productive late at night.
Having a remote work culture affords each individual the freedom to deliver value in their own way.
Thus the cause of, and ultimately the solution to the remote work problem, is each of us as individuals.
Our cultures and core belief systems have moulded us to believe that we need to work in a specific way — do what you’re told. Pre-agile methodologies supported this. They prescribed top-down structures where managers directed subordinates to do tasks. In Agile frameworks, coaches replace “managers”. A coaches goal is to enable their teams to deliver value to the customer. This critical distinction means that the team chooses the way they work.
In non-agile organizations, metrics such as “time spent” or “hours worked” are monitored to make sure people are working. This does not necessarily mean that these individuals have been productive. In an agile environment, the customer outcome of an iteration is most important. Thus, the one concept each individual needs, to begin with, is trust.
An agile team member needs to:
- trust that any remote team member has this goal in mind,
- trust that co-located team members will relay information, and
- trust that the coach will remove impediments as needed and has communicated the goal.
An agile coach needs to:
- trust that the team(s) he is coaching is focussing on the customer value of the sprint, and
- trust that the team(s) he is coaching consists of members who want to do their utmost best.
Once intrinsic trust is in place, the next step to address is the interaction between individuals.
Effective communication is key to making a remote culture work. Like trust, the interaction between individuals needs to be rock solid before a remote work culture can be successful.
An agile organization needs to encourage good interaction. Not only between team members, but across teams, roles and departments too. Interaction needs to be accessible, immediate and valuable. Working with remote teams should not interfere with any of these principles.
Most important is to rather over-communicate than under-communicate. This will benefit any team, regardless of their level of remote distribution.
Face-to-face communication should still be the top priority. With the help of tools to help this, remote team members can be included in any discussions that need to take place.
Asynchronous communication, and the acceptance thereof, becomes key. Over-communicating in writing means there is always a record. Writing also means the writer has put in more thought into what is being communicated. An email on a Sunday night makes a huge difference to a team’s Monday morning which is 6 hours ahead.
Tools provide a platform to ease the interaction between individuals. These should be chosen by the team based on what works best for them.
Here are some tools that I’ve used at one company that made remote work a bit easier.
Issue Tracker – Jira
The single source of truth for all epics, stories and issues. An issue tracker, such as Jira, is a great way for remote workers to keep up to date on development.
Instant Messaging Tool – Slack
Most communication is done via Slack. It’s quick to set up and provides an array of integrations to help remote workers know what is going on in the team, and system.
Old faithful. Email is still an extremely reliable way to communicate. Especially effective for asynchronously communicating with team members in different timezones.
Video Calling – Google Hangouts
Quick, easy and accessible — this tool allows us to have clear calls with remote team members. The slack integration dumbs things down even more when needed on the fly.
Shared Documentation – Google Docs/Confluence
Sharing textual information is easily handled using Google Docs and/or Confluence depending on the team. From training docs to retrospective points and actions, these tools are exceptionally handy.
Hardware – Conference unit
A good conference unit is critical. Especially when teams in different locations need to partake in the same meeting. Good sound trumps bad video so focus on your microphone and speaker quality here.
Some tools that we have tried, or are using in a less critical (or similar) way are Trello, Asana, Chime and Skype.
Once we have the tools, it helps to have a set of processes to use them well.
Putting effective processes in place provides a framework for a successful remote culture. These should always be as simple as possible and always agreed upon by the team. A more useful term for this would be working agreements. These agreements should only be changed or enforced by, the team. The coach’s role is to provide advice and guidelines for improvements. The outcome of those processes should also be agreed on by the team, as well as a way to track their effectiveness.
Examples of the remote agreements in place at previous teams are:
Regardless of where you are, each team agrees on a standup time that should be respected. Remote members should always be catered for and should call in.
Core support hours
As our core product deals with customers, we’ve found that it’s best to have some core hours where team members are “available”. This does not necessarily mean they should be “working” per se. Our agreement is that a member is reachable to assist the team over certain times of the day. This becomes critical when some team members are in a different timezone.
These are two of the examples of working agreements we have in place. There are more, but these are more specific to a single team.
Having distributed teams, or remote workers should not interfere with Agile adoption. Giving individuals the autonomy to achieve goals in a way that works best for them, is a great start for this. Good communication and team buy-in will be critical in the selection of all tools and processes.