Let’s establish this right upfront: nothing beats a well-managed full-time in-house team of local developers. So why would you want to outsource anything? Doesn’t outsourcing come with a lot of headaches just for a bit of saving?
As with anything complex, it depends.
Outsourcing: Why and When?
Are there enough skilled developers at your location? Can you find people with the specific skill-set you require? Can you afford local market rates? If you’re currently struggling to hire people locally, then that’s an indication that you should look into outsourcing. And done right, I believe that outsourcing means you can come very close to your team next door in terms of productivity and innovation.
Most importantly though, outsourcing means that you can start straight away. It means progress and getting things done quickly at affordable rates. Perhaps, finally shipping that feature people are banging at your door for. What’s more, you can still pull it back in-house once you find the right local talent.
Where are the Low-Hanging Fruit for Outsourcing?
A low-hanging fruit for outsourcing is anything that can largely be done in isolation. This means any kinds of integrations, small side projects, large new feature sets or separate micro services. For example, a local startup team I consult for are developing their web app in-house while outsourcing their mobile development team of 12 to Poland. That’s fairly straightforward.
If you want your local and remote teams to work together closely on the same parts of the system, then you should put some more effort into structuring your development process. You need especially to make sure the in-person communication of both teams doesn’t get lost.
Choosing an Overseas Outsourcing Dev Shop
There’s one golden rule: hire those you find yourself and not the ones approaching you. We’ve all had unsolicited email praising some company or other clutter up our mailbox. Do your own research.
Whether you search Google, filter Upwork or gather recommendations, the framework for vetting dev shops is more or less the same:
- Create a list of potential partners. Contact them and ask for a meeting.
- Shortlist to about 1-3 remainders by kicking people who aren’t a fit.
- Do a small, paid test project with all of them.
A few obvious no-gos are: a weak portfolio, poor language skills, awkward pauses in conversations, them not making any suggestions and you not being able to speak to the whole team. Communication is key, just as it is with hiring in-house people.
After the test project your choice should come very naturally. Who was on time? Who communicated well? Who understood your business? Who was fun to work with? Working with somebody, even if it’s only for a short time, shows you much more about their experience and work ethic than looking at a portfolio.
Three Outsourcing Models
There are as many different cooperation models as there are outsourcing companies. Let’s break down the three most common ones, from the most to the least expensive.
- Project-based work: you define the scope upfront and it is up to the company to deliver within the agreed timeline and budget. I would recommend this model if you have no technical or product management background.
- Partially-managed team: you manage the backlog and lead standups and retrospectives, but an internal delivery manager makes sure everything is on track. I would recommend this model if you are an experienced product manager but have no skill or time to actively manage developers.
- Outstaffing: you are buying your team’s time only and set up the whole infrastructure and process yourself – a lot like full-time employment. I would only recommend this model when you have a solid product management background and know how to lead and manage developers.
In my experience, partially-managed teams are the most efficient, especially when led by an experienced product manager and supervised by a local delivery manager.
Ship Features Like mad With the Right Process
There’s one obvious way to establish a good working relationship with your outsourcing company that is often overlooked: Hop over to the company’s office for a day, or fly them to your HQ. You wouldn’t start working with an employee without seeing them first.
The chances are you’re about to invest serious money into your new dev relationship. One or two days of personal meetings and casual evenings can often make every penny spent much more effective. If you transfer your product vision, share customer success stories and get to know the people behind your outsourcing company then they will open up and be very thankful.
For example, one of my German clients had his digital product taken over by a Ukrainian team. He flew over to Lviv for an intensive, four-day workshop. They got to know to each other, familiarized the new team with the business model, customer personas and existing code base and enjoyed the local food. The handover was very smooth, the investigation time needed by the new team was shorter than average and they were able to start adding features very quickly.
Maintain High Productivity
Working remotely you won’t get around an actual online process and documentation. It’s not very hard, you just have to stick to it. Goodbye sticky notes. No more shoulder taps.
If you don’t yet have an online product management process set up, it’s easy enough to find a team who does and who will simply replicate for you what already works for them. There’s no point reinventing the wheel, especially if the team is already working a certain way.
It’s wrong to think that an outsourced team will magically manage itself. It won’t -that’s where most failures come from. It’s all too easy to just let your team code and check back at the end of a sprint. Big mistake. It’s crucial to hold daily standups as you would with your in-house team – even if they have their own internal project manager. If you want things to stay on track, you need to check on your team yourself. It’s not easier than hiring an in-house team.
I would make sure you have at least two hours of overlap in working hours with your team so that you can perform standups and be available for questions. Any greater overlap than this isn’t crucial, since your team should be concentrating on shipping, not chatting with you.
I once had a client from New Zealand work with a team where there was no overlap whatsoever, either party was off work at any given time. Even though they had a working product management process in place which accounted for mostly smooth work, the occasional need to speak face-to-face did result in some major hiccups – like not being able to address bugs until the next day, no matter how urgent they were.
For major brainstorming, problem-solving or strategic planning I would advise that you again meet in-person and work out the general strategy you’re heading.
It’s the balance between concentrated, productive remote work and creative and intensive in-person meetings and retreats that make an outsourcing relationship work and move your product forward.
I’ve found that the best way to deal with inevitable cultural differences is to embrace them upfront. If you’re informed about them then you can incorporate this information into your communication process.
How does your team’s communication differ? Do they give direct negative feedback? How are they used to following leaders? How do they build trust and express disagreement?
Take a look at Erin Meyer’s culture map and compare your cultures. It will prepare you for communicating with your team, just pay attention to the differences. You may, for example, establish some basic communication guidelines at the outset of the relationship:
- Any issues or problems are to be reported right away.
- Constructive negative feedback on tasks and goals is welcome.
- So are ideas, improvements and simplifications.
You have to actively empower people from cultures where failure is normally hidden from supervisors to seek help. Otherwise you can risk a massive delay that you only find out about in the last minute.
If you’re aware of any cultural issues it’s easy to mitigate them. It means you know when it is appropriate to interfere.
Outsourcing isn’t a walk in the park, but if you prepare a little you can soon ramp up the speed of your product development with skilled, creative individuals and have a serious edge over your competitors. And isn’t that worth a try?