The 6 biggest challenges of software outsourcing… and how to beat them
No one would deny that software development can be challenging in many different ways. Hardly surprising then that this Geneca survey found 75% of business and IT executives anticipate their software projects will fail. This is a truly disturbing lack of faith! How do you manage a software development project if you don’t believe in its final success? From our point of view, outsourcing to an expert partner is an advisable option. However, the process is not without its pitfalls, most of which are connected to the quality of the relationship between client and outsourced provider.
So, outsourcing software development seems like a perfect solution that will solve most problems with software in your organization?
Well, yes. And also, potentially, no. How come?
Yes, outsourcing the development of your latest digital product could be the smartest strategic choice you could make. However, not all outsourcing providers are the same and the process comes with its own set of potential pitfalls. Based on our 16 years of experience here at Boldare (and previously, XSolve), we want to point out those pitfalls and – most importantly – tell you what solutions we’ve learned are effective.
1. A lack of shared understanding
It’s an obvious fundamental that any team working on a product should all agree on what that product is, what it’s intended to do, and so on. A common vision, in other words. Otherwise, the design is done with the user in mind, the code is focused on the client’s needs, and the quality assurance expert on the team is wondering why nothing fits (an exaggeration, but you get the point).
The best software outsourcing projects have the client and the outsourced experts working together as one. And that requires a shared understanding of what the project is all about: the requirements, the deliverables, the timeline, the scope…
However, differences in perception can occur all too easily. The client often would ideally like the product as soon as possible (yesterday?!) for the lowest possible price, and yet they also expect a high level of quality. The risk is that the potential outsourcing partner doesn’t want to disappoint (and lose the work) so they agree to something unrealistic – a recipe for let-downs and upset on all sides.
This situation is worryingly common. A SourceSeek survey found that in outsourced software development projects, 32% say that “unclear goals” is the biggest hurdle or barrier to success. (Remember that 75% of executives with no faith in their projects? This is a big reason why).
At Boldare, we believe this clarity of purpose is so important that we begin every software development project with a product discovery workshop (or other workshops that fits particular project in a best way). This meeting is attended by the whole scrum development team assigned to the product: the developers (front- and backend), product designers, quality assurance (QA engineers) experts, scrum master, product owner (from the client’s side) and any other important stakeholders.
We use a variety of techniques – including product discovery, impact mapping, and design thinking – to ensure that we’re all on the same page regarding the purpose of the product, the audience and users, the business goals that the product is intended to fulfil, and the current stage of product maturity (prototype, MVP, or established product that requires scaling). We also discuss and explore possible solutions and technology, and do the initial risk assessment for the project.
2. Poor communication
Communication may be the key to all teamwork but working with an outsourced software developer brings a couple of specific communication challenges:
- First, there’s the fact that the development team works for a different organization to the client. This doesn’t have to be a problem but it can be, especially if the two organizations have different cultures and ways of working. Without clear responsibilities and a shared understanding of the project, the different ‘chains of command’ can lead to competing priorities, scope creep, and unnecessary work.
- Second, there’s the issue of geography. It’s common to work with external service providers in different countries; often the same (or even better) quality of work can be had for a more reasonable budget, thanks to differences in national economies and cost of living. Add in different time zones and native languages and the communication challenge can become significant, especially working in the scrum methodology which requires regular meetings.
The first challenge lies in the fact that you have two different teams (client and outsourced provider) with potentially different drivers, working to achieve the same result… and that result (your digital product) can only be successfully achieved if these two teams can genuinely collaborate.
One of our advantages when it comes to communication is our radical transparency. We believe (and we practice what we preach!) that we should be absolutely transparent and honest when it comes to our work. This is why our clients have full access to all team members during the whole period of product development. They have full visibility on all communication channels we use and all tools we work with.
How is it working? Thanks to this approach, we can spot problems and react faster, and our clients can report on new ideas or challenges they see.
On the second challenge, we agree that a common language between provider and client is essential (that’s why all our people at Boldare speak excellent English). Then we look for opportunities to bridge or cancel any geographical separation. As mentioned above, this means starting every project with a product discovery workshop which is all about communication and understanding each other and also gets everyone in the same room for a day or two.
Our experience is that there is no substitute for this initial face to face meeting and that the benefits in terms of teamwork continue throughout the project. For ongoing communication, we use Slack for instant messaging, Jira (or Asana) for project management, and Google Hangouts for the daily and other regular scrum meetings (maintaining that face to face element that helps overcome any language difficulties).
Last but not least, when both provide and client are used to similar, or better still, identical methodologies, the work can flow seamlessly. More on this topic later.
We know our communication skills are good - we’ve proved this working with multiple clients from different continents and timezones. You can check out our case study section, or our reviews on Clutch.co - 36 reviews from different companies.
3. Incompatible methodologies
We’ve mentioned that in software development outsourcing, it helps if the client and provider have compatible cultures and ways of working and that is especially true for project methodologies. The SourceSeek survey cites, “client doesn’t participate in the methodology” as the biggest hurdle for one in ten projects. It’s understandable that clients may be unfamiliar and even reluctant to use modern approaches to digital product development – after all, it’s usually not their area of expertise.
However, there are also plenty of developers still committed to using out of date approaches such as the waterfall methodology which is based on minimal client involvement, detailed documentation, and a rigid sequential structure.
Scrum, on the other hand, is all about collaboration with the client, flexibility, and an iterative structure that drives the work yet also allows the scrum team to change direction, if necessary. (For more on the differences between waterfall and scrum, read our article, “The Great Dilemma: Agile or Waterfall”.)
In software development, agile methodologies – such as scrum – are flexible, provide results through regular progress, and focus on satisfying both user needs and the client’s business goals. Unsurprisingly, scrum is Boldare’s preferred approach and so far, where necessary, we have been able to convince our partners that an agile methodology would be best (and then, if we say so ourselves, the project outcomes prove it).
4. An inflexible mindset
Circumstances change. Sometimes, partway through your software development project, the goals you agreed at the beginning become less of a priority. Maybe the user needs have shifted, customer feedback on your MVP suggests that they want X instead of Y. Or maybe your initial vision turns out not to be so great after all and having worked on the prototype you can now see a more profitable direction to pursue.
Whatever the circumstances, the problem (and it’s inherent in waterfall methodologies) comes when one party to the deal doesn’t want to change and you’re left with a project that might well be ‘successful’ in terms of the original objective but nevertheless leaves you with a product no one wants.
We hate to repeat ourselves but it’s true, an agile methodology like scrum really does help overcome this mindset issue. That’s because flexibility is coded into the DNA of scrum. After each iteration, each sprint, the review and retrospective meetings encourage the scrum team to critically review the project and the product so far, asking not only, Are we on track? but also, Will this product still meet user and business needs or Can we be sure that we will avoid the same mistakes in the future? And if the answer is a ‘no’, scrum makes it easy to pivot the project and proceed in a fresh (and better) direction.
5. Ensuring product quality
With an outsourced development team, often in a different country, it’s reasonable that the quality of the work is a concern for the client. After all, unlike with an in-house team of developers, you can’t directly supervise what they’re doing (unless you work with Boldare - we encourage clients to participate in the daily life of our development teams using various tools, and we’re also very keen on personal visits and trips). This is a question of transparency and the client needs to trust the outsourced team. But how to build that trust? How to reassure the client about product quality.
We’ve already mentioned the regular and close communication that is a natural consequence of using an agile approach to software development, and that goes a long way to creating an atmosphere of mutual trust and reliance between us and our clients. But at Boldare, we also have our own extremely rigorous quality controls:
- We aim to include a quality assurance (QA) specialist to each of our development teams. He can be focused on product quality at every stage of the development process, from addressing the initial business ideas and needs, to testing the functioning product.
- Clear coding standards, chosen according to the product under development and the technology being used.
- A ‘definition of done’ for each product iteration, ensuring a common understanding of what success looks like.
- Peer code reviews in which every piece of code is reviewed and approved by at least one other experienced software developer.
Our focus on quality goes beyond technical code review - we are looking at each product in a holistic way, paying attention to UX/UI or security standards as well.
6. Unhealthy dependency
Finally, the danger with engaging ‘an expert’ to do something for you is that you end up relying on them forever. The client’s lack of capacity and/or expertise and the outsourced provider’s ability to deliver create a kind of dependency between the two. Maybe this doesn’t sound so bad but it can mean that what was intended to be a one-off solution (We don’t have the time or resources to do this right now, so let’s outsource this particular project.) becomes a long-term thing with little knowledge or experience benefits for the client organization.
So-called “vendor lock-in” can be extremely problematic (and expensive!) for a company that is de facto forced to use services of only one company. Such a situation can block development of the software for a long time, making it insecure and obsolete.
In two words: knowledge transfer. A good outsourced partner will not only deliver an excellent digital product but also pass on to your in-house people specialist knowledge of technologies and processes. When your own people are gaining new knowledge and experience, that can be applied to future work and projects. What’s more, this process of digital product knowledge transfer can go further, linking to the wider digitalization of your business.
In fact, at Boldare, we have many times acted as a consultant and guide to the digital transformation journey; usually, with clients for whom we are working on multiple products as part of the client’s broader business strategy. Thanks to this approach, our work is more efficient and better - it’s always better to work arm in arm with an equal partner.
Summary on challenges and solutions:
Software outsourcing is not only a route to a digital product that meets your user and business needs, it can also be a highly beneficial partnership for organizations on a journey of digital transformation. However, when choosing an outsourced software developer care must be taken to overcome the challenges of shared understanding, communication, methodologies, flexibility, product quality, and dependency. With all those things in place, there’s a much bigger chance of final success!
If you wish to learn more about choosing the best service provider, read this article: Hiring a web development company? Avoid these mistakes