Author: Richard Hoad

Ten Thoughts on Contracting Out Agile Software Development

In my company, we operate IT projects under Prince 2 . For some types of software delivery we find agile methods are appreciated our customers. In these cases we use the two approaches in a complimentary way – software products of the Prince 2 project are delivered using an agile method. We find the sweet spot for Agile methods is in-house development where requirements are uncertain, there are changing needs and the development team size is 2 to 6 relatively experienced people.

The 2013 State of Agile Survey results give an industry wide view of the perceived benefits of agile methods, while Rico’s paper on the business value of agile project management , gives an overview of quantitative studies of the benefits. In terms of agile methods my company typically uses Extreme Programming and Scrum .

The advantages of agile methods that we appreciate are:

  • An agile development can effectively accommodate strict time constraints (by number of iterations) and budget constraints (the cost of the team for the number iterations) managing scope (which features from the backlog are scheduled) and maintaining required quality.
  • The discipline of delivering user valued functionality in time bound iterations manages many risks. In a project where the customer has tested and accepted deliveries every two weeks it is difficult to find a sign-off block towards the end. Any deviation from planned velocity is visible from the first iterations.
  • Detailed requirements analysis is done just in time so less time wasted in detailing requirements or features never built.
  • Early iterative delivery sometimes allows return on investment earlier.

We are moving towards contracting out a proportion of software development work. Traditional models for contracting out include time and materials and fixed price delivery. Most of us appreciate the risks of these extremes of the spectrum. In the first the supplier’s economic objectives are clearly not aligned with those of the customer. The second extreme favors inversion of the Agile manifesto ; focusing on artifacts, process and contractual negotiation rather than collaboration, embracing change and working software.

The question many ask is, can we retain the benefits of agile methods when contracting out software development? Others have studied this question including Abogast, Larman and Vodde . The following analysis derives from our use of agile methods in-house and in two tenders for software development recently conducted through the UN Global Marketplace .

The first lesson we learnt in contracting out agile software development (or anything else for that matter), is to align objectives of the supplier and the customer. It is highly des