Agile Offshoring – Working with People vs. Working with Company
The first approach is simpler – the second one is more complex but also more rewarding.
What is the difference?
Let me first explain how the approaches would work.
Working with People – Setting up an Agile Offshore Team
You have been using agile methodologies within your organization for some time and have realized the benefits. Though you had believed, for various reasons, that agile and offshoring cannot be mixed – you have noticed some evidence that indeed it can be made to work. The end result may not be as good as a co-located team but still better than traditional offshoring.
Now you have reached a stage where either you feel adventurous enough to try out agile offshoring or you are being forced by your management to give it a try.
Here is what you would typically do to give yourself the best shot at success.
- Select a vendor who understands agile and have good people and good communication infrastructure.
- Select 2-3 people who are great programmers and good at communication.
- Bring them onsite and make them part of your team and ensuring that they are treated at par.
- Let these people learn how you work and deliver stories for few sprints.
- Your seed team is now ready.
- Setup your offshore team and send your seed team back – you may retain one person onsite.
- Send couple of your key people offshore for some time to get to know all the offshore team members.
- Setup the communication infrastructure so that the communication between onsite and offshore is as seamless as possible.
- Setup a tooling infrastructure which ensures smooth tracking and continuous integration.
- Identify one person from the vendor organization who is not part of the agile team but would look after all the commercial transactions.
If you follow these 10 steps your chances of success would be fairly high.
Many skeptics who have tried similar approaches have reported success. Here are two examples:
- Agile and outsourcing, how to make it work by Veselin Pizurica
- Can you do Agile Software Development with an Offshore Developer? by Dennis Stevenson
What is wrong with this approach?
There is absolutely nothing wrong with this approach.
This approach will meet your need of setting up an offshore agile team and meet the objective of reducing your IT cost.
You will still retain almost complete control over how the process functions. You will also have to take care of the people. The offshore team will be an extension of your team and the vendor is required only to the extent that they provide the necessary infrastructure to let your team work and help you find replacement for any team member who decides to move on.
Indeed this approach would have been sufficient a decade back. Since then offshore vendors have matured a lot. The right vendor can help you:
Not only to quickly increase the size of your development team when the need arises…
…but also to scale back the team when the job is done.
Not only help you with their expertise on new and emerging technologies…
…but also help you with obscure legacy technology skills.
Not only would they do their best to keep you satisfied so that you can become a reference customer…
…but also take advantage of serendipity and allow cross-pollination of idea from other customers.
If you want to take advantage of any of these then you need to look beyond working with a team of people and decide to work with an organization.
Working with an Organization – Building a Partnership
Building a partnership is hard work and it never happens overnight.
It is much easier to build a relationship of trust between 2 individuals but much harder to build a relationship of trust between 2 organizations. It is even harder to maintain that relationship over an extended period of time.
However, there are other forces working in both organizations which have other motivations. In a real life situation there will be many interest groups each having its own agenda. However, the overriding agenda for the vendor would be to maximize profit from the engagement. Similarly, from the customer side would be to minimize cost.
The relationship starts when both parties have agreed on a middle ground. For the relationship to succeed, both parties need to feel reasonably satisfied that the deal has been fair – otherwise the deal is doomed.
Even if this is achieved, there will always be a tendency from the vendor to find ways to increase profit and an opposite tendency of the customer to reduce cost.
Long term successful relationship happens when both organizations are mature enough to recognize this challenge and work towards a win-win situation.
- Outsourcing 3.0: the agile way
- Top 10 Agile Outsourcing Tips
- Collaboration Over Contracts in Agile “Offshore” Outsourced Development