How to Make Your Remote Software Team Work Like a Well-Oiled Machine
PM with passion for building great products. Tech junkie & marketing devotee.
The modern world allows the level of flexibility we have never experienced before. We can now work for a company on a full-time basis without having to go to the office. Some companies completely eliminate brick-and-mortar offices and become open to hiring remote employees from all over the world.
Having disrupted the tech industry, remote work models continue to gain traction across many other industries. Corporate leadership has started to realize that business success today depends to a great extent on the ability to find, hire and retain highly qualified specialists for mission-critical software development tasks. Focusing on the local talent pools alone can result in a very long time to hire which will slow down your time to market accordingly. Therefore, many organizations have shifted focus from onshore hiring to seeking talent offshore and/or remotely to be able to scale fast and eliminate overheads related to using local staffing agencies with hidden agendas.
Companies of all sizes report significant decreases in operating costs thanks to engaging remote employees. Aetna (where some 14,500 of 35,000 employees don’t have an “in-office” desk) shed 2.7 million square feet of office space, saving $78 million, while American Express reported annual savings of $10 million to $15 million thanks to its remote work options.
As employees, we love the flexibility of remote work, and we don’t want to work fixed hours in the office, as we want to have a freedom of choice of when to start and finish our work, how to do our work, etc. That being said, companies tend to hire self-organized professionals and motivate them to deliver great results through intrinsic and extrinsic awards, mentoring and coaching, career promotions, involvement in decision making, providing opportunities for self-development, etc. In fact, according to Remote.co, a robust 68% of millennial job seekers admit an option to work remotely would greatly increase their interest in specific employers, according to a survey by AfterCollege, a career network for college students and recent grads.
The ability to work from different places every day and devote as much time to the job as you want is believed to induce creativity and increase your life satisfaction level. When a person is happy, she/he can make miracles, that’s for sure.
However, remote work can be hard as much for an employee as for their managers. Lack of communication is one of the major issues in remote team management that has been much talked about in the media lately. When people work in the same office, daily communication becomes inevitable: we bump into each other at coffee/smoking points or at a corporate gym, we exchange a couple of words, can make friends with colleagues, go out for lunch or beer together, etc.
When the team is set up remotely/distributed amongst several locations, the same team members can be based in different time zones and only communicate virtually through Scrum, retrospectives, and occasional conference calls. The lack of daily face-to-face communication leads to project bottlenecks as a result of omitted details, lack of shared vision and client’s business understanding, as well as situations when one part of the team is aware of something that the other part has no idea of but is believed to know it, etc.
At the same time, another critically important aspect that every good project manager should keep in mind when managing a remote team of software developers is to find an efficient way to track both the team and the individual performance.
While “performance tracking” doesn’t seem to be rocket science, many teams fail at it, unfortunately.
Let me show you the behaviors that may give you a hint that your team performance is dropping and solutions that may help you improve it significantly.
“Red Flag” Behaviors Within a Remote Software Development Team
- People overwork or underwork;
- The team isn’t aware of your or your client’s business goals;
- People don’t agree with goals and KPIs they’ve been assigned by your PM;
- They miss deadlines and have troubles prioritizing things;
- They communicate seldom, miss regular calls, don’t reply to your messages;
- There’re many Dumpster Fire situations.
What you can do to improve remote team work
In order to have stellar team performance, I suggest you use both a clear KPI structure and communication transparency.
Whatever you call them in your company – KPIs, goals, or OKRs – they are wildly important for your employees. Without proper goals setting, your people simply will not know where they are heading and why they do what they do. Inability to plan ahead and understand how the work they do leads to the company success and their own professional development results in their unwillingness to contribute and devote to the project they are engaged with. It is a regular problem of top-level managers who think strategically but forget to explain their strategy to the people in their own team.
Simply don’t repeat the failures made by hundreds of other software development managers before. As a very first step after the team setup, it’s highly recommended that you have a virtual call with the entire team where you voice the top-level business strategy and how the solution you’ll be working on altogether will contribute to reaching those big hairy audacious goals (BHAGs). Afterward you should set up individual calls with each and every team member where you discuss their personal contribution to the project success and whether they understand their role clearly or not. If you need to make more calls to achieve shared vision within the team, go ahead and do it as many time as it takes until you feel confident that each member knows how he/she can impact client’s business success with own skills and experience.
Eliminate dull metrics
People tend to overcomplicate things. Having employed Scrum methodology for the first half of the year, I honestly believed that every artifact identified as a result of Scrum was very crucial to implement in my teamwork. It isn’t obvious. I learned it hard way by being overwhelmed with the number of meetings we had, precise evaluation in story points and velocity calculations. I used to worry about our team velocity being 5 points less this month than last month while forgetting that velocity wasn’t a performance indicator but a relative number of high loads the team could take. In the pursuit of higher numbers and due to my willingness to make everything more than perfect, we dropped in quality significantly. Most importantly, our client satisfaction decreased substantially.
That poor tendency had to stop before it killed the project. So we started from scratch and decided to take a new look at how we can improve the quality of work we are doing, the satisfaction of our clients and the excitement we have when working together. We usually forget that more is not always better and increasing some KPIs twofold may have very negative long-term effects on the project development. Chose what is best for your team, experiment with goal setting, observe and never let the quality drop in favor of speed.
Managing time overlaps
Your team may be distributed across the 4 continents and 6 different time zones. There is no possibility for the whole team to start and end work at the same time. To foster communication regardless of the time difference, try to find a 3-4 hour overlap between time zones where you can squeeze in all of the team members to have daily or bi-weekly sync calls, solve emergency issues, or just to say hi to each other or congratulate someone on the passed birthday.
This practice will allow you, as a team manager, to stay in the know about the current context each part of the distributed team lives and works in, which will give you a trump card in performance appraisal, salary negotiations, etc.
Choose proper virtual communication channels
Pick and establish channels that your team feels most comfortable using. You can offer several options and choose one to use in your team based on team voting.
I won’t delve deeply in virtual tools analysis as you can find many out there, I’ll just mention a few that proved pretty efficient for remote teams I worked in.
Slack works well as general communication means since you can have a general chat to share and discuss company news, fun, memes and motivational stuff, as well as project or even task-specific private channels. It also integrates well with Jira (one of the most widely used task tracking tools in software development) and similar performance tracking applications, which can facilitate reporting and enhance collaboration on task execution. For daily standups and video communication, I recommend to use Zoom or GoToMeeting and avoid Skype or Viber as their video call quality leaves a lot to be desired and they prove to be less stable than Cloud-based solutions mentioned above.
Depending on a methodology you use, find a proper task manager. In a few teams I’ve worked in, we used Trello for Kanban projects and Basecamp and JIRA for Scrum. In addition, make sure to allocate a shared hub for keeping all of the project documents safely in one place that will be easily accessible to different team members depending on their level of involvement in project and permissions assigned.
In many teams, we used Cloud-based Google Drive and never had any complaints about it. Its Cloud alternatives include, but aren’t limited to:
- Dropbox (1TB for $99/Year, 2TB for $15/month and Unlimited for $25/month),
- Tresorit (which offers end-to-end encryption with cryptographic key sharing technologies, with pricing starting at $20/user/month (2-9 users) and $12/user/month (10 or more users)),
- pCloud (used by Coca-Cola, Uber, Twitter and LinkedIn among others and offering 500 GB for $3.99/month and 2TB for $7.99), and others.
Your people will want to know each other better. We really hope they do. If not, try to create a culture when people talk not only about work-related issues but also share some personal details, joke together, share ideas and discuss cases.
Create a chat in slack that will be devoted uniquely to the non-work topics. Share news there, discuss movies, post pictures with cats. Engage your team in informal communication, let them feel comfortable getting to know each other. We guarantee that they will work together better and will be willing to support their teammates even they might not to.
As per 8allocate’s internal stats, client-tailored teams that are visited by product owners at least once a quarter traditionally show better results and are generally more satisfied than teams that only get in touch with their clients virtually.
Spending even a week per quarter with your remote/offshore team will allow you to have a better understanding of who is who on a personal level (which will help you predict to possible conflicts within the team and address them proactively to avoid big problems and financial losses in the future), how everyone is really involved and who piggybacks on their colleagues’ skills, etc. The better you know your surrounding, the better you know whom to rely on.
To conclude, just treat your remote team like your in-house team and it’ll yield great results pretty soon.