Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion

1,385 views
1,278 views

Published on

How to go beyond traditional Scrum principles and scale to globally distributed teams with Continuous Delivery and Subversion. Presented by Andy Singleton of Assembla and Scott Rudenstein of WANdisco. Presented Nov. 15, 2012. 30 minutes.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,385
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Single point of failurePoor performanceRemote commits take too much timeRemote teams need access permissions
  • Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion

    1. 1. Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionAndy Singleton Scott Rudenstein CEO and Founder Director of Technical Sales Assembla WANdisco November 15, 2012
    2. 2. Assembla WANdiscoCloud-based tools for distributed Test Subversion MultiSite Free Agile Development Teams for 15 days in your Environment• Over 500,000 users in 100 Register for a free MultiSite evaluation to learn how we can help you: countries Greatly reduce development cycles• Ticketing/task management• World’s best SVN host Guarantee zero downtime (also Git and Perforce) Guarantee zero data loss• Continuous Delivery: New initiative to build software at Ensure 24x7 global operation high speed and large scale www.wandisco.com/subversion/multisite• New features for multi-team and continuous delivery Featured CustomersInformation and 30-day free trials at https://www.assembla.com/
    3. 3. Next Generation Agile – Andy Singleton• Build software faster, at bigger scale• Not Scrum. Five out of six corporate agile projects are using scrum• Appropriate for Web, SaaS, enterprise cloud, big data• Bring in teams and servers from around the world• Do it with simple on-demand services• Facebook releases twice per day, including code from 600 developers per week. We can make this result commonplace
    4. 4. Three Agile Use CasesYour type tells you what to emphasize, what to ignoreTypes:1. Developers with 3/6/12 month release cycles2. Multi-project developers / service providers3. Cloud application developers
    5. 5. Cloud Apps Requirements• Ten of twelve agile projects we interviewed use Scrum.• Cloud app development typically has 1. Distributed teams 2. Multiple teams Inconsistent with scrum 3. Frequent releases• Some very large projects have scaled up successfully: – Facebook – Releases twice per day, pushing code from 600 developers per week – Google Android – manages code, not people, with thousands of commercial contributors sending code for review
    6. 6. Scrum, Kanban, Scrumban
    7. 7. Idealized Scrum Sprint Copyright 2012 Perforce Software, Inc. - Assembla, Inc.
    8. 8. Idealized Kanban Process Copyright 2012 Perforce Software, Inc. - Assembla, Inc.
    9. 9. Idealized ScrumBan Release Copyright 2012 Perforce Software, Inc. - Assembla, Inc.
    10. 10. Real release – Constant Contact
    11. 11. Continuous Delivery
    12. 12. Testing Iterative Releases Contributor 1 Solo or Team Merge Release Candidate Release Test System Contributor 2 Merge Solo or Team QA Team
    13. 13. How to Release Anytime: Review andMerge Test System Contributor 1 1 CI System Production Release Revision Anytime QA Team Contributor 2 Test System 2
    14. 14. Build and Test Each Change Copyright 2012 Perforce Software, Inc. - Assembla, Inc.
    15. 15. Assembla results
    16. 16. Continuous Delivery Dial Business Dev Ops Self- Controlled Service DEV TEST INTEG STAGING UAT PROD CONTINUOUS RELEASE TRAIN DELIVERY Source: Serena Software
    17. 17. Continuous Delivery Branch Pattern “Normal” SVN Bug Fix Direct Commit Release branch Trunk Dev branch QA Continuous Dev branch Trunk and Release Dev branch Direct or Personal Branch CI and QA
    18. 18. Continuous Integration Branch Pattern Reviewboard style - patches Patch Trunk and Release Patch Review CI and QAGerrit style – temp branches Change branch Trunk and Release Change Branch CI & Review QA
    19. 19. Subversion for Continuous Delivery• Requires merges or patches to maintain the separated build and test environments.• We are going to increase the probability of success by adding structure to the process: – Short-lived branches. Make them easily from the Web – Automatically run CI on short lived branches and on merge requests (preflight) – Provide precise instructions to merge to origin – Use SVN 1.8 Symmetric Merge to make it easier to update branches
    20. 20. • Pick a task and create a branch• Commit to branch and make a merge request• Tests run on merge request• Reviewer tries change + trunk• Merge to trunk and deploy
    21. 21. Pick a task and create a branch Create short-lived branches
    22. 22. Commit to branch and make a mergerequest It’s just a code review request
    23. 23. Tests run on merge request Build and test each change Copyright 2012 Perforce Software, Inc. - Assembla, Inc.
    24. 24. Reviewer tries change and trunk It goes on a review list
    25. 25. Reviewer tries change and trunk
    26. 26. Merge to trunk and deploy Instructions to merge and test
    27. 27. Steps to Adopt Continuous Delivery1. Scrumban, no iteration plan2. Continuous Integration framework3. Code review and tests4. On demand test environments5. Continuous Delivery dial6. Changing role of QA7. Full Continuous Delivery
    28. 28. Scalable Agile Process Prioritize at Beginning No iteration plan Plan at end No resource constraints (Release when ready) Pull Tasks Pull merges
    29. 29. Distributed Subversion
    30. 30. Using Subversion for distributed teamsScott Rudenstein• Discuss Subversion and the challenges associated with on premise centralized repositories for distributed teams.• Challenges of CI/CD for enterprises and for those companies who routinely have project teams working at geographically distributed sites.• Overview of Multisite technology.• Benefits of distributed Subversion when applied to distribute Continuous Integration / Continuous Delivery• WANdisco conclusion
    31. 31. On Premise CI/CD Developer works on task Developer commits to Subversion Trigger performs build Automated Acceptance Test User Acceptance test Release Tools such as Jira, Maven, Jenkins, etc are local to the development environment.
    32. 32. Challenges to Distributed Teams Heavy reliance on network
    33. 33. Challenges to Distributed Teams• Heavy reliance on corporate network being up at all sites.• Single point of failure• Latency or network drops are impediments• Depending on what has changed and the size of the changeset, it may take hours to commit to Subversion before builds can occur
    34. 34. Partial Solutions
    35. 35. Global Development TeamsUsing Master / Slave
    36. 36. Better but?• Still has heavy reliance on corporate network being up at all sites.• Single point of failure• Depending on what has changed and the size of the changeset, it may take hours to commit to Subversion before builds can occur – now with a round trip it can take twice as long.• Developers need to wait for changes to sync for updating their workspace
    37. 37. Wide Area NetworkWANdiscoDistributed ComputingSelf HealingHigh AvailabilityActive / Active Replication
    38. 38. Managing Global PermissionsHaving a process tomange the teammembers andpermissions allowsteam leads to manageproject access andpersonnel at theproject level
    39. 39. Benefits• Better quality at lower cost: enables practices such as continuous integration at distributed sites• Improved collaboration: distributed teams all the assets for development, testing and code reviews• Higher quality product with lower cost: defects discovered and fixed during each coding phase• Faster release cycles: build to test, test to release at a higher rate using continuous delivery• Increased developer and team productivity: less wait time for updates and commits at remote sites
    40. 40. Summary The advantage of the local build server is that each site will have instant access to the latest build for testing purposes as opposed to building at one site which requires first collecting all the distributed assets and then delivering the completed binary to remote sites where team members can access them. Local builds from local replicated repositories enable collaboration in other ways such as the ability to turns around bug fixes and code reviews much quicker since the technical resources required to complete these activities will always be readily available. Enterprise companies who want to adopt agile practices can use Multisite to resolve the technical problems related to sharing digital assets between agile members and teams even across high latency networks while solutions such as Agile best practices to solve the issue of team interaction across distances and time zones.
    41. 41. Assembla WANdiscoCloud-based tools for distributed Test Subversion MultiSite Free Agile Development Teams for 15 days in your Environment• Over 500,000 users in 100 Register for a free MultiSite evaluation to learn how we can help you: countries Greatly reduce development cycles• Ticketing/task management• World’s best SVN host Guarantee zero downtime (also Git and Perforce) Guarantee zero data loss• Continuous Delivery: New initiative to build software at Ensure 24x7 global operation high speed and large scale www.wandisco.com/subversion/multisite• New features for multi-team and continuous delivery Featured CustomersInformation and 30-day free trials at https://www.assembla.com/
    42. 42. Questions?
    43. 43. Contactsandy@assembla.com scott.rudenstein@wandisco.com www.assembla.com www.wandisco.com

    ×