Ever since Covid-19, we switched to hybrid work mode and never looked back.
Back then, we worked almost exclusively with Georgian companies, but now our teams design and build software for 40+ companies across 10+ countries in Western Europe, the US, the Gulf states, etc.
Working as hybrid teams with clients worldwide taught us a lot about effectively managing a remote software development team.
Although the freedom to choose the work environment leads to greater employee commitment and lower turnover, it comes with its own challenges too.
The lack of face-to-face interactions makes it harder to foster collaboration and maintain a sense of unity among team members.
Working as a remote team kills a lot of important micro-interactions that always keep the team in the loop and creates a “no dumb questions” vibe. Those quick chats can save hours spent on tasks that could have been done in just a few minutes.
Let’s face it: relying on a daily Zoom call for team sync-ups just isn’t enough. The truth is it falls short of fully maximizing the productivity of remote teams. That’s why even major tech players have started to take some measures against the fully remote work policy. Take Google, for example – they began including office work in their employee performance reviews, as reported by Wall Street Journal. This proves just how far-reaching this issue has become.
Being a product development outsourcing partner for dozens of EU and US-based companies, addressing those issues was at the top of our priority list when we started onboarding our first international clients 3 years ago. So based on our experience and insights, we’ll explore some essential strategies about how to manage a remote development team effectively and deal with the challenges that can objectively feel overwhelming.
How To Manage a Remote Development Team? – Practical Tips
Adapting Agile Practices To Working Remotely
Organizations switching to remote work tend to neglect that the agile practices they use were invented when working from the office was considered a standard mode.
Agile Manifesto states, “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”
Following the same schedule of standard Scrum ceremonies simply is not enough when you can’t have in-person face-to-face communication among team members who work remotely. Therefore, there is a need to adapt how we practice agile.
While dealing with this challenge at Redberry, we clearly saw the importance of maximizing interactions among remote team members throughout the day. We have experimented with dozens of different ideas; however, only a handful proved to be effective. So let’s go through these ideas briefly down below.
Enhancing the daily stand-ups
We have adapted daily stand-ups in a way that transcends answering the good old questions:
- What did I complete since the last meeting? (or, What did I do yesterday?)
- What will I work on before the next meeting? (or, What will I do today?)
- What obstacles are in my way? (or, Do I see any impediment?)
Instead, on stand-ups, we encourage the team to delve into deeper technical discussions around the current sprint backlog. Although this has the downside of extending the time needed for standups to 45-60 minutes, such an approach helps the whole team be considerably more productive during the day by exchanging ideas and perspectives, removing blockers before they appear, and planning for the day more thoughtfully.
Using code reviews as a means of increasing interactions
Another way we facilitate remote team communication during the day is through code reviews.
Since our branching strategy resembles a trunk-based model, development team members frequently open small PRs. Normally, there are multiple PRs from each team member during the day.
Those PRs need to be reviewed and merged quickly – usually within an hour after they are opened. Also, the PR authors are responsible for merging their own work once the code review is done.
This approach facilitates frequent communication within the development team around particular bits of the codebase.
The Importance of Synchronous Interactions
Creating extra occasions for meaningful synchronous interactions among the team members helps the whole team get closer, have a better understanding of each other and, in general, have a better context around the project.
Peer coding sessions
At Redberry, we encourage Peer Coding Sessions where two developers jointly work on a coding task. This approach serves dual purposes: fostering collaboration and enhancing code quality. When two minds tackle a problem, they can effectively brainstorm, troubleshoot, and review code. It promotes skill sharing, shared code understanding, and faster problem resolution. In essence, this practice brings the synergy of a physical team to the remote work environment, maintaining our work’s quality.
Team coding sessions
At Redberry, we take the idea of Peer Coding Sessions a step further with Team Coding Sessions. These sessions are essentially ‘peer coding on steroids’, where the entire team tackles a complex problem collectively. One person does the coding while others continuously contribute with suggestions, ideas, and solutions. This collaborative approach ensures that every team member understands the intricacies of the most complex parts of the codebase. More than just problem-solving, these sessions are an immersive learning experience for the team, ensuring everyone has a holistic understanding of our code and its challenges. This contributes to building a robust and flexible team that is well-versed in every aspect of the project.
Release Days at Redberry are the culmination of our team’s hard work throughout the sprint, signifying an exciting transition from development to delivery. These days are distinctive, as the entire team comes together, sometimes even physically at the office, to add to the collaborative energy. These synchronous gatherings allow us to handle the release preparation more efficiently, smoothing out any last-minute hitches, conducting final reviews, and ensuring that all parts of the new release are well-integrated and tested. In essence, Release Days encapsulate the spirit of unity and collaborative problem-solving that is fundamental to our work culture, whether in-office or remote.
This may serve as a valuable example of how adjusting traditional practices to suit the remote work context can significantly increase the effectiveness of agile development remote teams.
In A Nutshell
Overall, it all comes down to realizing that to be truly agile when working with a remote development team; you have to go the extra mile to make the ceremonies work around the needs of your team and create more dynamic and frequent touch-points within your team members to make sure they are constantly in communication with each other, helping each other work while streamlining their own.
Apart from these practices, we’ve also arrived at an optimal toolkit that really helps us keep updated on the progress of our project, keep our communication easy and make sure we have appropriate documentation at hand and at our fingertips. But let’s talk more about that in our upcoming blog.
Get in touch
Business development manager
Business development manager