optimizing your software process © 2012 accurev, inc. all rights reserved -1- optimizing your...

36
© 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process Optimizing Your Software Process AccuRev Proprietary and Confidential Information - Scaling Continuous Integration AccuRev, Inc. AccuRev, Inc. 10 Maguire Road 10 Maguire Road Lexington, MA Lexington, MA 02421 02421

Upload: maurice-cross

Post on 17-Jan-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -1-

Optimizing Your Software ProcessOptimizing Your Software Process

AccuRev Proprietary and Confidential Information - © 2012

Scaling Continuous Integration

AccuRev, Inc.AccuRev, Inc.

10 Maguire Road10 Maguire Road

Lexington, MA 02421Lexington, MA 02421

Page 2: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -2- www.synerzip.com

Introduction to Today’s Speakers

Chris Lucca, Technical Evangelist, AccuRev

About the Speaker: Chris is a methodology and process improvement expert helping companies to discover and implement their ideal process.

Chris' experience dates back to his days as a build / release specialist and software engineer for IBM-Rational. He has also filled the roles of developer, release engineer and SCM consultant for numerous organizations. In addition Chris is a certified scrum master and a frequent speaker at the AccuRev seminar series.

Now Chris brings the experience and knowledge he has acquired to help keep others in the industry up-to-date on the latest developments, and how they can impact them directly.

Page 3: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -3- www.synerzip.com

Software Projects: Yesterday vs. Today

Rapidly changing requirements• Slow to respond to customer/market demand

Shorter lifecycles, requiring faster time to market• Months for a new release versus years

Extremely difficult to accurately predict• Typically underestimate by a factor of 2

Quality challenge increasing• You might have low defects, but do you meet customer

expectations?

Highly distributed teams• All local versus support for on-shore and off-shore teams

Page 4: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -4- www.synerzip.com

Why Is Process Important?

• Process connects business, practices and tools

• Mature processes are predictable and repeatable

• Practices are more complex than ever with Agile, Scrum, CI, etc…

CI helps enable process and feedback

Program and Project

Management

Program and Project

Management

Technical

Practices

Technical

Practices S

uppo

rtin

g To

ols

Sup

port

ing

Tool

s

Page 5: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -5- www.synerzip.com

Agenda

Intro to CI

Overview of Parallel Development

Scaling CI and the Parallel Dev Challenge

Q&A

Page 6: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -6- www.synerzip.com

Agenda

Intro to CI

Overview of Parallel Development

Scaling CI and the Parallel Dev Challenge

Q&A

Page 7: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -7- www.synerzip.com

Current State of CI

It’s the industry standard• Everyone is doing it• Builds are running, but why?• Many are using CI, without knowing the value

Deploy / Automated tests are becoming part of the process• Teams are struggling to do it well

What’s important when scaling CI?• Feedback / Quality• Developer downtime• Automation

Page 8: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -8- www.synerzip.com

Jan Mar May JulFeb Apr Jun Aug Sep

Specify Design Code IntegrateWrite tests

DocPlan Test

Traditional Development

Page 9: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -9- www.synerzip.com

Traditionally Devs Work in Isolation

Page 10: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -10- www.synerzip.com

Too Much Isolation Leads to Merge Hell

Page 11: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -11- www.synerzip.com

CI: Minimizing Integration Pain

Committing early and often is less painful• But, If we commit frequently blindly, we have a

broken code base

Implied condition: each integration will not decrease the code quality• This is the key to CI • The rest is implementation details

Page 12: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -12- www.synerzip.com

CI: The Simple Implementation

How do we determine code quality? We test it

How do we test code? We build it and run tests against it

This is how we get from CI to CI servers and software builds

Page 13: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -13- www.synerzip.com

So Simple But Very Important

A build & unit test is a rudimentary check

Gives important feedback

The heartbeat of the dev organization

Page 14: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -14- www.synerzip.com

What’s CI All About?

Running builds all the time

Binaries on demand

A server that sits in the corner

Something only the release engineer cares about

The automation of the build so that developers don’t have to do it

Page 15: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -15- www.synerzip.com

That’s What CI Is All About

It’s not about running builds all the time

It’s a feedback loop, to improve quality

Image Source:Wikipedia

Page 16: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -16- www.synerzip.com

CI at Scale?

With too many committers into the same code line, the likelihood something is broken right now is high

We stop caring about failures

The feedback is meaningless, and productivity suffers. CI becomes “constantly broken”

Continuous noise!!

Page 17: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -17- www.synerzip.com

Agenda

Intro to CI

Overview of Parallel Development

Scaling CI and the Parallel Dev Challenge

Q&A

Page 18: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -18- www.synerzip.com

Reasons People Work In Parallel

It’s often a business reason…not for optimization

Maintenance Release – Patches

Customer Specials - Just for one customer

Development branches – Developer spikes for

experiments that will integrate at an unknown time

Code Configurations – Different configurations of code

based on environment, such as UAT, QA

Special Content – Images, binaries

Page 19: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -19- www.synerzip.com

Parallel Development Supports a Complex Process

Teams want to deliver faster and receive rapid feedback

Agile, Waterfall, or any mix

Coordination of workflow and process

