We are living in a time when remote work is becoming more common. In fact, there are many companies with entirely remote teams. According to a Ladders survey, business leaders expect that by the end of 2022, over 25% of all professional jobs in North America will be remote.
Building and growing a great company with a remote team isn’t just doable — in some cases, it might be the best way. After all, remote workers tend to be 35-40% more productive than their in-house counterparts.
This post will cover some best practices for managing a software project through a remote team. We’ll also unpack how some prominent managers in the tech industry are tackling the challenges that come with employing remote teams.
We’ll dive right into their methods with the goal of showing you how you can do the same. By the end, you will know what it takes to keep a remote team productive and successful.
Looking for top talent fast? See how Arc can help you:
⚡️ Find developers, designers, marketers, and more
⚡️ Freelance or full-time remote + fully vetted
⚡️ Save up to 58% with global hires
Hire top talent with Arc risk-free →
1. Hire for (or Cultivate) These Traits in Your Developers
For developers in remote teams, peak project performance relies on having them possess the right traits. You can screen developers for the right traits during the hiring process, and you should always seek to cultivate them in your existing developers.
It’s also great to discuss the importance of these traits and make everyone on your remote team understand how critical they are to everyone’s success.
So what are these traits? Let’s take a look.
Effective Communicators
Remote developers must be able to communicate project information effectively, skilfully conveying useful information through appropriate media. This means that the emails and texts they send out should be concise and accurate. On calls and in meetings, they should be able to articulate themselves clearly.
This is crucial because misunderstandings and miscommunications can bring productivity to a crawl. Bryan Hemling, the CTO of Zapier, manages an entirely remote team. He views this trait — and the next one — as key skills you need to find when screening potential employees.
Independent and Autonomous
A remote developer can’t be continually supervised by a manager (unlike in a physical office environment). Each remote developer must have the self-motivation to complete their work without needing reminders. This is as true for individuals as it is for teams.
Humility
Humility, as well as the next trait, are essential employability skills to Amplitude’s founders Spencer Cates and Curtis Liu. They find humility to be one of the central core values of 10x Developers.
Great developers should always keep their egos in check. If something goes wrong, they should be able to admit where they went wrong — and take responsibility for it. They should then invest time and energy into resolving the situation. They should be humble in front of their peers, and in front of the company.
Growth Mindset
A growth mindset is the opposite of a fixed mindset — it occurs when someone believes in continuous improvement. Consequently, they view adversity as a chance to grow.
Developers with a growth mindset have the drive to push things further. They want to help their companies grow and impact as many people as possible. This mindset is an absolutely critical ingredient when it comes to making remote teams super productive.
Read More: How to Be an Engineering Manager Your Company & Team Respects
2. Managing Developers by Over-Communicating (Effectively!)
Everyone in your team should be clear about what a project requires and their main responsibilities. There should be a solid plan in place at all times.
There is a hierarchy when it comes to effective communication tools. Video and audio calls/conferences should be the number one choice, as they get the message across quickly and efficiently. So prioritize video and audio ahead of chat, texts, and email whenever practicable.
With a remote team, project management tools will also be indispensable. Take advantage of remote working tools such as Slack, Trello, Jira, Telegram, Asana, or Podica.
Importance of Regular Meetings
Regular meetings are crucial, and everyone in your team should decide on a set time, be it daily or weekly. You can use Slack or other communication tools to host these virtual meetings. Zapier, for example, hosts weekly virtual meetings through Slack and records them using Wistia.
This helps keep the entire team on the same page. Remember to start the meeting strongly: one way to cultivate strong communication in remote meetings is by leading with icebreaker questions.
Everyone should be present during these meetings to discuss goals or KPIs. You should have every member of your team come prepared with a report of where their KPIs currently stand. They will discuss what they are doing this week, what they will do in the upcoming week, and bring up any issues that may be affecting their productivity.
Scott Stiner, from the Forbes Tech Council, is confident that establishing a strategy early on “will keep goals in the forefront and facilitate product development and testing before the final version is presented to a client.”
One drawback of remote teams is that you miss out on the subtleties of human interaction and communication. There are social cues that you pick up on in face-to-face interaction that can get missed through other communication styles, particularly when communicating across different cultures.
This includes body language, facial expressions, and vocal tonality. Fortunately, with video conferencing tools like Skype, Zoom, and Google Hangouts you can, to a certain extent, recapture those small things. Though through our survey of engineering leaders at conferences like SFELC and Lead Dev, it’s still what teams struggle with the most.
In fact, this is how Sid Sijbrandij, CEO of GitLab, runs an entirely remote team made up of 160 employees in 160 locations. At GitLab, they have a team call four times per week to discuss anything and everything — including their private lives — for half an hour. The average attendance for these calls is 80 to 100 people.
Read More: 10 Ways to Avoid Failed Software Projects & Why They Fail to Begin With
3. Organize Workflow and Implement Systems
It is crucial that you document everything when working on a project in a remote team. The best way to do this is not by relying on unique individuals, but rather through clear systems. For this reason, you should set up a project management system and use it every day. Everything needs to go into the project management system.
Of course, many development teams also use Source Code Management (SCM) software like Git to track changes made to code and attribute those changes made to specific individuals. For this same reason, you should also make use of document collaboration tools like Google Drive or Dropbox when applicable. Being able to track changes is crucial.
You should also have processes and systems inside of your organization, e.g. code reviews. This is where managers and other team members look at the code that individuals are creating. They comment on the code and point out where it can be improved.
Be Agile
Many remote teams that collaborate effectively use the Agile methodology. Agile allows you to develop products and get continuous feedback during the development process. This is to prevent putting time and resources into a finished product that the market ultimately doesn’t want. With Agile, you are always building and making adjustments based on market feedback.
Jon Evans, CTO of HappyFunCorp, believes that the purpose of Agile is to keep coding projects moving and to avoid stagnation. He suggests that “you ship code regularly and frequently. Because if you don’t–well, in my experience, software stagnation is subject to the Lindy Effect; the longer you have stagnated, the longer you will stagnate.”
Read More: 8 Signs Your Freelance Developer Isn’t Working Out & What To Do About It
You can also try Arc, your shortcut to the world’s best remote talent:
⚡️ Access 350,000 top developers, designers, and marketers
⚡️ Vetted and ready to interview
⚡️ Freelance or full-time
Try Arc and hire top talent now →
4. Invest in the Professional Growth of Your Developers
You can have great developers with all the right traits, top skills, high productivity, and who are hitting all their KPIs. But if you don’t invest in their professional growth, they might not stick around with the company long-term. If you’re managing a software team, this is something to make sure you avoid!
According to a LinkedIn 2018 Learning Report, up to 94% of employees would be happy to be loyal, long-term employees if the companies they worked for invested in their career growth.
Therefore, investing in the professional development of your team members is a great idea. Help them get into new online courses and encourage them to pursue continuous learning. In the field of software development, rapid change is the norm.
Almost every day there are always new libraries, frameworks, and tools popping up. Having developers stay up-to-date is challenging, and it is all too easy for their skills to stagnate. Although professional development comes at a cost, keeping your developers’ skills fresh is important for long-term success.
5. Why Developing Strong Company Culture is Key to Managing Developers
Remote teams lose out on the spontaneous daily interactions inherent in an office environment. All those casual interactions lead people to bond and form a strong culture over time.
If your company can afford it, you should think of bringing everyone together on annual retreats. This is a strategy that can help foster a healthy culture. Here’s what the former product manager of Postmark had to say about the value of these types of activities:
The point is that in-person time is extremely important for remote teams. But you don’t need it every day, and the reason you need it is not to get more work done. The reason you need it is to sustain the human relationships that will enable you to get more work done.
Rian van der Merwe
With Slack, for example, you can have channels dedicated entirely to non-work events (e.g. #random or #watercooler) to help your team mingle and relax. You can also set up Google Hangouts sessions or virtual events that aren’t about work. Whether remote, on-site, or a mix of both, strong company culture is critical when it comes to attracting and retaining talent.
Read More: How to Integrate Freelance Software Developers Into Your Current Team
6. Understand Your Role as a Manager
When managing remote teams, it’s important to remember the fundamentals. Since many engineering managers came into the job as former software developers themselves, they are just as skilled at software development as the rest of their team. But the task of managing software developers brings its own challenges and responsibilities.
The primary responsibilities of a manager are to ensure timelines and delivery — and this is just as critical in a remote context. Fundamentally, being a manager is about making your team more productive. The job of a manager often involves doing work that developers don’t like or that gets in the way of their primary duties.
For a manager, the project and the customer are the first priorities, and technical proficiency takes a backseat. For this reason, you should delegate tasks such as code reviews. This also means you have to trust your team that they can do the work and learn on their own. After all, remote developers should be proactive and be able to solve problems without assistance. They should come up with creative solutions, and adapt to changes as they occur.
Managers who spend too much time on code and technical aspects are micromanaging. Micromanaging doesn’t help projects, and it takes away from the flexibility of an Agile approach. Do you often find yourself looking through your team’s code or always asking them for status updates? If so, step back!
To ensure you have (or are) this type of manager, focus on developing skills. Invest in leadership and management courses, relevant conferences, and other educational means that can have positive impacts on the productivity of your entire team.
Don’t forget to also learn how to manage remotely, and develop these skills too. Usually, the results you get by investing in management are exponential, since they increase the entire team’s productivity, not just of individuals.
Read More: How to Implement a Welcoming Software Developer Onboarding Process
Final Thoughts on Managing Programmers
To summarize, successfully managing a remote team starts with developers having the right traits. Be sure to communicate effectively so that everyone is clear about what they need to do. Keeping everyone aware of the project timeline is critical.
From project management to staying agile, use reliable systems and processes to systematize your workflow. Developers in your remote team will contribute to your company’s growth if you contribute to their own career development. Never forget that!
Encourage the formation of a strong company culture by prioritizing video calls, virtual “mingling spaces”, and in-person meet-ups whenever possible. Finally, remember that the job of a manager is to help make others more productive. Managers should step aside from the technical aspects and trust that their developers can solve problems on their own.
These are the principles that managers in the tech world swear by, and are what make having a successful remote team possible. Are you managing software teams? Are there any strategies that worked well for you? Let me know in the comments section below!
You can also try Arc, your shortcut to the world’s best remote talent:
⚡️ Access 350,000 top developers, designers, and marketers
⚡️ Vetted and ready to interview
⚡️ Freelance or full-time