Common bottlenecks and good practices in developing your project with a remote team
These difficult times call for extraordinary measures. While stuck at home, people need to come up with ways to keep the work going – while many have not yet been accustomed to working remotely at all. The fact that we’re all isolated from others and locked in our houses poses certain challenges. Can your team achieve the same results while working remotely?
The answer is: Yes, they can. The software development companies who required their employees to work from their – or their clients’ – offices may face problems now trying to re-establish the way they work. However, there are also companies that already allowed employees to work from home whenever they needed it. Now, when they’re remote-only, they’re already equipped with the right tools and processes.
In this article, you’ll learn more about the challenges of remote software development and the good practices that allow you to keep up the work on your outsourced project in these difficult times.
Challenges of remote software development
Sure, developers know how to organize their work and collaborate while being away from each other, but there still are some challenges that teams will face while working remotely only. Some of the common issues include communication, feeling of little control over the process, data security.
While offline communication just happens, online communication is something that requires more thought and care. When you work with a remote team and none of you pay attention to the quality and frequency of communication, it’s like not being a team at all.
Oh, and doesn’t online communication sometimes seem a little passive-aggressive? Even when in fact it’s not. Let’s not forget that messaging apps can’t replace the experience of a face to face conversation – and normally when we interact, verbal communication constitutes merely 7% of our communication, while body language, voice, and tone play a much bigger role. Where’s the space for that in messaging? Are emojis sufficient to clearly express our thoughts?
And another issue – how do you reach the unreachable team members? There are these people who seem to never be online. How do you get to them to catch up on the progress they’re making?
Don’t worry. I might have scared you a little with these dark scenarios of dreadful online communication. BUT! There is a solution, and a pretty simple one, to address all these issues. It’s a communication plan. At Neoteric, we use a communication plan that describes all the rules of communication between team members and establishes regular meetings and channels for communication. With all this information gathered and shared with all team members, it’s clear to everyone involved how they should communicate: they know that they have the daily standups at 11:00, that they can reach all team members via Slack, that certain channels or threads are dedicated to specific issues, so they don’t have to worry about someone not answering – if John Doe is away, James Black will answer instead.
While working 100% remotely, it’s even more important to nurture relationships and care for good communication. Why? Because it’s easy to forget that we need interactions. And we do need them! Daily standups (15-minute meetings summarizing the things done in the last 24 hours, the to-do list for the next 24 hours, and any blockers standing in the way) ensure that everyday dose of contact – and keeping in touch in between these short meetings is strongly encouraged.
When all team members work from home and do it at different times of the day, trust issues can occur. How do you know they do the work?
Trust is something that’s often built over time – when we learn how to work together. If there’s no trust to begin with – the times of fully remote work can be even more difficult. But the starting point should be that you know and trust your team, you just need to know that everything happens as it used to when you had them around.
Little control over the process
The feeling of little control over the development process is something difficult to handle. When you don’t feel like you can trust the team to do the job right, you’re getting more and more nervous, and then, you put even more pressure on the team. Vicious cycle. Before we move on to the solution, there’s one more thing worth mentioning:
Productivity and timely delivery
Another thing to do with trust. Working from home, we all have different habits and routines. Some developers will have the house all to themselves and be even more productive when given their space. Others will have to divide their work into smaller chunks during the entire day because they’ll have to take care of other things, too. Finding the right balance to stay productive (and sane!) is something that everyone has to go through individually. You can’t make people work the way you think successful remote work looks like, but you can help them – by trusting them and letting them work in a flexible work environment where they’re allowed to choose their own path to achieve the set results.
Solution to these problems? Full transparency. Communication handled with care (as described above) is one thing, then there’s clear reporting and tracking changes. How do you stay up-to-date with what your team’s doing and achieving? Time-tracking tools such as Clockify or Toggl allow for tracking how much time the team’s dedicating to given tasks. And for tracking changes, make sure you’ve got a well-organized board on one of the project management tools like Jira, Taiga, Trello. These boards have the work broken down into smaller, manageable tasks that you can track: they’re either in the backlog (so to be done), or in progress, ready to test, done. Everything is clear and visible. It’s easier to trust a team that makes sure you feel safe about the work they’re doing, isn’t it?
When you hire a remote team, you share a lot of data with them, as well as ideas and innovations. You need to be sure that the way they’re handling your project, and data, is responsible and secure. This time, it’s not a matter of trust, really. You need to be absolutely certain that there are security policies in place that ensure security of everything you share with them: servers, tools, access to 3rd party services. Make sure that all the equipment used for your project is encrypted, and so are all the passwords that are additionally stored safely in the cloud and require two-step authentication.
Good (and bad) practices of working with a remote team
When your team is scattered around, you need to make sure that good practices are in place. Without these, you’ll lose touch with each other, get frustrated over some (easily avoidable) mundane issues, etc. To make sure you all are on top of your game, follow these rules – and feel free to add your own to the list. Make sure you avoid the common mistakes that are presented in the “do not” points!
DO Give your communication a strategy
That’s a crucial element of remote work! Create rules that all team members should respect and follow: schedule regular meetings, share essential information immediately, agree on channels of communication. Make sure all your team knows what information they should share.
When being 100% remote, it’s also good to have a more informal space for interaction – use voice chats like discord or messaging apps to socialize, don’t make communication focused only on work.
That’s also something you should pay attention to when selecting a tech partner to develop your project. When you’re talking to them, ask about their processes and strategies. A good partner will be well-prepared and provide you with a communication strategy and a cooperation manual.
DO NOT under-communicate
If anything, it’s better to overdo communication. By “under-communicate” I mean not sharing important information with other team members (which usually happens because someone didn’t think about it), not giving the team some space to socialize. If you under-communicate, you can fail to express your requirements clearly enough to be understood (since something was obvious to you and you didn’t think you needed to say it) or the team may fail to inform you about a problem that’s occurred (they can manage, right? So why share such information?). In reality, all these things matter, so such conversations should take place. You can’t find common ground when you don’t exchange thoughts and get to the same level of understanding.
Not caring about keeping in touch with others in these demanding times will not bring any good results.
DO use online tools to boost collaboration
Use chats, project management tools, Google docs, calendar. Why? To make sure you never miss a meeting you scheduled, to keep track of your team’s work, to see changes made to shared documents, to work together, even when sitting alone. We’re lucky that so many online tools allow us to spend time together even when each of us is on their own.
DO NOT control
There’s a distinct difference between collaboration and control. It’s one thing to track changes within your project (which is a must-do!), and a totally different story if you’re checking progress every 2 hours and asking “Why isn’t thing X done??”. Staying up-to-date thanks to regular communication with your team should be enough for you to have trust in their work. If it’s not – go back to the cooperation manual and see if something is missing there.
DO remember about rest
Both of your team and your own. Working hours may be different now, some people will work better late in the evening after the kid’s bedtime, others will stick to their standard working hours. Each one of us will approach rest and relax differently and take breaks at different times. You need to be OK with that. Make sure all team members participate in all meetings you planned, but don’t restrict them (or yourself) in terms of work time.
DO NOT call people all the time
OK, that’s not that common, but some people tend to do that. They send a message, don’t get a response within 15 minutes, and keep calling until you answer the phone and tell them what they want to hear. Don’t be that guy. Unless it’s really urgent 😉
DO expect to see results
The fact that your team works remotely should not (and, with a good provider, will not!) change anything in project development. When outsourcing software development, you should expect the provider to have appropriate procedures in place that allow for the team’s productivity no matter if they sit next to each other or work individually from their homes.
DO NOT want too much
Sometimes, you will need some time to get used to working with your team 100% remotely. If you lack the experience in working with a remote team, let them lead the way – they’ve got the processes in place, so they know how to deliver. Also, don’t abuse the situation and assume that they can deliver more than they would normally do because now they have more time on their hands. Circumstances change, but the agreement between you doesn’t, so you can’t have people do overtime just because they get to stay home.
Working with a remote team doesn’t have to be all that bad
Or rather it doesn’t have to be bad at all. With the right processes and tools, it can be as smooth as working with a team that sits in one room. Frequent online meetings, regular communication, clear rules, and reasonable flexibility allow everyone to enjoy working from home. When you and your team are all on the same page, there’s nothing to worry about. So even if you’re new to this 100% remote situation, you’ll quickly get used to it and learn to appreciate it.