Working with an Agile Project Methodology in an Offshore Development Environment
April 22, 2007, 6:14 pm

As an Australian Software Engineer with little previous knowledge of the working culture in the Asian technology business, in the early days it was somewhat of a challenge organizing teams of Chinese software developers to deliver products to Western clients in Australia, the UK, Europe and the US. The working culture, dynamic and expectations are radically different, and in order to bridge the gap between what is being done on the ground in Beijing and what SinoCode's clients expect requires strong process and sound, consistent methodology.

Selecting an appropriate methodology for team collaboration and customer communication has been one challenge, and has involved an iterative process of trial and error and project reflection, eg what is working and what isn't?

In my 'previous life' as a software developer in Australia, I found myself often adopting processes which supported the extreme programming approach and the agile development methodology. This was mainly brought about by evolving requirements in response to changing business direction of clients, something that occurs more often then not, particularly when working for smaller private software development companies that need to be able to adapt to changing market conditions quickly.

It has also been clear that it is easier to please business decisions makers through the use of the agile software development methodology because it empowers the customer (business decision makers) to understand the workings of the project more easily. For example, rapid prototyping allows the client to picture how the product will look and sets the expectation as to what is going to be delivered. Sometimes even if a customer has asked for something, they may not fully understand what is going to be delivered until they see it. Also, the progress of the project can be quantified through the delivery of working components of the system.

Given the benefits for the customer in using the agile methodology, this has been something that I've been keen to implement. However, the implementation of this methodology in the 'right shoring' environment has led to some interesting problems. The main issue is that the agile method relies on geographic closeness to allow team members to collaborate, preferably on a face to face basis. This is not physically possible when the people writing the specification are seated at a desk in an office remote to the end user's. In order to address these issues there are a few simple things that we have identified that allow us to minimize communication issues, particularly when working in different time zones.

These simple focus points have allowed us to realize benefits of the agile development methodology in a distributed environment. In the table below I have summarized some principles of the agile development process and the benefits realized in our China ODC (principles have been taken from http://en.wikipedia.org/wiki/Agile_software_development).

The Agile software development methodology is not a hard and fast solution for operating a development team in a Chinese ODC, there are of course a lot of other factors to take into consideration. It does however offer some benefits that can be realized once a few minor adjustments are made to fit this type of environment.

Comments