There is risk in outsourcing software development. It’s an indisputable truth. But it’s also true risk plays a significant role in our lives.
Driving to work every day, eating out, or jogging in the evening carry a certain amount of risk. We cannot anticipate all the risks in our day to day, lest we fail to live. What we do know is some factors can substantially increase it… in life and outsourcing.
As we enter the business sphere, risks gain a different dimension. Starting a new business entails a variety of them: getting financing, sticking to legal and regulatory compliance, hiring the right people, keeping up with the market “mood”, are just a few.
Levering and taking on the risk is what makes an entrepreneur. As Dictionary.com puts it, an entrepreneur is
“A person who organizes and manages any enterprise, especially a business, usually with considerable initiative and risk.”
Of course, none of this is totally new to you, or you would not be where you are right now! Which brings us to…
The risk in outsourcing software development
When we consider outsourcing, a great deal of our evaluation effort lies in choosing the best partner. After all, we are delivering part or all of the development of our applications to an entity that is unrelated to us.
Most probably, these are the first questions we will seek to answer:
- 1. Is the partner able to fully understand our requirements and deliver the service we need?
- 2. Does the partner have satisfied customers to prove skills and service quality?
- 3. Does the partner have suitable premises, infrastructures, and equipment?
- 4. Is the partner able to keep up with our growth path?
- And, when we consider outsourcing to a different country, more questions arise:
- 5. How will partner’s time-zone, language and working schedules impact communication?
- 6. Will the partner’s staff be able to work effortlessly with my own team? Do they have matching quality, skillset, and working culture?
- 7. How will the partner safeguard our quality standards, legal framework, intellectual property, data protection, etc.?
Obviously, this is not at all wrong and we should definitely get adequate answers to these and eventually other questions. It just may not give you the whole picture. Do note the emphasis on the partner.
Often, while we weigh a number of external risk factors, we neglect a key dynamic for successful outsourcing…
Do we have what it takes to hand-over our software development project to a partner?
This is a question we should be asking ourselves before outsourcing. Assessing our own internal risk indicators may set the difference between the success or the failure of our outsourcing project.
Let’s look at some of the main risks of outsourcing-fiasco-by-internal-factors we need to consider:
# Risk 1: Unclear purpose and goals
Do we know what we are trying to achieve?
How to avoid it: By setting clear business goals and strategy, as well as a consistent product roadmap, monitored by objective performance metrics. Our internal team needs to be aware of these indicators and realize exactly how the right development partner will get us further – e.g. will the partner provide a specific technology, give a global boost to our development, help us place our product on another platform?
# Risk 2: Poor engagement
Is our team prepared to cope with outsourcing?
How to avoid it: By enforcing team collaboration. Our people must be committed to the success of outsourcing and a single-team approach favours this. Involving the internal team in the outsourcing project from the beginning (defining requirements and specifications, asking questions, interviewing outsourcing team members, etc.) makes it easier to see the partner as an extension of ourselves, enabling a smoother collaboration.
# Risk 3: Weak management and processes
Are the right people on our side engaged in the project?
How to avoid it: By ensuring capable management and close monitoring. Even if the partner has a competent local management layer, we need to engage some of our senior staff to this endeavour. They must dedicate enough time and effort to the project in order to drive its success. Implementing formal processes and metrics, such as touchpoints, delivery reporting, KPIs and escalation procedures in advance, is also decisive to keep the project on track.
# Risk 4: Bad interface
How do we ensure proper interaction?
How to avoid it: By setting up fluent communication and feedback mechanisms. Before project starts, it’s imperative to clarify all our doubts and even meet face-to-face with the partner if required. When in a different country, we must anticipate any time-zone, work schedule, language and culture impacts in order to deal with them in advance. In the course of our project, we need to have adequate procedures and tools in place to ensure knowledge transfer, consistent interaction, and timely feedback, both on the partner side and on our side.
# Risk 5: Technical skills below expectations
How do we ensure that the partner’s staff has the right skills and experience?
How to avoid it: By getting actively involved. Defining a handful of requirements is not enough. We must look at the all process as an investment in our product. It takes more time and effort, but it pays off in the long run – e.g. when we hire for our internal team, we follow a set of procedures and we must do the same here. Similar skills and attitude on both sides makes engagement easier and enables seamless teamwork.
# Risk 6: Poor quality assurance
How will our quality standards be met by all?
How to avoid it: By never, ever overlooking quality. This is about our product and we are accountable for it. We must make sure that our quality standards are clear and understood by all, and guarantee the means to bring them to life. The partner needs to have quality assurance procedures in force to address our requirements, but we have to make sure they are sufficient and effective. Likewise, software development and management methodologies have to be defined and implemented in order to serve our purposes – e.g. Agile methods are better suited for geographically distributed projects.
Successful software development outsourcing is possible and in fact quite common. Leaving nothing to chance is the key to anticipate and deal with many of the risks in outsourcing projects.
Working with a reliable partner is halfway through but there is some work to be done at home. Failing to do it is as good as drink and drive: the risk of a fatal accident can increase anywhere between 2 and 20 times.