optimizing your software process © 2012 accurev, inc. all rights reserved -1- optimizing your...
TRANSCRIPT
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
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.
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
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
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
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
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
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
Optimizing YourOptimizing YourSoftware ProcessSoftware Process
© 2012 AccuRev, Inc. All Rights Reserved -9- www.synerzip.com
Traditionally Devs Work in Isolation
Optimizing YourOptimizing YourSoftware ProcessSoftware Process
© 2012 AccuRev, Inc. All Rights Reserved -10- www.synerzip.com
Too Much Isolation Leads to Merge Hell
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
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
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
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
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
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!!
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
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
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
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
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
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
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
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
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
•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
•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
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
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
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
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
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
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
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
Optimizing YourOptimizing YourSoftware ProcessSoftware Process
© 2012 AccuRev, Inc. All Rights Reserved -36- www.synerzip.com
Our Clients
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!