SBA

Information | Process | Technology

EU e-Privacy Directive

This website uses cookies to manage authentication, navigation, and other functions. By using our website, you agree that we can place these types of cookies on your device.

You have declined cookies. This decision can be reversed.

You have allowed cookies to be placed on your computer. This decision can be reversed.

Outsourcing Software Development

Many organisations consider outsourcing to reduce IT costs. For smaller organisations which cannot afford or justify a dedicated in-house IT resource outsourcing may be the only option to gain access to IT skills. Despite outsourcing IT being apparently quite common there are many misperceptions and pitfalls that should be taken into account.

There are effectively two types of outsourcing, Onshore / Nearshore, and Offshore.  The type most commonly heard about is Offshore, where work is transferred to another, distant, continent with much cheaper labour rates.

 

The low cost of offshore outsourcing is generally accepted as a myth by those who have tried it. Whilst the offshore labour rates may appear attractive, most customers find that the management and specification overheads of supervising distant teams is vastly more than they anticipated. In addition communication and cultural differences exacerbate these overheads - offshore outsourcers demand very tight and precise specifications, which form part of the contract and may easily be misinterpreted / misconstrued. Projects go off track due to misunderstandings, producing unsatisfactory deliverables, corrections require further iterations of precise specifications, and changes require renegotiation of the contract and pricing. In general offshore outsourcing only works where the client is already very experienced and can devote senior management resources to supervising and managing the relationship with the outsourcer. Research by IT leadership groups such as Computer Weekly 500, and management consultancies such as McKinsey, shows that even in experienced large companies around two-thirds of offshore outsourcing attempts fail. In general offshoring only provides satisfactory results and cost savings when the work being offshored is both large scale and expertly managed. Which is not to discount it, offshoring may be a valuable means of accessing rare skills particularly in the light of the Western European shortage of ICT skills.

Onshore / nearshore outsourcing has emerged in response to the failure of offshoring as a cost saving model, ease of access to Eastern European technical skills following the fall of the USSR, rising labour costs in India, and the escalation of bespoke IT usage in smaller companies. Europeans are culturally similar to the British so shared understanding and expectations are closer. Because they are geographically closer they are usually easier to communicate with, travel to visit the customer is much easier, and development projects can be more flexible. European wages are still significantly higher than those in India, but the ease of communication, lesser cultural differences and greater empathy with the business objectives the client make nearshore outsourcing to Ukraine, Poland or Romania less demanding and usually more successful. Savings are possible, but the main attraction of nearshore outsourcing is that the reduction in communication and cultural differences results in a higher proportion of projects having a successful outcome. Onshore outsourcing - outsourcing within the home country - largely eliminates cultural and communication barriers, but there is little if any cost saving opportunity - onshoring is almost exclusively about access to skills.

Outsourcing is driven by specification - the specs for the services to be provided or software to be developed must be expertly constructed, precise, and regularly reviewed. Most organisations are not good at precise specifications, in the IT world there are demanding professional qualifications simply in producing specifications. The specification is a long established and key part of the IT delivery chain because it enables a team, whether near or remote, to be sent away to produce something.

Specification reliance has the consequence that most software development outsourcing uses the traditional ‘Waterfall’ development model where everything is defined up front and change part way through a project is expensive. The corollary is that outsourcers find it difficult to implement ‘Agile’ development methods where up-front specification is very light and the functionality required is exposed through iterative communication with the customer as the project progresses. Agile appears to be an open-ended method which could lead to projects running on, however the majority of teams implementing Agile find that it cuts development cost by a third or more because the customer doesn’t feel the need to specify up-front features they will rarely or never actually use. Agile depends on very close and frequent communication between developers and customer, consequently an onshore / nearshore or in-house team using Agile development techniques can significantly reduce the specification burden and reliably undercut an offshore outsourcer offering lower labour rates.

When using outsourcing for software development remember that the product delivered will be Version One. Almost all software changes over time, we request improvements and enhancements, business evolution and regulatory demands necessitate change. Every outsourcing project should address the problem of ongoing maintenance and change for the expected life of the software - usually many years.

To summarise: Looking to outsourcing to reduce costs is a folly, however it can be a valuable method for access to skills. Choosing an onshore / nearshore outsourcer will significantly increase the probability of project success. Avoid outsourcers who appear to place heavy reliance on tight specifications. Seek out providers who will offer an Agile development approach. Consider in-house & contract staff using Agile in preference to outsourcing development work if the skills are available. Remember that the responsibility of the outsourcer is to deliver something that he can invoice you for, whereas your responsibility and that of an in-house team is to deliver something that works for the company. Look past the first goal of getting what you want and make sure that arrangements are in place to maintain it for as long as you hope to use it. Outsourcing is a risky business and you should have a clear understanding of why you are taking the risk before beginning the project.

You are here: Home Thinking(s) Organisation Outsourcing Software Development