Hertz outsourced the development of its technology platform to Accenture, which the latter failed to do.
Outsourcing issues like this are commonplace. In fact, 25% of outsourced projects fail within the first two years.
The good news is that you can minimize or avoid it entirely if you manage and collaborate with your outsourced team properly.
Here are some of the best practices to achieve that.
Table of Contents
Setting clear collaboration guidelines
It’s important to have clear collaboration guidelines at the start of the project or when you bring external developers in.
Collaboration guidelines define each team member’s roles and responsibilities to ensure they can work together smoothly on a project.
It should cover everything from the tools used to the proper communication protocols everyone must observe.
This might seem trivial at first glance. However, you’ll be surprised at the amount of confusion these issues can cause during development unless they’re addressed properly.
In fact, unclear communication is the number one collaboration challenge for non-managers:
Guidelines can help you avoid confusion and time-consuming backtracking by forcing your team to collaborate using common protocols.
For instance, let’s say you didn’t have a guideline for sending files. One member might submit them via Slack, while another will upload them to Google Drive.
You’ll end up with files that are all over the place—a collaboration nightmare.
A better approach would’ve been to mandate that files be uploaded to the company server. To send files, use a link to the document instead.
Let’s look at the components that your guidelines should have to be effective:
Collaboration scheduling is vital, especially for external remote teams.
Chances are, your outsourced developers are in a different timezone than your in-house team.
Thus, you should agree on the times you need to have a real-time meeting every week. This allows teams to fix their schedules around those meetings.
Setting clear roles and responsibilities is also vital.
Not only should everyone else know which team member is handling what task, but it’s also crucial to remember to whom they should report.
To facilitate this, you should give external teams a statement of work.
This document details the outsourced team’s roles and responsibilities, including tasks, scope, and deadlines. It should also state where members must pass their deliverables for approval.
Lastly, it would be best to list the best practices and guidelines your team should follow for smooth collaboration.
For instance, you might require everyone to log their task status on Slack at the end of each day, so everyone knows what every other team member is doing.
Or you might have steps in place for what to do in case a member is late in their deliverables.
The important thing to remember here is to write down everything in detail—no matter how trivial it might seem.
We think it’s better to go overboard with explaining your guidelines than to be vague.
Using the right collaboration tools
Collaborating with an external development team is virtually impossible without the right tools and platforms.
Collaboration tools are like the virtual bridge that closes the geographical distance between you and your remote team, allowing them to work as if under one roof.
Not only can they help make communication and teamwork easier, but they can also make teams more efficient.
However, this takes thorough planning. You need to foresee all the collaboration roadblocks your team could encounter so that you can counter them with the right tools.
Start by considering both asynchronous and synchronous communication in your team.
Briefly, synchronous communication is done in real time—think of Zoom meetings or phone calls.
They are great for brainstorming or updates because information exchange happens rapidly.
Asynchronous communication is the kind of communication that doesn’t take place in real time.
Email or instant messaging, which don’t have to be replied to immediately but instead when it suits the recipient, are the perfect examples.
They’re convenient and non-intrusive, which makes them great at fostering productivity.
Now, the key to successful collaboration is to know when to use synchronous and asynchronous tools.
You can start by listing your team’s daily, weekly, or monthly tasks. These could include regular team meetings, submitting work for feedback or approval, and performance reviews.
Also, always anticipate one-off situations like emergencies.
Once you have a list, research the best communication tools that you can use for each.
To give you an idea of the best collaboration tools, here’s a rundown of what we use at DECODE:
For most synchronous communication, we use quick messaging in Slack. For more urgent 1:1 calls, we hop on Zoom or Google Meet.
Jira is our project management platform of choice. We love it because it allows the team to monitor what everyone else is doing.
That way, we know if the project is on track or not. Finally, we use Bitbucket as our Git repository.
But more important than picking the right tools is figuring out how to use them.
One effective way of doing it is to receive information asynchronously but reply synchronously. This minimizes context switching and distractions, making the person more productive overall.
Having a log is also critical when debugging your app. It’s easier to backtrack through all the actions taken or discoveries encountered, so you can find the moment when the error occurred.
Another good documentation practice is to have a knowledge base.
A knowledge base is an online repository of all your project’s resources. These can include coding conventions, help articles, product roadmaps, and other important information.
The value of a knowledge base is that it enables everyone—including your remote team—to always have relevant information at their fingertips.
It’s also a good idea to put your process guidelines and best practices in your knowledge base. That way, your external team can easily review and comply with them better.
A simple example is to have a knowledge base article on proper naming conventions.
Following this can help make file names and source code variables uniform, thus making them easier to organize.
Ultimately, collaboration is all about working harmoniously towards one goal. Documentation can help you get there by ensuring everyone is on the same page.
Having the leadership promote collaboration
Changes in any organization always start from the top. So, if you want a more collaborative team environment, ensure that team leaders and managers actively promote it.
But here’s the problem—managers and staff don’t always agree on what constitutes effective collaboration.
Most of all, leadership should set a good example for members. Managers should follow collaboration guidelines and comply with communication rules.
Also, make sure you’re giving remote teams equal support and attention.
Leading by example promotes trust and camaraderie in your team.
Encouraging open communication
Ultimately, good collaboration requires open communication.
Open communication means there’s a free exchange of information and ideas between team members, leaders, and management. Everyone’s opinion is respected and evaluated equally.
When this happens, morale and productivity tend to shoot up. The team can rely on their collective genius to solve problems and innovate.
Here are some other ways open communication can help:
There are plenty of ways you can promote open communication in your team.
One easy way is to make it a team habit to solicit feedback from direct reports. For instance, you can encourage developers to ask their supervisors how well they did on a task.
You can also send out regular pulse check surveys to quickly gauge the sentiments of team members.
You’d expect the drawings to be very rough at that speed—and that’s okay! What’s important is that participants generate ideas rapidly without worrying about what others think.
It’s a nice icebreaker that eases everyone into becoming more open.
Open communication can be difficult or even uncomfortable if you’re not used to it. But with a little effort, you’ll eventually get the hang of it—and reap the benefits.
Our best tip for working with external teams
We hope you’ve learned the best approach to collaborate with your external development team.
However, these tips would be useless if you don’t have the right team in the first place!
Our best advice is to take your time sourcing a development team that fits your project’s requirements and standards.
If you need help figuring out where to start, why not consider the DECODE team?
Get in touch with us today, and learn how our extensive skills and experience can help your project succeed!
Mario makes every project run smoothly. A firm believer that people are DECODE’s most vital resource, he naturally grew into his former role as People Operations Manager. Now, his encyclopaedic knowledge of every DECODEr’s role, and his expertise in all things tech, enables him to guide DECODE's technical vision as CTO to make sure we're always ahead of the curve.
Part engineer, and seemingly part therapist, Mario is always calm under pressure, which helps to maintain the office’s stress-free vibe. In fact, sitting and thinking is his main hobby. What’s more Zen than that?