Can Agile Work If Some Of My Development is Outsourced?

I’m asked this question by folks quite often, and the short answer is yes.  There are a few key things to consider though, before challenging your agile efforts with an outsourced component.

First, is your organization already competent at agile software development and agile project management?  If not, outsourcing a component of your efforts will only make this more challenging. Why? because agile approaches require a high degree of open communication, collaboration and trust between the business, customers and development.  If you don’t have at least some semblance of this, inviting an outsourced component to the party will lessen the experience for everyone involved, and more times than not, the savings that were hoped for are not realized.

What if you’re just starting out with agile and you currently have outsourced components? Will this be more challenging than if you had all the development in-house?  I think the answer to that is pretty common sense;  Yes it is more challenging, but still doable. Anything that complicates open communication, collaboration and the establishment and maintenance of trust challenges agile organizations.

So assuming that we must work with an outsourced component of our product development, what can we do to help ensure success? There are two areas to focus on: vendor evaluation, and agile contracts.

Vendor Evaluation
 

Traditional vendor evaluation has us focusing on vendor process certifications, size, and rates.  Agile vendor evaluation and ranking should focus on criteria such as:
  • Productivity
  • System quality
  • Flexibility
  • Collaboration level

While these qualities of a vendor are not easy to measure, they are relevant in selecting a vendor for an agile development partnership, which is what an outsourcing relationship should be in an agile environment.

Tom DeMarco and Tim Lister pointed out in the 1980s [1] that productivity ranges by a factor of 20 between individuals in software development . If you exchange a vendor with another that has only a third of the productivity, it is a bad deal, even if their rates are 40% lower, and they are much nicer in negotiating these rates.


Agile Contracts

Remember that agile development is about building mutual trust between the business experts and the software people. If you contract development to another company, this maps to mutual trust between your organization and the vendor. 

So you have to ask yourself, are you capable of developing contracts with your outsourcing vendors that make them partners and not adversaries? Traditional outsourcing contracts are written by lawyers to help ensure that their client will receive maximum damages in the event of a lawsuit. They have little to do with helping to ensure the delivery of value. 

Traditional outsourcing contracts, from my experience, usually encourage inflexibility and prohibit change, both of which are toxic to agile.  Ironically, because of this, they usually help ensure that some form of legal action or at least posturing takes place…all of which erodes trust and open communication.  Interesting that the only parties that always benefit when this happens are lawyers 😉

Things to consider when developing an agile contract:

  • Contract for a process that leads to a result instead of for a specific result. Targeting a specific result doesn’t allow for change / improvement. You have to have been right up front (rarely the case).
  • Close customer collaboration is more important than contract negotiation, so the project can fulfill your business objectives instead of your lawyer’s.
  • Agile contracts should maximize the efficiency of software development and thus minimize the risk of a lawsuit occurring.
  • Identify what to contract first. This should be done by those who understand agile processes and the value the customer is truly looking to have delivered. Once this is understood, then consult your lawyer to put it into legal-speak.

Ok, so once you have selected a vendor and have put in place a contract that is conducive to an Agile relationships, then what.  Well here are a few best practices that I have found can assist in making outsourced development work better:

  • Minimize dependencies
  • Train everyone on common team practices & tools
  • Integrate work on regular basis
  • Consider integration teams
  • Deliver value through vertical slices of architecture
  • Include outsourced partner on customer feedback and continuous improvement

In the world of software development, outsourcing is still a common occurrence and it does add additional challenges to agile development efforts.  However, if you apply more agile-relevant criteria in the selection of your partner and contract with them in a manner that focuses on delivering value, following a process and not impeding collaboration, you can certainly minimize the risks.

1. DeMarco, Tom, and Tim Lister. Peopleware: Productive Projects and Teams. Dorset House, 1987.

Advertisements

About Mike DePaoli

Mike DePaoli has been contributing to the IT community for over two decades and practicing agile and lean approaches to software development since 1996 in roles from programmer to CTO. His evolved approach to crafting successful lean-agile software development organizations was forged by the meaningful challenges he undertook at prior employers and as an Agile Coach at companies such as eBay, Adobe Systems, AOL, NetApp, Disney, Boeing, EMC, and Trizetto. Mike’s area of expertise is helping organizations craft strategic change initiatives that educate on and establish agile and lean values, principles and practices at every tier of the organization. Mike applies systematic thinking with a multi-discipline approach to his work. Mike is a Certified SAFe Agilist, Certified Scrum Professional, Certified Scrum Master (CSM) and Certified Scrum Product Owner (CSPO). He is a highly-regarded speaker in the Agile community having spoken at Agile conferences in North America, South America and Europe. He is currently based in the San Francisco Bay Area.

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Lean-Agile Leadership - Exploring the Creation of Fertile Environments and Culture for Lean-Agile Software Development

agiledad

Lean-Agile Leadership - Exploring the Creation of Fertile Environments and Culture for Lean-Agile Software Development

The Agile Horizon

Lean-Agile Leadership - Exploring the Creation of Fertile Environments and Culture for Lean-Agile Software Development

%d bloggers like this: