<<

Beyond Scrum: Scaling Agile with and Subversion

Andy Singleton Scott Rudenstein CEO and Founder Director of Technical Sales Assembla WANdisco

November 15, 2012 Assembla WANdisco Cloud-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 • Ticketing/task management Greatly reduce development cycles • World’s best SVN host Guarantee zero downtime (also and ) Guarantee zero data loss • Continuous Delivery: New Ensure 24x7 global operation initiative to build software at high speed and large scale www.wandisco.com/subversion/multisite • New features for multi‐team Featured Customers and continuous delivery Information and 30‐day free trials at https://www.assembla.com/ 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

releases twice per day, including code from 600 developers per week. We can this result commonplace Three Agile Use Cases

Your type tells you what to emphasize, what to ignore

Types: 1.Developers with 3/6/12 month release cycles 2.Multi‐project developers / service providers 3.Cloud application developers 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

Scrum, , Idealized Scrum Sprint

Copyright 2012 Perforce Software, Inc. ‐ Assembla, Inc.

Idealized Kanban Process

Copyright 2012 Perforce Software, Inc. ‐ Assembla, Inc.

Idealized ScrumBan Release

Copyright 2012 Perforce Software, Inc. ‐ Assembla, Inc.

Real release – Constant Contact Continuous Delivery Testing Iterative Releases

Contributor 1 Solo or Team Merge Release Candidate Release Test System

Contributor 2 Merge Solo or Team

QA Team How to Release Anytime: Review and Merge

Contributor Test System 1 1

CI System Production Release Anytime QA Team Revision

Test System Contributor 2 2 Build and Test Each Change

Copyright 2012 Perforce Software, Inc. ‐ Assembla, Inc.

Assembla results Continuous Delivery Dial

Business

Dev Ops

Self- Controlled Service

DEV TEST INTEG STAGIN UAT PROD G CONTINUOUS RELEASE TRAIN DELIVERY

Source: Serena Software 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 Branch Pattern

Reviewboard style ‐ patches Patch

Trunk and Release Patch

Review CI and QA

Gerrit style –temp branches Change branch

Trunk and Release Change Branch

CI & Review QA 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 • 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 Pick a task and create a branch

Create short‐lived branches Commit to branch and make a merge request It’s just a request Tests run on merge request

Build and test each change

Copyright 2012 Perforce Software, Inc. ‐ Assembla, Inc.

Reviewer tries change and trunk

It goes on a review list Reviewer tries change and trunk Merge to trunk and deploy

Instructions to merge and test Steps to Adopt Continuous Delivery

1. Scrumban, no iteration plan 2. Continuous Integration framework 3. Code review and tests 4. On demand test environments 5. Continuous Delivery dial 6. Changing role of QA 7. Full Continuous Delivery

Scalable Agile Process

Prioritize at Beginning No iteration plan Plan at end No resource constraints (Release when ready)

Pull Tasks

Pull merges Distributed Subversion Using Subversion for distributed teams Scott 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 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 , Maven, , etc are local to the development environment. Challenges to Distributed Teams

Heavy reliance on network 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 Partial Solutions Global Development Teams Using Master / Slave 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 Wide Area Network WANdisco Distributed Computing

Self Healing High Availability Active / Active Replication Managing Global Permissions

Having a process to mange the team members and permissions allows team leads to manage project access and personnel at the project level

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

Assembla WANdisco Cloud-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 • Ticketing/task management Greatly reduce development cycles • World’s best SVN host Guarantee zero downtime (also Git and Perforce) Guarantee zero data loss • Continuous Delivery: New Ensure 24x7 global operation initiative to build software at high speed and large scale www.wandisco.com/subversion/multisite • New features for multi‐team Featured Customers and continuous delivery Information and 30‐day free trials at https://www.assembla.com/ Questions? Contacts [email protected] [email protected] www.assembla.com www.wandisco.com