Home » Articles » Software Development Project Outsourcing

Software Development Project Outsourcing

Author: Nigel Atkinson, Neoworks

Abstract

Outsourced software development can offer important business benefits over in house development in many situations. Equally, outsourced development can introduce issues for the project and the long term success of the resulting solution. In this article we discuss the potential issues and benefits, and suggest ways to maximise the benefits and avoid potential problems.

Intended Audience

This document is intended to inform project managers, business managers and senior management considering or embarking on an outsourced software development project.

Benefits

We begin by looking at the potential benefits of outsourced software development. The benefits break down into two areas, the first relates to the quality of the deliverables whilst the second relates to reduction of risk during the project:

  • Improved quality of development work
    • Specialist resources
    • Experience across multiple projects
    • Experienced project management
    • Existing teams with established software development processes in place
    • Existing development hardware and software infrastructure
  • Reduced risk of failure
    • Reduced cost of development
      • Tight control over project resource costs
      • Reduced permanent staff costs
      • Reduced training costs
      • Reduced management costs
      • Suppliers with a vested interest in delivering a high quality solution within time and budget agreed
      • Reduced investment in development hardware and software
    • Reduced development time
      • Specialist resources
      • Reduced lead time for recruitment and training
      • Experienced project management
      • Suppliers with a vested interest in delivering a high quality solution within time and budget agreed

Clear definition and understanding of the customer / supplier outsourcing relationship is important to the success of the software development project. This relationship lies somewhere between a traditional customer / supplier relationship and a partnership style relationship.

Traditional customer / supplier relationships tend to suit situations where both the business objectives and the software system requirements to fulfil them are well understood and documented and are not expected to change during the development process.

Partnership style relationships tend to suit the following types of situation:

  • The business objectives are understood, but the requirements of a software system that will provide those benefits are not.
  • Both business objectives and software system requirements are understood, but the available time or budget is not sufficient to fulfil all requirements.
  • Both business objectives and software system requirements are understood, but are expected to evolve as the system is developed and tested.

There are many different ways to measure project success, dependent on the business objectives and the goals of the organisation commissioning the development of the software solution. Some common success metrics include:

  • On time solution delivery
  • Delivery of the solution within a fixed budget
  • Phased delivery of functionality to meet business deadlines
  • Delivery of a solution that delivers measurable business benefits

It is important for the customer to identify and communicate to the supplier how they will measure success, and where possible the customer / supplier agreement should reflect this.

In order to take full advantage of the benefits of outsourcing a suitable development methodology must be selected. The right methodology will reflect the nature of the project, including management of anticipated requirement changes, and the desired inter-party relationships. Additionally, clear processes and, where necessary, systems to support them should be put in place to track both procedural and technical issues throughout the project life time.

Relationship Static Requirements Evolving Requirements Phased Requirements
Partnership Classic / Rapid Rapid / Agile / DSDM Rapid / Agile / DSDM
Traditional Classic Multi-phased Classic Multi-phased Classic

Table 1: Development methodology selection overview

Table 1 shows a simplified overview of the types of development methodology that tend to suit specific combinations of customer / supplier relationship and status of project requirements. In reality neither the customer / supplier relationship nor the state of the project requirements will fit into such neat pigeon holes.

Once a development methodology has been agreed upon, appropriate resource must be allocated by both parties to manage the process. It is extremely important that both parties understand the development methodology and their responsibilities within it. Adequate resource is especially important in agile methodologies such as DSDM where customer testing, feedback and review meetings are essential to the process.

Potential Problems

We now look at some of the issues that can cause problems in outsourced software development projects. Potential problems break down into two categories. The first set of potential problems affect the running of the project itself, whilst the second affect the support and maintenance of the solution once delivered:

  • Project Management
    • Poor understanding of customer business objectives and software requirements by the supplier
    • Poor communication between supplier and customer during the development period
  • Solution Support and Maintenance
    • IPR Issues
      • Failure to agree ownership/licensing issues prior to delivery
    • Cost of updates to the solution
      • Lack of in-house solution knowledge
      • Supplier tying themselves in by not releasing sufficient information to enable 3rd parties to perform updates
      • Supplier bankruptcy
      • Lack of interest in providing updates from the supplier
    • Lack of support for the solution
      • Lack of in-house solution knowledge
      • Supplier tying themselves in by not releasing sufficient information to enable 3rd parties to provide support
      • Supplier bankruptcy
      • Lack of interest in providing support from the supplier

The majority of these potential issues may be addressed before the project begins, at the supplier selection and contract negotiation stages. Key issues to resolve include:

  • Project Management
    • Which software development methodology will be used during the project?
    • How will the success of the project be measured?
    • What channels of communication will be open to report progress and feed back issues during the project?
  • Solution Maintenance
    • What level of solution support and maintenance will be required post delivery?
    • What types and level of training will be provided by the supplier?
    • Who will provide post delivery support and maintenance services?
    • What documentation will be supplied with the solution?
    • Who will own the IPR contained within the solution?
    • If the supplier retains ownership or some or all of the IPR then what type of license will be granted to the customer.
    • What will happen to the source code and associated solution knowledge if the supplier goes out of business or ceases to provide support and maintenance services for the solution?

Discussing these issues early on in the customer / supplier relationship avoids potentially costly misunderstandings later on in the project. Additionally, it is in the customer’s best interest to make their expectations and intentions around these issues as clear as possible at the supplier selection stage in order to be able to properly evaluate potential suppliers. Without clear guidelines potential suppliers may be tempted to make assumptions that will make their offering seem more attractive.

Conclusion

To ensure the maximum benefit from an outsourced software development project the following key aspects of the project need to be addressed with potential suppliers at the supplier selection stage:

  • customer/supplier relationship
  • development methodology
  • system requirements
  • project management system
  • solution support and maintenance

Once a supplier has been selected the issue resolutions should be formalised in the customer / supplier agreement prior to project commencement.

Related Links