Making Subversion Agile in a Distributed Environment

Distributed software development reduces labor costs and provides access to wider talent pools and global markets. Agile development delivers cost-savings by catching problems before unplanned rework and QA leads to missed deadlines, and being flexible enough to allow software to change as fast as user requirements. When Agile development is implemented successfully in a distributed environment, the greatest cost-savings and productivity improvements possible are achieved.

Challenges of Distributed Agile Development

Agile development's primary objective is frequent delivery of working code. It is iterative and incremental. It requires continuous build-test-deploy cycles and continuous communication. The biggest challenges in distributed environments lie in maintaining the same levels of communication and continuous build integration that's possible when everyone is in the same location.

Central server or proxy server solutions like svnsync can't address these requirements in large distributed development organizations because:

Subversion MultiSite Meets Distributed Agile's Requirements

With Subversion MultiSite, repositories are fully readable and writeable at every location and continuously in sync. The latest changes are always available everywhere and everything happens at local area network speed. Merge conflicts and other problems are caught and fixed when they occur. Each site can perform builds and test locally with the latest code, regardless of where it originates. Delays caused by broken builds and scheduling conflicts with a central build team go away.

"Subversion MultiSite has transformed our development process. We can now run builds at every site immediately which means that nobody is waiting for a build to happen in a different time zone. The bottom line is that we improved our build times by over 500% and reduced our development cycles by 40%. We looked at using svnsync, but we found that it wasn't as stable as it needed to be and wasn't a fit for what we were trying to accomplish with our build process."
- David Stokes, IT Manager, SSP

A recent Forrester Research Total Economic Impact study of a Global Fortune 500 company using Subversion MultiSite at locations in the US and Asia concluded that the ability to access the latest changes and perform builds in parallel at each site eliminated two man-days of developer idle time each day and increased the number of builds completed by 100%. This was found to be a significant factor in the 167% return on investment and 9 month payback period cited in the study. As a development manager quoted in the study said after implementing Subversion MultiSite:

"…builds were much more real time and people were able to more agilely track what changes are happening in the Subversion source tree, and it made the groups that were distant actually work better together when they didn't have to wait for things to happen..."

Combine Subversion MultiSite with Subversion Clustering For Optimal Build Performance

Subversion MultiSite can also be implemented in combination with Subversion Clustering, which relies on the same replication technology. Subversion Clustering allows builds at the largest sites to be offloaded from the Subversion server used by the developers, improving their productivity. At the same time, the latest changes from the development team are available on the other servers in the cluster where continuous builds are running.