Building The Conversation

Evolving Agile practices to support a distributed team

In the beginning

Back in June 2015 when I joined The Conversation’s development team, I was the first remote member. I recall spending the first week in the Melbourne office before returning to my home base on the NSW Central Coast.

James Healy, the technical director, had let me know that I was to be the “guinea pig” remote worker in the team. The longer term vision was to have remote workers in different time zones in order to better support the regions beyond Australia in which The Conversation is published.

Fast forward to today and we certainly have become a more distributed team. In addition to myself and Josh Bassett working remotely in NSW, we have James Hill in London.

This post explains how we have adapted two of our Agile practices to cater for a more distributed development team: standups and retrospectives.

How we used to do standups

During my first week when I was working in the Melbourne office, I experienced standups in their traditional style. We stood as a team, not quite in a circle, but more of a huddle near a screen which showed our Development Trello board. This could act as a prompt as each member of the team took their turn to relate what they did yesterday, what their plans were for today and if there were any blockers.

When I returned to my home office I quickly got into the rhythm of being available at 9:50am to be included in the standup via Skype or Google Hangouts. Usually this worked well although there were times when background noise or sub-optimal Internet connections detracted from the flow.

How we used to do retros

Our old low-fi retro board. The Conversation, CC BY-SA

During my first week I experienced the end of week team retrospective just as any other member of the team would. We sat in the same room with our focus on a white board that was split into four quadrants, one each for good things, bad things, questions and actions. The team had been using this low-fidelity approach for some time and it served as a good way of wrapping up the week’s work, sharing the successes, recognising what didn’t go so well and generating questions and actions for the following week.

However, when I returned to my remote office on the NSW Central Coast, the obvious problem became starkly apparent. I didn’t get to see the white board until after the retro, when a photo of it was emailed to the team members. I recall suggesting that an alternative could be to use Trello but that idea wasn’t enthusiastically received because it would result in losing the simplicity of the quadrants on the retro board.

How our standups have evolved

It was an exciting time for the team when James joined as our first overseas member last year. Being London-based he was well placed to communicate with staff who worked for the UK, USA, France and Africa. No longer did they have to wait until Australian colleagues woke up to have their questions answered.

However, the time difference obviously presented the development team with a challenge with regard to the rhythm of our daily standup meetings.

Being programmers, we accepted the challenge! Josh Bassett taught our custom Slackbot some new tricks so that we were able to move to a Slack-based asynchronous method of quickly sharing our status with the rest of our team. So now, at the same time each day, each of us is prompted to answer the three daily standup questions.

An example of our custom Slackbot conducting the asynchronous daily standup. Author provided

Once a team member finishes answering the questions, their status is shared in a specific Slack channel. In London, James can answer the prompts when he chooses, which will be typically a few hours later than the rest of us.

This asynchronous, Slack-based method of managing daily standups is working well. It gives each of us, regardless of time zone, an opportunity to share our progress. At any time we can peruse the #dev-standup Slack channel to see what our colleagues have reported. This is a significant improvement on traditional standups.

How our retros have evolved

Whilst the team was at RubyConfAU at the Gold Coast in February, 2016, Mark Cipolla told me he had an idea that he was going to implement which would solve my problem of not being able to see the board during our retrospectives. Mark started coding during those few days and, before long, RemoteRetro was born!

Since then, rather than relying on a physical white board and a scribe, each of us has been able to add items to a web-based retro board.

A RemoteRetro board. Author provided

Simply by clicking on the + symbol in the middle of the board we are then able to add an item to one of the quadrants on the board, as is shown below.

Adding an item to the board. Author provided

We are able to add items to the board as we think of them during the week, ahead of the retro. This is obviously beneficial to James in London.

However, the time difference between the Melbourne and London obviously makes it impractical to include James in every weekly retro. In response to that challenge we have instituted what has become known as an “almost all-team retro”, which we hold monthly. It’s our chance to catch up with James for a retro whilst he is eating breakfast.

Looking ahead

Every team is different and evolves in its own way. In our case we have gradually become more distributed and, over time, will continue to spread our distribution over different time zones. So far we have been able to adapt our standups and retrospectives to serve our team well.

Hopefully we will continue to meet new challenges to our Agile practices as they are presented to us in the future and adapt accordingly.