William Shakespeare once wrote that “All that glitters is not gold.”
This saying applies to software outsourcing just as aptly as it applies to The Merchant of Venice. Sometimes companies get seduced by the idea of outsourcing their app development in order to save money, only to end up disappointed at the end when things don’t turn out as planned.
So what do you do when you find yourself in an outsourcing nightmare?
This is an area that I have had the honor of experiencing several times. In my former life I have been the client of an outsourcing nightmare experience, and in my current position as SVP of CodeStringers I have taken over projects to “save” clients who are in the middle of outsourcing nightmares.
So hopefully I can help you benefit from my experience and teach you how to gracefully and painlessly uncouple yourself from an outsourcing relationship that is no longer working.
A Cautionary Tale From Our Past
At CodeStringers we pride ourselves on being able to successfully rescue companies from unsuccessful outsourcing projects. Here’s a typical example of what can go wrong and how it can be fixed. This story is fictional, however it is a composite of real-world incidents that we’ve seen in the past:
Acme Technologies is a medium sized software firm that has carved out a successful niche within the healthcare software industry. Their product has been around for decades and is currently being maintained by in-house staff. However, they had a specific client need for a mobile diagnostics app which they didn’t have the resources to build in-house, therefore they decided to outsource to Pied Piper Technologies in India. Pied Piper was selected in an RFP process because their price was the lowest of 3 outsourcers who responded to the RFP. The two-page RFP asked for the Acme Diagnostics app to be delivered within 6 months.
A couple of weeks after the deal was signed, problems became apparent. Acme hadn’t heard hide nor hair from Pied Piper. Acme’s VP of product reached out to Pied Piper’s project leader to ask for updates and each time they were assured that their product was still on track to be delivered on time.
Eventually, Acme got worried and asked for a demo. So at the 3 month mark, Pied Piper set up a demo of what they built so far. On the positive side, the app looked nice, and it did exactly what the RFP had asked for, however it had myriad problems. The user experience was unintuitive, several of their clients’ products were omitted, and the ones that were included were often spelled wrong. And it didn’t integrate at all with Acme’s main product.
When Acme asked for these mistakes to be corrected, Pied Piper said that was out-of-scope and would require an additional $100k change order. Acme had no choice but to agree to the change order.
Three months later, when the six month deadline arrived, Pied excitedly delivered the app, with the requested changes. It was a mess. Again, it looked great, and they did make the exact changes that Acme asked for, however, the integration was completely wrong and consequently the app didn’t work. When Pied Piper mentioned this to Acme, Acme replied that it wasn’t their fault because the integration requirements were not clear.
So after 6 months, Acme was stuck with an app that didn’t work that was $100k over budget.
So what should they do?
What to Do When Your Software Outsourcing Relationship Sours
1. Acknowledge the Problem
Many business leaders find it challenging to admit when an outsourced project is veering off course. The psychological resistance isn’t just about pride; it’s also about the financial and time investments already poured into the project. This is typical human behavior which psychologists call the “sunk cost fallacy”. Once you’ve put a lot of time, effort, and money into something, you don’t want to think of it as “wasted”.
However, in reality, this logic is incorrect. What has happened in the past can’t be changed. The only question is, which course of action is most likely to result in success?
In the aforementioned example, does Acme have any reason to believe that Pied Piper will be able to succeed in the future when they’ve been so ineffective in the past? Or would they be better off trying something new?
2. Open Communication Channels
Rather than immediately jumping ship, try to open a dialogue with your outsourcing partner. There are two reasons for this:
a) It’s possible that the relationship is still worth saving. The outsourcer may actually “hear you” and try to rectify the situation through staff changes, process changes, etc.
b) If (a) fails, you’re still going to need to come up with a transition plan. Transition is much easier if you are still on good terms with the recently-fired outsourcer.
3. Document Everything
As you evaluate the relationship, make sure to document every interaction, decision, and delivery. Again, there are two reasons for this:
a) It will make transition easier if the next outsourcer (or internal team) has records to refer to in order to get them up-to-speed.
b) It’s good to have meticulous records in case there is a future legal dispute.
4. Consult Your Contract
Understanding the terms of your agreement is essential. Know what you’re entitled to in terms of intellectual property, source code, or even refunds for non-delivery. If a breach has occurred, this can give you leverage in discussions or provide a clear path for your exit.
5. Secure Your Data and Intellectual Property
Before announcing a break-up, ensure that all your data, source codes, and intellectual property are safely in your possession. This prevents potential misuse or, in worst-case scenarios, sabotage. Again, it also will make life easier for the next outsourcer or internal team that takes over the project.
6. Engage a Rescue Team
If your software project is at a critical juncture, consider partnering with a software rescue team, like us at CodeStringers. Such teams specialize in understanding distressed projects and steering them back on track.
You may want to read: 8 smart tips for evaluating outsourcing partner
7. Reflect and Learn
Once the immediate crisis is managed, take a step back. Analyze what went wrong. Was it a mismatch of expectations? Did you not vet the outsourcing company thoroughly? Use this experience to refine your vendor selection process for the future.
8. Rebuild Trust with Stakeholders
A failed outsourcing relationship isn’t just about lost time or money. It can also damage your reputation with stakeholders, be it investors, customers, or your own team. Communicate openly about the challenges faced, the steps taken to rectify them, and the new direction you’re heading in.
Exiting an underperforming software outsourcing relationship is challenging but necessary at times. The key is to act decisively, safeguard your company’s interests, and pivot to a more fruitful partnership. At CodeStringers, we’ve championed many such transitions, turning failing projects into success stories. While no one wishes for a soured relationship, it’s always good to have an exit strategy in place, just in case.