Hi everyone and welcome to our Scrum focused series of articles, where we share our experience of implementing Agile practices in various organisations.
This article will discuss a Scrum event – Daily Scrum, or as we called it before, Daily stand-up. We will take a little bit of a different take on it. We will not explain what Daily Scrum is but how to conduct a Daily Scrum with a remote team.
One of the Manifesto principles for Agile Software Development is that “the most efficient and effective method of conveying information to and within a development team is face-to-face conversation”. Most teams who adopt any Agile frameworks or methods use a short daily communication session to help the team collaborate and plan as a collective unit. In Scrum, there is a specific event for this called the Daily Scrum. It is usually held at the same time and in the same place each day around the team's Scrum board.
If the team uses a physical board with some team members working remotely, it can be very difficult to have equal participation from everyone in the team. Due to more people working remotely, we had to come up with a different approach to the daily scrum.
We have tried to use a phone, phone with the speaker to include remote members in the discussion, but we did not eliminate one major thing, and that is that people working remotely could not see the tickets on a physical board. We had to read the tickets out, and the people working remotely had to tell us what to do with the tickets. Also, it was more difficult for a remote team member to choose what to work on next.
We had to find a different solution. We started using a virtual board where remote team members could see tickets, their descriptions, and actively participate in the event. The team members in the office continued to use the physical board. However, we have encountered another issue. Team standing around the physical board had a different view of the work than people looking at the virtual board as we were updating the physical board during the Daily Scrum and not a virtual board. After the Daily Scrum team members would hang around to discuss any item in more detail and potentially replan some items, this often meant that the physical and virtual boards were out of sync and still confusing for those people working remotely.
Finally, we decided that we should all look at the same view and update one board only to eliminate any misunderstanding and double handling.
We had to use a virtual board and other electronic tools to help us connect team members and give each other updates on what we are working on.
Before we dive into the discussion around dealing with remote teams just a quick recap on what Daily Scrum is.
Just a quick definition from the Scrum Guide:
Daily Scrum is a 15-minute time-boxed event for the Development Team to synchronise activities and create a plan for the next 24 hours.
Ideally, it is held at the same time and the same place every day as this will reduce complexity and help reinforce the event.
Also, it is easy for all team members to remember when and where teams synchronise their work. (*)
What is the Daily Scrum for?
It is a short session where the development team collaborates to inspect the work completed since the last daily scrum and forecast the next work in the sprint backlog. (*) As part of keeping the session timeboxed, it's crucial to make sure that any detailed discussions are held after the daily scrum. Team members can stay on after the daily scrum to work through any items and potentially replan or clarify anything that is needed.
And how does a development team synchronise on a Daily Scrum?
They simply answer the following three questions: (*)
- What did I do yesterday that helped the Development Team meet the Sprint Goal?
- What will I do today to help the Development Team meet the Sprint Goal?
- Do I see any impediment that prevents the Development Team or me from achieving the Sprint Goal?
What tools can help to connect remote team?
So how can you do this with a remote team? And what tools can help us?
Let us remind ourselves what is the best communication media if you can't meet face to face?
Even if the research was done in 2002, and information is 18 years old, it is still relevant. Well, mostly relevant as we aren't using videotape and audiotape these days.
As you can see from the diagram, the best way to communicate with your colleagues is face to face. As this is not possible with remote team members, we need to use the next level of communication, video conferencing.
We have a few tools available that can help us with that.
- We can use Zoom, Webex, Microsoft Teams, Slack, Google Hangouts or Skype for video communication along with chat rooms.
- If necessary, we can use email for indirect contact, or as a confirmation of our previous conversations and actions.
For visualisation of Scrum board, we also have few options.
- We can use either Jira, Trello, Rally, Asana or Microsoft DevOps.
I know, there are more tools available, but those are tools that are widely used.
We are going to assume you already have your product backlog and Sprint backlog sorted. If you want to know more about how to create your backlog, or how to select your work for a Sprint, you can watch our videos on those topics.
Ok, but back to Daily Scrum.
There are two schools of thoughts on how to run daily Scrum regardless of if it’s online or with a physical board. It is all about time for updating our progress on a Scrum board.
Number 1. Each team member will update the board immediately after they finish their task. We will save some time from the Daily Scrum session, but also we have to be a little bit more disciplined to remember, what we have finished and what we have picked up to work on and update other team members on the current state of development.
And number 2. Each team member will update their tasks during the Daily Scrum. This will obviously take a little bit longer. However, it is valuable for all team members to present and see everyday progress made by the team towards the Sprint goal.
From our perspective, both approaches are ok as long as they work for the development team. A team can use even a combination of both of them. Most of the time it is enough to update the board once a day, however, sometimes it is necessary to see progress continuously during a day as there may be a need to make a swift decision quickly. So it is dependent on the situation and team which approach they choose.
So how would we handle it with the remote team?
Hosting and Facilitating Online Daily Scrum
Before we embark on an electronic tools journey, and you and your team start your first virtual Daily Scrum, you should agree on who is going to host the session. And most likely, also share the screen with your electronic board for everyone during the session.
The host of the session should be adequately set up for hosting of the session. From a hardware perspective, it is ideal to have at least two screens available as this will allow you to share one screen with your virtual board, and have a second screen available for note-taking and video system controls. This will make sure that your system controls and potentially other applications are not obscuring the view of the board for the rest of the team.
The person hosting the meeting should schedule it as a recurring meeting at the same time and the same virtual meeting room. This makes it simple for all team members.
Often, it will be a Scrum Master who will schedule sessions and share the screen so everybody can concentrate on their contribution to progress towards the sprint goal. Still, it can be anyone as long as it does not interfere with the running of the session.
Whoever is the host and presenter for your daily Scrum will have some privileges and responsibilities that a video conferencing system will give them to assure the session runs as smoothly as possible.
As a facilitator, you may need to ask those who are not talking to mute their microphones to cut down background noise. On most video conferencing applications, you do have an ability to “mute” individuals or all attendees if there is a noise during the session.
As the facilitator, it is also handy to see who is participating in case there is a specific question or finding out who is missing.
There are a few things you can also do.
- If you are sharing the screen, it is a good practice to display a Sprint burndown chart at the beginning of the Daily Scrum session to quickly assess where we are in our effort towards the Sprint goal.
- During the meeting, the facilitator can help a reporting team member to move their tasks to the appropriate column on the board. That will result in an updated Scrum board on the end of the session.
As we assume that a Scrum Master is sharing the screen and updating board, he or she should also capture any discussion points to remind everybody if there needs to be additional discussion on those points after the Daily Scrum.
As a team member
- You should be mindful of other team members and mute your microphone if you are not speaking. It will minimise a noise level for everyone else
- make sure you give a full update on your progress and impediments if any (as learning for others - short story)
- pay attention to other team members as you may be able to help them if they are struggling with their tasks.
Facilitator to initiate a session
The best practice is to start the meeting a few minutes earlier to enable people to join on time and adjust their audio/video settings if necessary.
Share the electronic board with attendees.
As mentioned before, we have a habit of showing a daily burndown chart at the beginning of the session as an overall view on the team's progress.
This will create an equal understanding of the team progress through the Sprint backlog. And potentially ignite the first ideas of any possible adjustments that will be needed to be discussed after the session.
After that, we go through each team member and answer the three questions. Facilitator of the session will move each ticket according to the answers to the questions.
In Jira, we are using quick filters set for each team member, to simplify the view and minimise the scrolling through the screen.
Each team member is answering the same three questions as we have mentioned before focusing on displayed tasks.
We have a simple rule for team members reporting - if it is not on the board, you should not be working on it. If anything is identified like this, the team members will discuss the items after the session.
As we usually can't see the entire Sprint backlog on the screen (unless you have an enormous screen at home :)), it is beneficial for each member to have a view of what is next available to work on so we don't have to debate it during the session.
Very often, we hear that stand-ups are not allowing for the discussion between team members. It is especially true in non-software teams. Those teams, new to Scrum, are often used to having a prolonged conversation to go through the options and agree on the final solution. We absolutely want to support discussion, especially as we have all people together at the same time. Ideally, you will have a conversation with people interested in it and not hold others to listen to it if they can be more productive, so we are encouraging people to have a discussion at the end of the daily scrum event. After all team members finish answering the three questions, the scrum master can ask who is interested in the noted discussion points and let other people go to focus on their work.
So this was our take on the daily Scrum with the remote team members. It does work for our teams, but it is not the only way to run it. We would be happy to hear your experience with the remote Agile teams. Also, let us know what other topics you would like us to discuss.