Forrester Research on Optimizing Globally Distributed Software Development Using Subversion


Published on

Webinar featuring Jeffery Hammond, Senior Analyst at Forrester Research covering the Software Configuration Management (SCM) space. Mr. Hammond and members of Forrester Research's consulting team explain the reasons behind Subversion's rapid ascent to the leadership position in the SCM space, and discuss the findings of the TEI study.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • “ Principles of Configuration Management”, M. A. Daniels, 1985
  • Forrester Research on Optimizing Globally Distributed Software Development Using Subversion

    1. 2. What is Software Configuration Management? <ul><li>Configuration management tools track changes to development artifacts including but not limited to source code </li></ul><ul><li>What are supposed to build or produce? What are we building or producing? What did we produce? </li></ul><ul><li>Configuration management provides an effective, prudent, and logical function of project management that enforces a set of rules. </li></ul><ul><li>The goal of most developers is to set up the simplest system possible to achieve the desired result of control. </li></ul>
    2. 3. What development professionals look for in a SCM tool <ul><li>Platform support </li></ul><ul><li>Scalability </li></ul><ul><li>Ease of use </li></ul><ul><li>Ease of acquisition </li></ul><ul><li>Ease of administration </li></ul><ul><li>Integrations with IDEs and other ALM tools </li></ul><ul><li>Reporting and analytics </li></ul><ul><li>Price </li></ul><ul><li>Support for geographically distributed development teams </li></ul><ul><li>Vendor stability </li></ul>
    3. 4. Forrester Wave™: Standalone SCM Solutions, Q2 ’07
    4. 5. Subversion is gaining share with development shops Base: 211 European application development professionals, Q4 2008 Base: 479 Americas application development professionals, Q1 2009 “ What SCM tools are commonly used in you application development organization?”
    5. 6. Subversion is popular with devs, especially Agile ones Base: 1298 application development professionals Source: Forrester – Dr. Dobbs Developer Technographics Q3 09 “ What is the primary SCM system you typically use?” (Choose one)
    6. 7. Why do developers choose Subversion? <ul><li>Platform support </li></ul><ul><li>Scalability </li></ul><ul><li>Ease of use </li></ul><ul><li>Ease of acquisition </li></ul><ul><li>Ease of administration </li></ul><ul><li>Integrations with IDEs and other ALM tools </li></ul><ul><li>Reporting and analytics </li></ul><ul><li>Price </li></ul><ul><li>Support for geographically distributed development teams </li></ul><ul><li>Vendor stability </li></ul>Price Capability (quality + features) Substitution zone “ Cadillac” products “ Honda” products
    7. 8. Strategy 1: Remote access to a centralized repository <ul><li>Scales easily to support development sites of all sizes </li></ul><ul><li>Provides a single source of truth </li></ul><ul><li>Enables centralized administration </li></ul><ul><li>Requires that the SCM solution perform adequately over WAN </li></ul><ul><li>Can creates issues for commits, build, remote access </li></ul>This is the model most Subversion shops work with…
    8. 9. Strategy 2: Broker-mediated remote access to a centralized repository <ul><li>Improves performance in locations with poor network conditions </li></ul><ul><li>Hub-and-spoke model can provide “network-near” performance </li></ul><ul><li>Uses proxy and cache servers specific to the SCM solution </li></ul><ul><li>Can also use generic proxy and cache servers </li></ul>Svnsync is a read only implementation of this solution
    9. 10. Strategy 3: Repository replication <ul><li>Periodic synchronization of repositories </li></ul><ul><li>Requires reconciliation of contradictory changes </li></ul><ul><li>Involves a period of time in which data is out of date </li></ul><ul><li>Involves considerable hardware and administration expenditures </li></ul><ul><li>SCM license costs tend to be higher </li></ul>“ Mastership” creates admin issues and bottlenecks
    10. 11. Strategy 4: Peer-to-peer communication <ul><li>Read/write repositories broadcast updates </li></ul><ul><li>Each repository is a full copy of “the truth” </li></ul><ul><li>No mastership issues </li></ul><ul><li>No single point of failure </li></ul><ul><li>Gives distributed teams local read/write access for build/CI </li></ul><ul><li>Requires robust and timely replication capabilities </li></ul>WANdisco is an example of a peer to peer model
    11. 12. Agenda <ul><li>What Is Total Economic Impact TM (TEI)? </li></ul><ul><li>Approach </li></ul><ul><li>The interviewed company </li></ul><ul><li>Key findings </li></ul><ul><li>Other benefits </li></ul><ul><li>Conclusions </li></ul>
    12. 13. What is Total Economic Impact? <ul><li>Forrester’s TEI is the “Language of Value” </li></ul><ul><li>TEI ≠ TCO </li></ul><ul><ul><li>TEI provides a complete economic picture of tech purchase decisions </li></ul></ul><ul><li>The four fundamental elements of TEI: </li></ul><ul><ul><li>Benefits to the entire organization (not just IT) </li></ul></ul><ul><ul><li>Costs </li></ul></ul><ul><ul><li>Risk </li></ul></ul><ul><ul><li>Flexibility </li></ul></ul>
    13. 14. <ul><li>Review of existing relevant Forrester research </li></ul><ul><li>Interviews with WANdisco’s SMEs </li></ul><ul><li>In-depth interview with a Subversion MultiSite customer </li></ul><ul><li>Construction of a financial framework — the model — around the interviewed company </li></ul><ul><li>Construction of a case study — the narrative </li></ul>Forrester’s approach
    14. 15. Company interviewed for the study <ul><li>Global F500 manufacturer of electronic components </li></ul><ul><ul><li>Software development performed in 2 primary locations in the USA and Asia, with developers in 3 other locations in Europe, Asia and the USA. Support for over 400 software developers globally. </li></ul></ul><ul><ul><li>Used a single Subversion repository located in the USA prior to deploying MultiSite. All software builds executed in the USA </li></ul></ul><ul><li>Decided to adopt Subversion MultiSite because: </li></ul><ul><ul><li>Asian developers were waiting for up to 2 days for builds to complete. </li></ul></ul><ul><ul><li>Needed to provide redundancy for Subversion so there was no single point of failure. </li></ul></ul><ul><li>MultiSite customer since 2007 </li></ul><ul><li>Has MultiSite running in two locations (USA and Asia) </li></ul><ul><ul><li>Usage grown from 170 to 520 active users </li></ul></ul><ul><ul><li>Source code revisions grown from 500,000 to millions. </li></ul></ul>
    15. 16. Key findings - Benefits <ul><li>Increased Asian developer productivity due to decreased latency </li></ul><ul><ul><li>Wait times for software builds to complete reduced from 2 work-days to 1.5 hours </li></ul></ul><ul><ul><li>Builds can happen in parallel at every Subversion site </li></ul></ul><ul><ul><li>3 -year risk adjusted benefit of $194,161. </li></ul></ul><ul><li>Increases productivity due to improvement in bug fix rate </li></ul><ul><ul><li>MultiSite used to replicate bug tracking system. Bug fix rate improved by 30%. </li></ul></ul><ul><ul><li>Bug tracking can happen in parallel at every Subversion site </li></ul></ul><ul><ul><li>3 -year risk adjusted benefit of $556,060 </li></ul></ul><ul><li>According to the development manager … </li></ul><ul><li>“… 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 . . .” </li></ul>
    16. 17. Key findings – Benefits (cont.) <ul><li>Developer downtime avoided for Subversion system upgrades </li></ul><ul><ul><li>Developers can use alternate Subversion repository </li></ul></ul><ul><ul><li>3 -year risk adjusted benefit of $19,535 </li></ul></ul><ul><li>Reduced labor needed to perform security audits </li></ul><ul><ul><li>MultiSite allowed identification of dormant/orphan accounts, and to setup user access controls. Time to respond to security audits reduced from 5 to 2 days. </li></ul></ul><ul><ul><li>3 -year risk adjusted benefit of $6,749 </li></ul></ul><ul><li>Total 3 year risk adjusted benefit of $776,509 </li></ul>
    17. 18. Key Findings - Costs <ul><li>Software license fees and maintenance fees </li></ul><ul><ul><li>Reflects standard list pricing for the customer’s installation as of September 2009. </li></ul></ul><ul><ul><li>3 year risk adjusted cost of $259,908 </li></ul></ul><ul><li>Servers for running MultiSite </li></ul><ul><ul><li>Does note require dedicated servers, Assume 2 entry level servers. </li></ul></ul><ul><ul><li>3 year risk adjusted cost of $8,000 </li></ul></ul><ul><li>Implementation labor costs </li></ul><ul><ul><li>2 week evaluation. Cutover from test to production required 2 hours downtime for 390 developers. </li></ul></ul><ul><ul><li>3 year risk adjusted cost of $41,654 </li></ul></ul><ul><li>Ongoing support costs </li></ul><ul><ul><li>1 hour of server maintenance monthly (12 hours/year) </li></ul></ul><ul><ul><li>3 year risk adjusted cost of $1,530 </li></ul></ul><ul><li>Total 3 year risk adjusted cost of $311,092 </li></ul>
    18. 19. Key findings – Financial Summary, ROI and payback period <ul><li>Total 3 year risk adjusted benefits: $ $776,509 </li></ul><ul><li>Total 3 year risk adjusted costs: $311,092 </li></ul><ul><li>3 year ROI: </li></ul><ul><ul><li>Risk adjusted: 150% </li></ul></ul><ul><ul><li>Best case: 167% </li></ul></ul><ul><li>Payback period: </li></ul><ul><ul><li>Risk adjusted: 11 months </li></ul></ul><ul><ul><li>Best case: 9 months </li></ul></ul><ul><li>Higher ROIs can be achieved with more sites and developers. </li></ul>
    19. 20. Other Benefits <ul><li>Avoid developer downtime while maintaining Subversion servers. </li></ul><ul><li>Load-balance between the servers. </li></ul><ul><li>Clearly identify the owners and originators of intellectual property. </li></ul><ul><li>Identify active Subversion users and reduce the number of Subversion accounts. </li></ul><ul><li>Substantially increase the number of software flavors that the company supports and releases. </li></ul><ul><li>Reduce the labor effort required for security audits. </li></ul>
    20. 21. Conclusions <ul><li>Forrester found that organizations that use Subversion MultiSite can realize: </li></ul><ul><ul><li>Increased developer productivity because by providing developers with local access to source code repositories. </li></ul></ul><ul><ul><li>Increase the bug fix rate, assuming the bug tracking system is replicated using MultiSite. </li></ul></ul><ul><ul><li>Minimize or eliminate developer downtime during Subversion maintenance and upgrades. </li></ul></ul>
    21. 22. Thank you Michael Speyer +1 617.613.6349 [email_address]
    22. 24. <ul><li>Key Features </li></ul><ul><li>Architecture Overview </li></ul><ul><li>Distributed Agile Development </li></ul><ul><li>Subversion Clustering </li></ul><ul><li>Subversion High Availability </li></ul><ul><li>System Requirements </li></ul><ul><li>Summary </li></ul>Agenda
    23. 25. <ul><li>Peer-to-peer architecture with no single point of failure. </li></ul><ul><ul><li>Not master-slave or multi-master. </li></ul></ul><ul><li>Subversion repositories connected over a WAN synchronize automatically with each write operation. </li></ul><ul><li>Developers at all locations experience LAN speed performance for both read and write operations. </li></ul><ul><li>Built-in hot backup and automated recovery features eliminate downtime. </li></ul>Key Features
    24. 26. <ul><li>Replicator implemented as a transparent network proxy at each site. </li></ul><ul><ul><li>Client configurations don’t change. </li></ul></ul><ul><ul><li>Subversion’s functionality doesn’t change. </li></ul></ul><ul><li>LAN-speed performance over a WAN due to a combination of : </li></ul><ul><ul><li>Unique Active-Active replication capability </li></ul></ul><ul><ul><li>Network optimization features. </li></ul></ul>Architecture
    25. 27. <ul><li>Subversion MultiSite supports distributed </li></ul><ul><li>Agile by enabling: </li></ul><ul><li>Continuous communication. </li></ul><ul><ul><li>Latest changes are available everywhere at LAN-speed. </li></ul></ul><ul><ul><li>Merge conflicts are caught and fixed when they occur. </li></ul></ul><ul><li>Continuous build integration. </li></ul><ul><ul><li>Each site can perform builds and test locally with the latest code. </li></ul></ul>Distributed Agile Development
    26. 28. <ul><li>Central servers can’t support Agile in large distributed environments. </li></ul><ul><ul><li>Slow networks cause remote sites to checkout and commit infrequently. </li></ul></ul><ul><ul><li>Continuous build integration becomes impractical </li></ul></ul><ul><li>Proxy server solutions have the same network performance issues for commits and other writes. </li></ul><ul><ul><li>Remote sites can’t perform builds locally if write steps are involved. </li></ul></ul>Distributed Agile Development
    27. 29. <ul><li>Same replication technology as Subversion MultiSite. </li></ul><ul><li>Offload build process from development servers at large sites. </li></ul><ul><li>Latest changes from development servers are available on build servers. </li></ul><ul><li>Can be implemented in combination with Subversion MultiSite. </li></ul>Subversion Clustering
    28. 30. High Availability <ul><li>Ensures continuous hot backup of the primary server to one or more backup servers. </li></ul><ul><li>Leverages the same automated recovery features as Subversion MultiSite and Subversion Clustering. </li></ul><ul><li>Failover agent automatically redirects clients to backup server(s) in the event of a network outage or server failure. </li></ul>
    29. 31. <ul><li>Server Versions Supported </li></ul><ul><ul><li>Subversion server versions 1.3 and above are supported. </li></ul></ul><ul><li>Backend Support: </li></ul><ul><ul><li>FSFS and Berkeley DB are supported. </li></ul></ul><ul><li>Supported Clients </li></ul><ul><ul><li>Subversion command line, SmartSVN, RapidSVN, TortoiseSVN, Subclipse, and any HTTP client that works with Subversion. </li></ul></ul><ul><li>System Requirements </li></ul><ul><ul><li>WANdisco for Subversion will run in any J2SE 1.5 or above compliant Java runtime environment. A minimum of 64 MB of RAM and 450MHz CPU is recommended for the server </li></ul></ul>System Requirements
    30. 32. <ul><li>Unique technology allows distributed development teams to work as one at LAN-speed over a WAN, instead of working in silos. </li></ul><ul><li>Dramatically reduces development time and cost. </li></ul><ul><li>Peer-to-peer architecture with no single point of failure. </li></ul><ul><li>All servers can be monitored and administered from a single location. </li></ul><ul><li>Built-in continuous hot backup and self-healing capabilities eliminate risk. </li></ul><ul><li>Makes full 24X7 operation possible in a globally distributed environment. </li></ul><ul><li>Enables Agile development in a distributed environment. </li></ul><ul><li>Transparent implementation eliminates retraining. </li></ul>Summary
    31. 33. Customers