Friday, January 18, 2008

How to Implement Agile Offshore Development


Development of software is always a team effort and is best accomplished with the teams working close to each other. The discussions that take place amongst the teams in real time, moves the project forward to its implementation. However, the practice of relying on Agile offshore development has brought about a powerful marriage between the repeated rapid processes, and multiple offshore engineering teams, the combination of which is marked with improvement of market response, its trends, and customer requirements. In here, there are suggestions as to how you can manage this collaborative process across the length and breadth of 8,000 miles that separates the Scrum teams of the multiple shores.

Agile methodologies such as XP, Scrum and DSDM have been adapted by the extended teams of successful global organizations, thus improving their customer needs and time to market. In the process, the organizations gain faster experience of transfer, training, transition planning, goal setting, governance, including the method of reviews which are necessary to achieve results.

Agile methodologies are a new process adapted in today’s software development processes and practices, which introduce the changes in requirements by delivering the software in small releases. This has kept high the customers’ confidence, who can now relate their business requirement changes much faster. Agile methodologies have introduced a new set of software development processes and practices, which provide requirements change through delivery of the software in multiple modular releases.

In an offshore development process it is not necessary for the offshore and onshore developers to be in constant touch and communicate regarding the progress of the development of the project, and its specific feature or function. To give you an example, it is a waste of time for the onshore and offshore developers to check the same codes in the same section of the code repository, and eventually affect the work by checking each other’s code.

The important thing in any team work is the interpersonal relationships within that team. With the Scrum teams distributed throughout the US, and the offshore locations, there are few interpersonal working understandings between the teams with few or none live contacts between them. This can invariably affect the software development progress in the quality of its production, and there could be questionable deliverables. To solve this situation, basic team building exercises need to be taken up. In doing this, the offshore Scrum team could be sent to the US for few weeks, where they can observe the dynamics and other typical working characteristics of the US teams situated at different places, and this could help in building the much wanted working relationship between the Scrum teams.