Achieving Agility in Globally Distributed Software Development


In today's business climate there exists an ever-increasing demand to achieve more from less. More return from less investment, faster time to market from shrinking resources, higher quality from collapsing timelines. The impact of these pressures on the software development industry has meant that organizations have had to look for new avenues such as offshore development to reduce costs yet still satisfy these increasing demands. Simply incorporating an offshore development strategy to realize lower costs is not a solution. Leveraging the lower cost and resource scalability that an offshore development strategy provides must also include the facilities to enable that capability to produce better results faster.

Agile Offshore
At first glance the terms agile and offshore seem to contradict each other; how can these two terms coexist? The term Agile has become synonymous with collaborative development where the business is meant to remain very close to the development effort, and where communication is meant to be fluid and personal. This is in stark contrast to the traditional picture of offshore development if for no other reason than geography thwarts the applicability of many practices that most agile methods are based on. This would be true if agile {sidebar id=1} development was only about published practices such as pair programming. Instead agile development is about the principles that these practices are meant to embody. Performing a practice is useless if it does not result in the desired behavior. Instilling the principles of agile development is the key.

The Agile Landscape
At Valtech, we have found that picking an agile development methodology and applying it does not result in better software faster; in fact branding development as XP or Scrum, although perhaps lending focus to sets of practices, is not that important. Instead, what is more important is recognizing the principles. We have found the following underlying principles are what drive distributed agile development.

Communication can not happen too much or too early. There is a tendency in offshore development to bring the offshore teams into the picture when it is time to implement. The big picture is never acquired by the team. Most likely this happens because it is easier to communicate less than communicate more, and then only when it is absolutely necessary. Offshore development requires a commitment to constantly focus on increasing communication from all stakeholders.

Geographical issues must be addressed to enable collaboration. Rarely will a strong product result from the delivery of design artifacts from an onsite to offshore team for implementation. It is essential for the offshore team to be involved in as many analysis and design discussions and decisions as possible.

Even with a heightened effort placed on communication, visibility may still not exist. This is because the first focus of communication is to communicate to the project team. Visibility focuses on communication being a two-way street and is achieved by taking part in the discussions in which the team hashes out issues and relays progress information amongst themselves. Visibility is about seeing the speed bumps as well as small victories the team has made.

Monitoring Progress
Facilities must exist to radiate the pulse of the development effort and identify trends. One of the traditional issues in offshore development is fear of the unknown. Fear that those requirements that were delivered 6 months ago have actually seen progress. The current state of development needs to be made visible to all interested. Publishing a project burn down and velocity trend helps to provide a picture of past, current and future state.

Without feedback there can not be adaptation. By placing working code early and often in front of users, feedback becomes possible.

Seeing and Eliminating Waste
Recognizing what does not lend value to the development effort and removing it promotes a focus on productivity. This is somewhat interesting in distributed agile development. There typically will be more documentation and ceremony required. This is needed to help bridge the distance. What may well be considered waste in a small co-located agile team could be essential to a distributed team. Recognizing this fact and accepting this but also constantly re-evaluating potential waste is the goal.

Value-stream Mapping
If an interested party cannot be identified then the activity should not be


AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.