A lot of heated debate is going on topics such as "Can we develop software using an offshore model with agile methodologies?" This article is my humble attempt to give more insight on this question using a story to describe a real scenario with some assumptions and with not so real people.
John is just out of the board meeting where the agenda was to discuss cutting down development costs so that funds can be better utilised on advertising and marketing. The words "we won't be able to go for second round of fund-raising if we don't get a prototype developed in 3 months from now", from CFO's presentation, are still hammering in his head. John is the COO of an innovative product company, which is going to be the next Facebook. The technology they are planning to use for this product is cutting-edge and it is not easy to find developers or programmers charging nominal rates who develop software products using this latest technology platform. The product prototype has been 40-50% completed by 2 developers, working full-time for 5 months.
John has worked as a software programmer himself years ago and had experienced offshore development when he was working for an investment bank in late 90s. At that time, the bank had outsourced huge chunk of software requirements to a company in India to save software development costs. But this time the situation is different; the product prototype needs to be developed in shortest time possible, and John's company is nowhere near the size of an investment bank. Recently, John read about Agile software development and how it works in short iterations to deliver working software fast. He decides to outsource product prototype development, for 3 months, to some company in India that practices Agile and to keep this engagement for longer term if the offshore company delivers the working prototype in the given time.
Now, the next to biggest challenge is to find an offshore agile software development company in India, which has expertise in cutting-edge technology and charges nominal outsourced hourly rates. John prepares a list of criteria on the basis of which he feels he will be able to select an offshore partner. The list is merely a copy paste from some book he read on "iterative software development" a few days ago. The few points he considers the off-shore development partner should have are:
- experience of doing one or more software projects using Agile
- should have worked on cutting-edge technology
- should deliver working software every 2 weeks
- should be approachable and cost effective
John prepares evaluation criteria and starts looking for a software development firm through various websites such as Elance.com, Guru.com, LinkedIn, and through his professional and personal contacts. The evaluation criteria have items such as price, technical competence, cultural fit, timely delivery, reliable process, and ease of communication. As someone has well said, "A man is known by the company he keeps" so clientele too was an important part of the evaluation criteria.
John shortlists few companies fulfilling the evaluation criteria, having experience in iterative software development, and having quality process certification. After rigorous search, spanning across from introductory rounds on Skype to third party verification checks, which went on for around 7-8 days, John zeroes on an offshore partner in India.
After formal discussions and necessary verifications, John, along with CTO Sean, signs a commercial contract with Pankaj, COO of the offshore development company. John further arranges a conference call on Skype at 08:00 pm CST with Pankaj for formal team introductions and to discuss product requirements and other technical