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.
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:
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.
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:
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.