(Offshored-Distributed-Outsourced) Agile: What is the relation 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?
That 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 4 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?
- 4 Tests to determine if you are following Agile development
- Agile and Trust
- Is Off-shoring a Special Case of Agile Scaling?