It seems that everyone wants to work remotely these days. Why wouldn’t they? There are some obvious benefits, such as reduced commute and working from the comfort of your own home. What is the impact on the team though? In this blog post, I focus on the impact on the team rather than individual benefits.
Working from home – developers’ perspective
It is no secret that developers really enjoy working remotely. The key reasons seem to be:
- Cutting out the commute
- Easier to achieve a good work-life balance
- Fewer distractions
- Everyone like their home
It is also widely accepted that working from home, developers are often more productive than in the office environment.
With all that in mind, we have a clear case- working from home benefits individual developers. Does it benefit the team though?
The potential problems with homeworking
If your company is set up so that everyone works remotely, these may not apply. In most cases, the majority of the team members on any given day would still be working in the office. Let’s see what are the potential problems:
- It can be difficult to contact a home worker when something is urgently needed
- There is a possibility of exclusion and misunderstanding when the team agrees on something with consulting the home worker
- It is more difficult to carry out activities such as pair programming or collaborative design sessions
- Some problems raised in sprint retrospectives (or other personal challenges) are difficult to handle remotely
Does that mean that working from home is simply bad for the team? Do these concerns trumps individual benefits? Absolutely not! It is important to recognize the potential problems to proactively avoid them.
How to make homeworking work for your team
We will take the issues raised and tackle them one by one.
- It can be difficult to contact a home worker when something is urgently needed – You need to make sure that everyone is readily contactable in case of work “emergency”. If instant messaging is not good enough, perhaps a mobile number for everyone (this could be a separate phone) is available.
- Some people may be “excluded” from the team – If most people are working from the office, there should be a minimum amount of “face time” for everyone to at least get to know the team. You don’t want “anonymous” home-working people that no one talks to.
- Decisions may be taken without consulting home workers – For major decisions, it would be good to include people working from home either via a chat system like Slack, audio-conference or have everyone present in the office for the discussion. Having these “get together” days is a good idea either way.
- Decisions may be taken without telling the home workers – If some decision does not require everyone involvement, yet it impacts everyone, there should be a “remote friendly” way of communicating it. Team wiki pages, Slack, etc. There are multiple ways to tackle this problem, it is important that everyone knows what is being used and follows that.
- Pair programming and collaborative design sessions – In reality, with merge request reviews and modern chat tools, this is usually not as bad as it sounds. Still, a major collaborative design is easiest done in person in front of a white-board (personal opinion). In that case, I recommend setting these up in advance so that interested parties can be present.
- Some problems are difficult to handle remotely – Things such as team retrospectives, or major issues/changes are often communicated and agreed easier in person. I think the best solution is to have everyone in the office for the end of sprint activities (if possible and if you are following Scrum).
- Anything else – Your team may face different challenges. Where there is a will, there is a way. With modern tech, there is really no problem that can’t be solved by a group of smart people getting together and coming up with solutions.
As you can see there are multiple challenges to home working, but there are just as many solutions. I think the most important advice I can give would be to make sure that everyone knows and agrees to a set of rules for working from home. I would fo as far as recommending to write them down and have them easily available for everyone.
As new challenges come up, the rules can always be changed or expanded. If you are following an agile methodology, this should feel rather natural.
Summary
Working from home has amazing benefits for individual developers. However, it is often seen as a challenge from a team perspective. Based on my experience, this challenge often seems greater than it really is. As long as everyone is on the same page about how it will work- the individual benefits can be reaped without affecting the team.
Should you let your developers work from home? Absolutely! Just make sure that you all agree on which rules to follow!