Do you currently have a remote tech team working on your project? Well, this is a friendly reminder from your offshore software development team. You’re welcome.
Don't have time to read the entire article? How about you listen to this instead?
If you'd rather read so you can easily copy some notes, continue reading.
1. Treating your remote software development team differently than your core team is the worst idea.
Nothing derails a software development project like keeping your remote team in the dark. By seeing your distributed members as ‘outsiders’ and treating them differently than your internal team, you essentially deprive them of precious knowledge that could not only be critical to their understanding of your project, but also greatly affect their motivation. And that makes sense: on the one hand, because your team would not have a comprehensive view of your business and the project at hand, they’re likely to propose sub-optimal or inappropriate solutions. On the other hand, the perceived lack of trust and the feeling of alienation could seriously bring down their morale, motivation, and in effect, productivity. Ouch. So keep in mind that mutual trust, transparency and understanding are essential components of a successful outsourcing partnership: nothing good can come out without it.
Take care of your remote team members the same way you do with your in-house guys. This is the only way for your collaboration to work really well, and the best approach for your company over the long term, too. Trust them — after all, when you choose remote software developers to support your in-house efforts, you also choose strategic partners. Maybe even pay them a visit once or twice a year if you can, and you can be sure it would bring about a very positive impact on the global output. We’ve experienced it ourselves, and so have our clients.
Bottom line: Treating your distributed team differently than your core team is, just like other common outsourcing mistakes, a price not worth paying.
2. Performance and output are the result of both our efforts.
Outsourcing is a relationship and like all relationships, it requires the participation and self-awareness of both parties in order to thrive. Inexperienced clients tend to complain about a sub-standard when in fact, the project is barely monitored, the communication sloppy, and the inhouse counterparts mostly unresponsive. It may be tempting to step out as much as possible, but as the product owner, you can’t hand off the project to your remote software development team and just wait until it’s done (beside the fact that there’s no such thing as “done” in modern software development: products are constantly adapted, updated and upgraded). Instead, you want to be actively involved in every step of your project — from the initiation phase up onwards. Again, being engaged is the only way to see your outsourcing process truly succeed.
Now, you might argue that with the right provider, such engagement with your remote team’s operations shouldn’t be necessary. After all, your provider is likely to already have well-oiled processes and systems in place, so why bother? The thing is, they might have the best processes and follow the practices in the industry, it wouldn’t be quite enough to keep the project running smoothly. With all the possible changes, questions, and issues that may arise, keeping your team engaged through regular communications (whether via video calls or chats on the fly) and having someone on your end available during their work hours remains the safest way to ensure you aren’t missing out on not being in an office together.
Plus, half the time, bottlenecks are caused by a delay in the client’s decision-making process. You are the expert in your business domain and are expected to have an in-depth understanding of the necessary adjustments to be done. Speedy decision making means fewer bottlenecks and increased productivity levels of the team.
Bottom line: Your team alone is never fully responsible for the output. It also heavily depends on how proactive you are in managing your team.
3. More developers on the team does not (always) mean faster results.
It’s commonplace to think that the more heads there are in the room, the faster things will be done. And while it typically works in a manufacturing environment, software development just doesn’t work that way, simply because software development is not a linear process. One, because there is an unavoidable ramp-up time needed for any new team members to familiarize with your project and become productive (the more complex the project, the longer it takes). Second, because more people leads to more communication overheads, which leads to more friction and therefore less productive work done. Lastly, since most software development tasks are not divisible, then adding more people to the job won’t necessarily hasten its completion — chances are that it will delay it even further.
Less people, then? Maybe. In our experience, four to five people in your team is what you want to aim for. Past this threshold, the work process would no longer be as efficient. If the project has to involve more individuals, you may want to create multiple independent teams. Undoubtedly, four teams of five would have higher productivity with less bottleneck in communication channels than one single team of twenty.
Bottom line: Consider splitting up your scrum teams before they get too big. Check out the golden rules to follow when assembling your offshore team.
4. Software engineers are not just coders. They are also advisors.
Aside from actual software development services, you are also paying for your developers’ expertise and problem-solving skills. This is their core competency, so you are always welcome to ask for advice when you need it. After all, you’re making an investment so you might as well get the best value from it.
Of course, your team’s ability to act as technical advisors, UX experts or software productivity strategists, depends greatly on the collaboration type you’re going for with your outsourcing partner. Some engagement models are geared towards delivering the actual software solutions — nothing less, nothing more. Others simply stick to meeting the required manpower. But for many enterprises, the ideal partnership involves solid cooperation with experts who have a deep understanding of the industry. People who know all about the whole development life cycle, can anticipate the users needs, are able to give solid advice, and are not afraid to step in when issues arise or when they see you taking the wrong path. Passionate minds who are continuously updating their tech skill sets to ensure that you’re getting the best possible solutions for your needs. That’s how we envision our partnerships at Arcanys.
Now, for this ‘advisor’ role to work and be legitimate, the remote software development team should have the same standards as yours — you want both parties aligned when it comes to running day-to-day operations and evaluating the quality of work. Of course, I’m not saying that your devs are living gods with the perfect answers to all of your questions; and you may need to deal with other experts like business analysts to turn your needs into clear requirements, or UI/UX designers for clean user-oriented interfaces, for example.
Bottom line: Always make sure you surround yourself with the people you actually need.
If there’s one thing that has the power to make or break the success of your outsourcing venture, it is the very relationship you’ll be building with your team. Yes, they will be dedicated to your project, working on your product, achieving your goals, executing your vision. But being genuinely engaged with them, keeping an open ear, and showing that you care, takes the collaboration to a whole new level and definitely secures your whole outsourcing effort.
Interested in grabbing more advice on fostering efficient collaboration with distributed teams? Join the community and outsource smarter.