Welcome!

SOA & WOA Authors: Ali Hussain, David Tishgart, Kevin Benedict, Jerry Melnick, Elizabeth White

Related Topics: SOA & WOA, Java, XML, .NET, AJAX & REA, Web 2.0

SOA & WOA: Blog Feed Post

(Offshored-Distributed-Outsourced) Agile

What Is the Relationship Between Them?

  • Is off-shore agile a special case of distributed agile?
  • Can the term offshore agile and outsourced agile be used interchangeably?
  • If you have done distributed agile, then can you claim to understand off-shored agile and outsourced agile?
  • Similarly, if you have mastered off-shored agile you say with confidence that you understand distributed agile and outsourced agile?
  • Lastly, if you have done outsourced agile could you easily extend your learning to distributed agile and off-shore agile?

Agile 1.2That is a lot of questions!

And, I am sure you would have guessed that I think the answer to all these questions are NO.

Is off-shore agile a special case of distributed agile?

If you take the literary meaning of the words off-shore and distributed then it would appear that off-shore is indeed a special case of distributed. But, if go by the de facto understanding then off-shoring is definitely not a special case of distributed software development.

Off-shoring implies setting up a (software development) facility in a different country (India?) to take advantage of the cost arbitrage (practice of taking advantage of a price difference between two or more markets).

Distributed development implies spreading a complex piece of (software development) work across multiple location to take advantage of available expertise.

Off-shore Development = Driven by cost saving

Distributed Development = Driven by availability of expertise

Remember Malcolm Gladwell’s 10,000 hours rule which states that the key to success in any field is a matter of practicing for around 10,000 hours. That translates to about 5 years of regular full day work!

So, over a period of time off-shore facility gains expertise and cost arbitrage ceases to be the main reason for off-shoring. And then …

… in about 5 years time off-shore development becomes distributed development.

Is off-shoring same as outsourcing?

This is easy to answer!

Outsourcing implies giving the work to another party.

Off-shoring need not involve another party, it can be your own facility.

Similarly, outsourcing need not involve off-shoring. It can be done from:

  • Same location,
  • Same city,
  • Near shore facility … and off course
  • Off-shore facility

This is when you can visit the 6th principle behind the agile manifesto!

..the most efficient and effective method of conveying information to and within a development team is face-to-face conversation…

The four types of outsourcing primarily differs by how much time / cost is involved to setup a face-to-face meeting. In other words a trade-off is involved. On one side it is the 6th principle … and on the other side … you should be clear what it is.

That brings us to the 5th principle behind the agile manifesto.

…build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done…

This leads us to the key difference between in-sourced off-shoring and out-sourced off-shoring. When separate organizations are involved how do you build a trusting relationship? How long does take to build such a relationship?. How do you build a contract which both parties think as fare?

Therefore … what are the distinct characteristics of …

… Distributed Agile Development?

  • Splitting the problem and distributing the work
  • Coordinating and synchronizing iterations done across distributed locations
  • Ensuring smooth communication among the distributed locations

These challenges remain for off-shoring but there are others which go beyond.

… Off-shore Agile Development?

  • Setting up infrastructure
  • Knowledge transfer
  • Bridging the expertise gap

Both for in-sourced and outsourced off-shoring these challenges apply. But for outsourcing there are additional challenges.

… Outsourced Agile Development?

  • Preparing a win-win contract
  • Building trusting relationship

Points to Ponder

  • Does this discussion apply only to agile software development or is it applicable for any software development?
  • How do you know if your tailored process remains to be agile?

Related Article

Read the original blog entry...

More Stories By Udayan Banerjee

Udayan Banerjee is CTO at NIIT Technologies Ltd, an IT industry veteran with more than 30 years' experience. He blogs at http://setandbma.wordpress.com.
The blog focuses on emerging technologies like cloud computing, mobile computing, social media aka web 2.0 etc. It also contains stuff about agile methodology and trends in architecture. It is a world view seen through the lens of a software service provider based out of Bangalore and serving clients across the world. The focus is mostly on...

  • Keep the hype out and project a realistic picture
  • Uncover trends not very apparent
  • Draw conclusion from real life experience
  • Point out fallacy & discrepancy when I see them
  • Talk about trends which I find interesting
Google