Development on Demand: Part 1

The problems with off-shore software development

In a world where almost every company produces software but many are lacking either the internal resources or a consistent level of demand to justify developing everything in house, organizations must think carefully about the most effective way to meet this need. There are four main options for outsourcing software development – onshoring, offshoring, nearshoring, and staff augmentation – and all of these have their own pros and cons, from price to proximity.

Over the past 20 years or so, we’ve honed our working principles and methods to serve our customers better, and the result is Development on Demand – the new model for nearshore software development. As a nearshore provider with a global reach, we’re well aware of the advantages of outsourcing to a team from abroad. However, we’re also aware of the potential pitfalls of offshoring – and in response, the principles and measures behind Development on Demand have evolved over the years to make sure our customers don’t fall prey to them. In this article, we’re going to explore those issues in more detail.

So what are the main problems a company may encounter with offshoring?

1.      Poor problem definition

One of the biggest mistakes in a development project is getting buried in doing the job rather than keeping focus on the problem. The issue with this is that the customer’s needs, or the consultants’ understanding of the problem they’ve set out to resolve, can change over time, and so the originally planned solution might no longer be the best way to achieve the desired outcome. That’s why it’s important to maintain constant communication – this helps to ensure that the problem is clearly defined, and refined if needed, to ensure that the solution ultimately meets the customer’s requirements.

2.     “Throwing more bodies at the problem”

There’s big a difference between momentum and progress – it’s not enough to simply be moving, we need to be moving in the right direction. If there’s not genuine progress, customers’ resources are being wasted. When things aren’t going according to plan, on schedule, or towards the best outcome, the standard response for many offshore solution providers is to try and fix things by bringing in more people and adding layers of project management into the mix. The problem is, if the lack of progress is caused by developers sat with extra time on their hands due to poor management or a lack of direction, throwing extra bodies at the project isn’t going to help. And if you’re tied into a long-term contract or feel that you have to keep working with them to justify your investment to date, it only gives those providers license to add yet more bodies. Rather than deploying more personnel, the most effective response would be to take a step back and ensure that the existing project resources are being used as efficiently and purposefully as possible, and change course if needed.

3.     The hidden cost of handholding

When outsourcing software development, you don't want to hire someone who needs constant supervision – sure, you might define your goals and plan the implementation together, but in the end, you should feel comfortable leaving them to do the agreed job and only hearing from them when your input is needed. Ultimately you expect them to just get on with it – that’s why you’ve hired external resource.  But unfortunately, that’s not always how it works with offshore services because it’s hard to know if you can trust providers to deliver as promised and on time, especially with the remote distance and mismatched time-zones. If you end up needing to “help the helper” to get the project completed, that places a burden on the workforce you were trying to relieve by hiring them. We call this a hidden cost because even though the price of the service hasn’t changed, you’re using internal resources to cover that shortfall.

The issues outlined above are all-too-common blockers to great outsourced software development outcomes. They can be the difference between creating a product with genuine customer value or one that's functional but ultimately useless, between getting a project completed on time and budget or going months and millions over, and in extreme cases, between thriving or failing as a business – especially given how central software is to the performance of companies in today’s technology-centric business landscape. In part two, we’ll talk more about exactly how Development on Demand helps us successfully meet our customers' needs by resolving these issues that typically come with offshoring.

Want to know how we eliminate these common issues with offshoring? Stay tuned for part 2, where we’ll look at how SOUTHWORKS’ Development on Demand approach does just that.