Flexible Working In An Agile World
24 March 2017 |
Dan Parkes | About a 6 minute read
Flexible working is becoming more common and increasingly important to employees as the benefits of a good work life balance become more apparent. This means Agile teams have to be prepared for individuals to work from home when they need to. So how can this fit in with Agile where communication and collaboration are key and the general advice is that teams should be co-located?
Luckily there are a number of technologies and tools out there which can be used to facilitate communication and collaboration with people working remotely to the extent you can almost forget that one of the team is not sat with you in the office! I once worked with an experienced Agile team who regularly practised pair-programming and had a developer that lived and worked from Versailles in Paris. To allow this the team had set up their space so that the developer and anyone else working remotely could see and hear what was happening in the entire team area and be able to easily contact and talk to anyone in the team at any time. This blog describes how the team set up their space and what tools they used.
The team had a number of developer stations set up and each station was named and had a Google Hangout permanently running. Any developers who were working remotely could just join the hangout on the machine their partner was working on in the office. This also worked well when a pair of developers were working remotely, they would both join the hangout on the ‘empty’ pairing station in the office and could be seen, heard and easily contacted by the rest of the team. The urls for each of these hangouts were shared in the team so anyone working remotely could just join the hangout for a particular station whenever they liked. As part of the Daily Scrum, as well as describing what the development pairs were working on for that day, they would also state which pair station they were using. The Daily Scrum was also done around one of the pairing stations which had a view of the Scrum board so anyone working remotely could be part of the Daily Scrum as if they were in the office.
As well as each pairing station being equipped with an HD webcam, spare machines were also set up in the team area with hangouts and cameras which were positioned to have different views of the area. Each pair could then invite the spare machines’ hangouts to theirs so they could get a view of the cameras. Each of the hangouts on the spare machines were also muted to stop background noise being picked up.
Having a number of cameras that show different views of the team area can really help people working from home especially when meetings or team huddles take place. Being able to see everyone present can help the remote worker easily judge the atmosphere of the meeting and can help avoid embarrassing moments when the remote worker talks about someone they did not realise was there. It also helps them easily see if members of the team they need to speak to are in the team’s area before they jump onto their hangout.
Microphones and speakers
Having good microphones in the office can make it much easier for the remote team member to communicate. Most modern office environments are noisy due to the open plan layouts and built in microphones tend to pick up background noise very easily often making it hard to hear for the remote worker. A good directional microphone cuts out this background noise and makes it easier for the remote worker to hear the team member they are talking to. A number of good microphones on the market also include a speaker which are often better quality than the built in speakers and have better volume control. Each pairing station was set up with a good directional microphone which included a speaker.
Of course, directional microphones are not always the best option especially when in a meeting. In these cases the team also had a good multi-directional microphone with inbuilt speaker. This could be used during team huddles and meetings where the remote worker needed to hear anyone who is speaking in the area or the room. As all these microphones/speakers were USB they could be swapped in and out quickly when needed.
To aid pairing, the team also used software that allowed them to easily pair on the code they were working on without having to swap who was sharing their screen. The individual working from home would use the software to remote into the pairing station. This would give the individual a view of the pairing station’s desktop and be able to control the pairing station from their machine. In this way the remote worker could edit the code on the pairing machine when it was their turn to drive. When it wasn’t they would easily be able to see what their partner was doing.
Finally the team had a laptop which also was set up with it’s own hangout. This meant that if the team had meetings or sessions away from the team area anyone working remotely could still be part of them. All the team had to do was remember to take the laptop and the multi-directional microphone and speaker with them. This also allowed people working from home to attend department events as long as a member of the team was willing to set up the laptop beforehand.
Online Scrum boards
The team described above only used a physical Scrum board which worked for them as the they agreed they prefered a physical board and cards. The developer who worked in France would write down each story and all the acceptance criteria when the pair picked up a story so he had all the information to hand. His pairing partner in the office would move the cards on the Scrum board when needed. If a pair were working from home then they would just ask another team member to move their cards for them. As mentioned earlier, during the Daily Scrum the board would be moved in-front of a pairing station so anyone working from home could see it so at least once a day they had visibility of the actual board. However, the team could have easily used one of the number of online Scrum boards. These online boards, such as Trello, work just as well as a physical board and it should be left to the team to decide if a physical board or a virtual board works best for them. The benefits of online boards is that people working remotely can see the board at any time and easily edit it when they have finished a card. This is more important if the remote worker is not pairing with anyone in the office.
There are number of other communication tools available and teams should utilise anything that helps them facilitate communication. For instance, Slack is being used by a number of organisations and has the benefit that teams can set up their own Slack channel allowing the whole team to be part of conversations. If the organisation you work in doesn’t have Slack and Google Hangouts is blocked, then teams should utilise the tools available to them or put a case together to get the tools that will help them.
When a team has members who are working remotely the most important thing to do is to find a way to keep the lines of communication open so team members can easily collaborate no matter where they are based. The case study above shows how one team set themselves up to enable communication and collaboration with remote workers but different teams might have different budgets and other restraints such as certain software being blocked from use. As long as the team find ways to allow people working remotely to be able to collaborate with the team as if they are in the office then working remotely should not be a hindrance.Read More From This Author
Senior Full Stack Developer (London)
Champion software quality and technical vision for AND and our clients, work on large-scale projects and help junior and mid developers grow in their roles.I'm Interested
Full Stack Developer (London)
Put your development expertise to work, building remarkable, digital products in Agile environments using a variety of languages and frameworks.I'm Interested
React Native Engineer (London)
Champion software quality and technical vision for AND and our clients, work on large-scale projects and help junior and mid developers grow in their roles.
Technologies you will be using