Outsourcing is firmly embedded in the DNA of most American companies; untold time and money have been saved through companies working with on, near and offshore providers.
However, software outsourcing is not without its risks and some of those are not as obvious as one might think. The following are six categories of risks that you should consider.
Few software outsourcing companies can do everything well but sometimes such a company will make promises when winning the business that it cannot keep. This over promising can be manifest through an inability to scale, provide the right technical capabilities or the appropriate leadership skills.
The skills needed to maintain a legacy application are different from those needed to work on new product development; it can make sense to split tasks up among several providers to ensure each has the skills and capacity required to excel at their assigned task. Of course, there is additional management overhead involved in managing more than one software engineering services provider, but this cost is unlikely to outweigh the benefit getting the right teams to do the right jobs. Additionally, this diversifies the American company’s outsourced portfolio.
You evaluate a software engineering provider, the team and price looks good. You get the contract negotiated, and kick the project off. Your team powers ahead, head’s down, working hard. They blow through the first half a dozen sprints readying for the first release. Something doesn’t seem quite right. Then, the fur hits the fan and the release bombs. What happened?
Well, as you dig deeper you figure out that your project manager - a tough talking ex Marine from Texas - and the offshore project lead never connected. In fact, not only didn’t they connect, they positively repelled one another. Your Texan couldn’t understand why his counterpart halfway around the world was so compliant and never stood up for any of his ideas. And the outsourced project lead was aghast at the Texan's tough talking, snuff dipping, Lone Star swilling bravado, so he got real small and real polite.
Culture matters: your team’s culture and ditto with your outsourced partner. The communication styles each has absorbed locally must be expanded to understand each other. Getting different cultures to sync takes effort and patience.
It’s funny how a lot of American managers talk a lot about collaboration and partnering - with their team, their co workers, and their managers - but with outsourcing, they often move into command and control mode. This approach doesn’t play well in Peoria and it especially doesn’t work with outsourcing partner located outside America. Just about every other culture in the world is more relational than the U.S., so building a relationship with your partner is critical. Treat them as a partner and invest in the relationship. Have their back and they’ll have yours.
Your Relationship Risk
It isn’t that uncommon for the CTO or VP of Engineering at a mid sized American software company realize that he needs to outsource some software engineering and reach out to his best friend, a contact from back home in company X, or use a guy that he worked with at an earlier startup.
The deal gets done and things chug along when suddenly one day the VP quits or his contact in country X leaves. The CTO’s company is now exposed, using a software outsourcing firm that they do not know well, that they have not vetted and that they have not run through a rigorous selection process.
It is better to select your outsourced software engineering partner like you would any other vendor with whom you will have significant risk: explore the global market, target a short list of companies and take time to do deep due diligence, with multiple of your team members involved.
Bait and Switch
This tends to be an issue with larger software engineering outsourcing companies. Their presentation is pitch perfect: their breadth and depth is impressive, their roster of clients and experience in your vertical unsurpassed and the presenting team get your technology and challenges. You get them signed up and a couple of months in your project is being worked on by largely junior engineers. The guys that presented are nowhere to be seen and the managing director that led the charge will not return your calls.
You can reduce this risk by: a. going with a smaller provider; b. doing deeper due diligence; and c. making sure that you have identified and interviewed your project leads.
When you are working with less common technologies - these tend to be at either end of the continuum (old and out of date or brand new) - you want to make sure that your outsourcing partner’s team has the skills necessary to do the job. This is often easier with newer technologies: you can offer to train the FTEs you are working with and they will be easier to learn. It is harder to do with older languages - e.g. COBOL - and there aren’t always older engineers around to work in the language and the younger guys have little interest in learning a legacy language.
As laid out, these outsourcing risks seem pretty obvious; interestingly, only one of them is technical. The rest have to do with people and processes.