Case Studies On Bringing Agility to Offshore Software Development

[article]
Summary:

In order to stay competitive, IT companies integrate offshoring and outsourcing in their corporate strategies. When these strategies are implemented it is often found that offshoring is full of challenges and much more difficult than expected. This article suggests that the challenges of offshore software development can be met by using agile values, principles, and practices. First the article will present some of the challenges in offshore development, then it will investigate how agile principles and practices have helped offshore development in becoming more competitive by eliminating the challenges usually found in traditional offshore development. However due to the added distance it was found that agile development will run into new challenges. Some challenges, such as time zones, are hard to meet and will impede direct agile communication.

The material for this article was collected when doing research at the IT-University of Copenhagen in the year 2004/2005 and consists of 22 cases, scaling from five purely waterfall plan-driven cases (in no accordance with the four values from the agile manifesto) to seven agile cases (in accordance with the four values from the Agile Manifesto ). The size of the projects varied in size from $20 million to $40 million US. Fieldwork in Europe and Russia consisted of face-to-face interviews, while interviews with American, Chinese, and Indian contributors were done by phone. Interviews were taped and written down for further analysis.

Taking software development offshore amplifies traditional challenges and creates new challenges, such as cultural issues and communication problems due to time zones. Some of the biggest challenges include communication, transfer of business understanding, poorly {sidebar id=1} defined projects that demand a lot of co-operation, time zones, high attrition rates offshore, imprecise or unknown (by the customer) requirements, insufficient customer involvement, cultural differences, customer/vendor bottlenecks, lack of common expectations, organizational differences, high attrition rates, and geographical distances. These challenges have to be attended in order to be successful offshore. The following sections investigate how agile practice can help offshore development meeting these challenges.

Face-to-face Communication
In all 22 cases (plan-driven as well as agile), face-to-face communication was stressed as a means to improve communication in the project. In plan-driven projects, this type of communication often took place in the beginning of the project. In big projects it also took place during development and in a few cases it even took place at the end of the project. On the agile projects, it took place throughout the whole project. Face-to-face communication took place in many ways such as at meetings where onshore product managers travelled offshore or when offshore requirement managers travelled onshore. But the biggest impact would be when a person from the offshore team worked onshore in order to absorb knowledge which could be brought back to the offshore developers. He would work as an enabler for the offshore developers, making sure that questions were answered instantly and that decisions were made onshore in order for the offshore team to progress quicker. Having people from the onshore team with business knowledge work offshore was also an enormous help. Many experienced that their naive faith in asynchronous communication tools were replaced by face-to-face meetings.
Face-to-face communication helped projects overcoming many challenges. Sometimes it would be easier to communicate face-to-face simply due to the fact that telephone lines between shores' often would be noisy and have echoes. This, combined with heavy accents, could make telephone conversations practically impossible. For others, it would be easier to align cultural and organizational differences when meeting face-to-face, since conversations would be much richer and informative and in that way counteract any misunderstandings. Direct face-to-face communication would make discussions and transfer of knowledge much easier. The instant feedback also made it possible for the onshore team to make sure that the offshore team had understood the business requirements and knowledge was transferred properly.

Talk Often to the Customer
Many cases were greatly benefited in their communicative setup by putting a lot of emphasis on good communication. But by putting emphasis on this challenge using some of the agile practices, such as trying to be as close to the customer possible, communicate daily, and delivering early, having weekly planning games or Scrums, projects were helped in overcoming some of the communicational issues normally found in offshore development.

Having a close relationship to the customer in order to understand business requirements was considered important in nearly all

Pages

About the author

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!