Software development outsourcing is a strategy known to all IT departments - and embraced by many. In our discussions with business and IT leaders, we find that some companies have attempted to use outsourced software development, but the results were dissatisfying and - sometime disastrous.
We found the root cause of the issues were not systemic to the decision to outsource nor caused by the outsourcing partner, but rather caused by internal company factors that ultimately prevented success.
Article originally published on CIO on April 24, 2018.
We believe there are common “warning flags” that, if properly heeded, can help a company proactively remove barriers to successful software outsourcing. These 15 Risk Areas can be categorized along 3 dimensions:Each of these 3 dimensions has 5 key risks - for a total of 15 key areas of risk.
In a previous article, we introduced readers to this concept of 15 areas of risk, followed by articles on “Business” and “Management” risks, respectively. In this article we’ll examine the 5 risks most commonly seen inside the “Technology” dimension of a software development project, or any technology project.
A technology risk is a risk introduced into an outsourced software development project, which stems from tools, methods, and approaches that the IT team must uniquely control. These risks are uniquely different from risks which arise from circumstances inside the business area or general management of the project. In our experience with customers, we’ve seen 5 risks of technology that occur the most often.
It’s surprising how many times we find that an outsourcing partner has not been properly vetted: confirming that the project team has the requisite skills and experience to be successful. Certifications, ongoing training, industry and functional experience are all dimensions that should be part of your companies due-diligence before going to contract.
Do outsourced partner team members have the right technical skills? There should be clear work experience – and references – provided to demonstrate that the languages and tools needed are part of the third party’s core competency.
Is industry or vertical experience part of the necessary skill set you need from a partner? Make sure that your chosen software outsourcing partner has experience with developing solutions that reasonably match your business context. Each project circumstance is unique. The software development vendor should be able to explain why their experiences match up well to your situation.
“Adequate skills” also means sufficient bench strength. A company that sells software development services will have competing priorities. It’s important that the success of your project doesn’t hinge on a single, niche talent. The best outsourcing partners can demonstrate a culture of continuous education, cross-training, and recertification.
A driving force behind the emergence of DevOps was the recognized gap between applications and operations (or IT infrastructure – if you prefer). These two must work well together during development and deployment. When you add a software development outsourcer into the mix, it’s an effective way to get work done, however it also adds a level of complexity to the project.
Who is responsible for hosting? Is pre-production and production managed by the same group? It’s imperative that the architecture, release levels, etc. of the “dev”, “test” and “production” environments are equivalent.
How will the software be certified for the intended target platform - and WHO will do it? Make sure both you and your outsourcing partner understand the mutual responsibilities for testing the software.
Do the design elements of the system properly address the business goals? It’s surprising how often we find that insufficient consideration has been taken to ensure that alignment exists. For example, will this beautiful new web application be a bust on day 2 of go-live when users try to launch it on mobile devices? Or does the solution require so many pages of data entry that shoppers will become frustrated and abandon the purchase?
“Form must follow function” – as the saying goes. Said differently, the design must drive the solution to achieve the core business goals. Misalignment of design and business objective is a huge risk factor to be avoided.
The speed of Agile development - and the opportunity to deploy code to production rapidly - may create a temptation to overlook, or minimize, the need for adequate quality assurance.
Are QA procedures in place and understood by both parties? Are they robust enough? Are the standards for the software clearly understood? A software outsourcer may not have proper understanding of what QA steps are expected or even demanded (by policy or government regulation).
It’s very important that expectations for quality assurance practices are established in advance and YOU as the customer have the acceptable responsibility to set those expectations.
Many times, we see companies with a large backlog of software development or other technology needs. This “technical debt” can run the gamut of much-needed functionality to stay competitive in the market and for software version upgrades which are required to keep a critical application capable of being supported.
Companies sometimes find that their attempts to incrementally reduce their backlog can be described as “necessary but not sufficient”. The velocity of the planned change will NOT move the company to a sufficiently better situation. In these cases, technical debt must be addressed in radical ways: accelerating change through leveraged outsourcing partners, “leapfrogs” of functionality or technical platforms, for example.
Examine carefully your company’s technical backlog. Is there a threshold for an acceptable level of technical debt? Is there a process in place to pay it off? We challenge you to ask yourself “Is this development project really going make an impact in paying back our technical debt?”
The process of developing and deploying application software is complicated. Although working with a software outsourcing partner has numerous benefits, it also adds complexity to the project. Don’t allow the potential for failure, or suboptimal completion to creep in by ignoring signs of technology risk in your project.
Be risk averse! Be critically self-aware of these 5 risk areas and take steps to mitigate the risks or avoid them completely.
Take a deep dive into our four part software outsourcing risk areas series here: Part 1: 15 Risk Areas for Software Development Outsourcing, Part 2: Business Risks, and Part 3: Management Risks.