Mainline branching• Release 1.x, 2.x, 3.x• Customer specific codebases• Beta releases• Hotfixes

Development• Staggered features and schedules• Patches

Page 20: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -20- www.synerzip.com

Agenda

Intro to CI

Overview of Parallel Development

Scaling CI and the Parallel Dev Challenge

Q&A

Page 21: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -21- www.synerzip.com

Isolation / Integration Balance

Balance between just enough isolation and integration

Page 22: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -22- www.synerzip.com

Integration Is Easy With a Few People

Chapter 1-2 Chapter 1-2 Chapter 2-3 Chapter 1-3 Chapter 1-4

Page 23: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -23- www.synerzip.com

It’s Hard at Scale

Chapter 1-2 Chapter 1-2 Chapter 2-3 Chapter 1-3 Chapter 1-4

Page 24: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -25- www.synerzip.com

Cost of Integration

Per week:

# of check-ins per developer?

# of developers?

% of check-ins that break things?

# of problems encountered per developer?

Length of time per problem encountered?

200 devs, 2 commits each, 1% are bad = 4 breaks/day

If each breakage cuts productivity 50% for 15 minutes, we lose 100 dev hours / day (@$50/hr = $5000/day)$5000 / Day = $100,000 per month

$1.2 Million Per Year

Page 25: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -26- www.synerzip.com

CI

CI

CI

Team ATeam A

Team BTeam B

wsws

wsws

wsws

Multi-Stage Continuous Integration

Minutes Hours

intint

Daily

wsws

wsws

wsws

Page 26: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

•Continuous Integration

•Continuous Integration

•Automated Tests

•Unit Tests

•Binary Deploy

•Database Deploy

•Web Deploy

•Database Deploy

•Web Deploy

•Binary Deploy

•Customer Sign-Off

•Database Deploy

•Web Deploy

•Binary Deploy

•IT Sign-Off

•Rollback (if needed)

x60x30x3x1

x1x4x10x100s

x1x2x5x10

0:102:003:005:00

www.synerzip.com

Page 27: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

•Team Specific CI

•Continuous Integration

•Automated Tests

•Unit Tests

•Binary Deploy

•Database Deploy

•Web Deploy

•Database Deploy

•Web Deploy

•Binary Deploy

•Customer Sign-Off

•Database Deploy

•Web Deploy

•Binary Deploy

•IT Sign-Off

•Rollback (if needed)

www.synerzip.com

Page 28: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -29- www.synerzip.com

CI for a New Code Line Must Be Cheap

Build and deployment configuration• Maximize reuse• Potentially create dynamically

Tests• Core regression suites shared across code lines• Tests for new functionality shared as code is

shared

Test environments• No excuse for a lack of test environments today• Deploy “what’s in production” as a baseline

Page 29: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -30- www.synerzip.com

In Closing

Compile is the first test

Unit test, deploy, automation can come after

Get feedback as fast as possible

Different teams need different types of builds

Separate code configurations based on

process

It’s about people, but tooling helps

Page 30: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -31- www.synerzip.com

SCM is More Than Just Version Control

• Profound effect on the day-to-day life of developers

• It’s the “hub” of the development team

• Takes care of the “crown jewels” of your development process

• It’s where innovation takes place

Page 31: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -32- www.synerzip.com

Best Practices For:Agile

Parallel

Global

Compliance

Change ManagementVisual Process Automation

What Is AccuRev?

Much more than Version Control…AccuRev enables Software Process Automation

VersionControlSCM

Page 32: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -33- www.synerzip.com

Q & A Time…

Call: 1-800-383-8170 or+1-781-861-8700

Email: [email protected]: www.accurev.com

Learn: blog.accurev.comwww.accurev.com/scm-white-papers.htm

Page 33: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -34- www.synerzip.com3434

34

Questions?

www.synerzip.com

Hemant Elhence [email protected]

469.322.0349

Page 34: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -35- www.synerzip.com

Synerzip in a Nut-shell

1. Software product development partner for small/mid-sized technology companies

Exclusive focus on small/mid-sized technology companies, typically venture-backed companies in growth phase

By definition, all Synerzip work is the IP of its respective clients Deep experience in full SDLC – design, dev, QA/testing, deployment

2. Dedicated team of high caliber software professionals for each client

Seamlessly extends client’s local team, offering full transparency Stable teams with very low turn-over NOT just “staff augmentation”, but provide full mgmt support

3. Actually reduces risk of development/delivery Experienced team - uses appropriate level of engineering discipline Practices Agile development – responsive, yet disciplined

4. Reduces cost – dual-shore team, 50% cost advantage

5. Offers long term flexibility – allows (facilitates) taking offshore team captive – aka “BOT” option

Page 35: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -36- www.synerzip.com

Our Clients

Page 36: Optimizing Your Software Process © 2012 AccuRev, Inc. All Rights Reserved -1- Optimizing Your Software Process AccuRev Proprietary and Confidential Information

Optimizing YourOptimizing YourSoftware ProcessSoftware Process

© 2012 AccuRev, Inc. All Rights Reserved -37- www.synerzip.com3737

37

Call Us for a Free Consultation!

www.synerzip.com

Hemant Elhence [email protected]

469.322.0349

Thanks!