Make Subversion Agile in aDistributed Development
Environment
Steve BerczukAgile Expert and Author
Jim CampigliVP Product Marketing
QUICKPOLL
What agile methodology are you using now?
○ Scrum
○ XP
○ Other
○ Not using agile
QUICKPOLL - RESULTS
What agile methodology are you using now?
○ Scrum
○ XP
○ Other
○ Not using agile
Make Subversion Agile in aDistributed Development
Environment
Steve BerczukAgile Expert and Author
© 2010 Steve Berczuk
AGENDA
• Agile Basics
• How SCM Enables Agile Teams
• Distributed Agile Challenges
• Review
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 6
Steve Berczuk
© 2010 Steve Berczuk
• www.berczuk.com/blog
• www.scmpatterns.com
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 7
Agile and SCM
• Communication
• Collaboration
• Feedback
• Agile and SCM establish a framework to
– Enable focus
– Eliminate distractions
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 8
Agile Manifesto
•Individuals and Interactions over Processes and Tools
•Working software over Comprehensive Documentation
•Customer Collaboration over Contract Negotiation
•Responding to Change over Following a Plan
Good SCM is essential for Agile Software Development
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 9
What is Agile?
© 2010 Steve Berczuk
• Incremental and Iterative– Feedback, Adapt
– Focus on delivering value
• Self-Organizing Teams– Commitment
• Communication
• Working Code– Tests
– Integration
– Private Workspaces
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 10
Agile is…
• Values:
– Communication
– Feedback
– Working Code
• Tools:
– Continuous Integration
– Version Management
– Automated Testing
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 11
Software Configuration Management
• SCM Functions
• SCM & Agile Teams
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 12
What is SCM?
• Functions:– Identification
– Control
– Status Accounting
– Audit and Review
• Activities:– Getting Code
– Building
– Branching and Merging
• Communication
• Working Software
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 13
Agile Development
© 2010 Steve Berczuk
Repository
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 14
SCM & Agile Teams
• Coordination
– Version Management
– Build Management
– Testing
• Essential Function with Low Overhead
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 15
Distributed Teams
• Challenges
– Communication
– Feedback
• Integration
• SCM tools and processes can help
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 16
SCM In Context
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 17
Distributed Agile Success Factors
• Project Management
– Shorter Sprints
• Engineering Practices
– Integrate Frequently
– Test
• Review and Retrospect
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 18
Tools
• Tools Help
• Process/Workflow First
• Qualities– Fast
– IDE Integration
– Issue Tracking Integration
– Build Integration
– Automation
• People are Human
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 19
Summary
• SCM Tools and Practices Enable Agility
• Distributed Teams -> Communication Challenges
• Version Management & CI are communication
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 20
More Info
• Software Configuration Management Patterns: Effective Teamwork, Practical Integration by Steve Berczuk & Brad Appleton
• Continuous Integration: Improving Software Quality and Reducing Risk by Paul Duvall and Andy Glover
• CM Crossroads: www.cmcrossroads.com
© 2010 Steve Berczuk
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 21
Thank you!
For more information:
Steve BerczukEngineer, Humedica
www.berczuk.com/blogwww.scmpatterns.com
© 2010 Steve Berczuk
QUICKPOLL
Is your development organization…?
○ Local to one site
○ Regional
○ National
○ International
QUICKPOLL - RESULTS
Is your development organization…?
○ Local to one site
○ Regional
○ National
○ International
Make Subversion Agile in aDistributed Development
Environment
Jim CampigliVP Product Marketing
AGENDA
• Central Server Architecture
• Proxy Server
• Subversion MultiSite
• Subversion Clustering
• Summary
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 26Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 26
Central Subversion Server
• Central servers can’t support agile in large distributed environments.
– Slow networks cause remote sites to checkout and commit infrequently.
– Continuous build integration becomes impractical
– Single point of failure architecture limits availability.
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 27Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 27
Proxy Server
• Proxy server solutions have the same network performance issues for commits and other writes.
– Remote sites can’t perform builds locally if write steps are involved.
– Master server is a single point of failure for commits and other writes.
– No guarantees of transactional consistency between master and slave servers.
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 28Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 28
Subversion Multisite
• Continuous communication.
– Latest changes are available everywhere at LAN-speed.
– Merge conflicts are caught and fixed when they occur.
• Continuous build integration.
– Each site can perform builds and test locally with the latest code.
Subversion MultiSite supports distributed agile by enabling:
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 29Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 29
Subversion MultiSite
• Peer-to-peer architecture with no single point of failure.
• Subversion repositories connected over aWAN synchronize automatically with eachwrite operation.
• Developers at all locations experience LAN speed performance for both read and write operations.
• Built-in hot backup and automated disaster recovery features make third party solutions completely unnecessary.
• Transparent implementation doesn’t change Subversion’s behavior, so there’s no retraining.
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 30Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 30
Subversion Clustering
• Allows Subversion servers to bedeployed in an active-active cluster.
• Same replication technology asSubversion MultiSite.
• Offload build process from development servers at large sites.
• Latest changes from development serversare available on build servers.
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 31Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 31
Subversion Clustering
• Shared nothing clustering
– No sharing of disk, memory or CPU.
• No single point of failure.
– Even load balancers can be made redundant.
• The cluster appears to end users as a single Subversion server.
• Intelligent load balancing for optimal performance.
• Failover is transparent and immediate.
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 32Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 32
Subversion Clustering
• Can be implemented in combination with Subversion MultiSite.
• Local clusters can be combined into aactive-active WAN cluster.
• Entire solution can be monitoredand administered fromone location.
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 33
Customers
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 34
Summary• Unique technology allows distributed teams to work as one at LAN-speed over a WAN, not in silos.
• Subversion MultiSite supports distributed agile development by enabling:
– Continuous communication
– Continuous build integration
– High availability with no downtime.
• All servers can be monitored and administered from a single location.
• Subversion Clustering combines intelligent load balancing with WANdisco’s unique technology to remove the performance bottleneck of a central server and eliminate downtime at a single location.
• Subversion Clustering can be implemented standalone or in combination with Subversion MultiSite to enable local clusters to be combined into an active-active WAN cluster.
• Both solutions make full 24X7 operation possible.
• Both solutions feature a transparent architecture that eliminates retraining.
Copyright © 2009 - 2010 WANdisco, Inc. All rights reserved. 35
Questions and Next Steps
• For more information on Subversion or to request a copy of slides used in today’s presentation, please contact:
– Email: [email protected]– Web: www.wandisco.com– Phone: 866 846 0404 (U.S.)– Phone: +44 (0)114 3039985 (Europe)
Join the Subversion Community today!http://subversion.wandisco.com/
Learn more about Subversion services and traininghttp://wandisco.com/svn/services