Continuous Delivery
Maturity Model
UrbanCode Inc. ©2013
Who is that guy?
 Techie at UrbanCode
- (now IBM)
 Working on CI & CD
tools for the last 10
years.
UrbanCode Inc. ©2013
IMVU’s Extreme CD: 1 App to Prod, 50 times / day
Build
Run thousands of tests
Deploy to some servers
Monitor
Deploy to remaining servers
UrbanCode Inc. ©2013
Mature or crazy?
UrbanCode Inc. ©2013
Why a maturity model?
How awesome is my team?
Winning!
UrbanCode Inc. ©2013
Why a maturity model?
 Where are we now?
 What are other people doing?
 Where do we want to be?
 How do we get there?
The future is here. It’s just not evenly distributed yet.”
- William Gibson
UrbanCode Inc. ©2013
The Model
UrbanCode Inc. ©2013
Credit Where Due
UrbanCode Inc. ©2013
5 Levels
Base
Beginner
Intermediate
Advanced
Extreme
UrbanCode Inc. ©2013
Four categories, held together with culture
UrbanCode Inc. ©2013
Build
UrbanCode Inc. ©2013
Dependencies are the hard part
UrbanCode Inc. ©2013
Deploying
UrbanCode Inc. ©2013
Big question: how do we coordinate components?
 Build Pipeline Tool
- Pressure development to adapt to this model
 CI tool + Application Deployment Automation Tool
- Add a tool that pulls from the various build systems
UrbanCode Inc. ©2013
When is each approach appropriate?
Pipeline
 Simple apps
 Low coupling between
components / services
 Tests validate ONE version
of ONE thing
 Shared tool ownership ok
Build + ADA
 More complex applications
 Higher coupling between
components / services
 Tests validate that the larger
system is working
 Dev wants to own build,
Ops wants to own deploy
UrbanCode Inc. ©2013
Most people fall into the Build + ADA pattern
Pipeline here
UrbanCode Inc. ©2013
Measure & Test
UrbanCode Inc. ©2013
UrbanCode Inc. ©2013
Communication & Reports
UrbanCode Inc. ©2013
There are inter-dependencies
UrbanCode Inc. ©2013
Standard Target
Based on this model, the standard target is:
 Continuous builds on a distributed grid using
dependency management
 Auto-deploy to the first environment
 Extensive testing of multiple types
 Test results and trends are widely visible
 Self-service deployments to other environments
- Production style deployments everywhere
- Deployments coordinate tiers/services as appropriate
UrbanCode Inc. ©2013
We’re not all the same
UrbanCode Inc. ©2013
Applying the Model
UrbanCode Inc. ©2013
Basic Plan
 Audit where you are
 Understand the pain points & bottlenecks
 Agree on where you want to be
 Prioritize
UrbanCode Inc. ©2013
Example Persona: El Emeno Investments
 Securities trading is a key profit center
 Fast updates desired
- Exploit transient opportunities
 Strict legal requirements & audits
♫
Audit RulesDelivery TeamBusiness
Faster!
Slow
down, be
careful!
UrbanCode Inc. ©2013
Make it safe to go fast
UrbanCode Inc. ©2013
Audit for El Emeno
 Build
- Continuous integration (each team has own tool)
UrbanCode Inc. ©2013
Audit for El Emeno
 Build
- Continuous integration (each team has own tool)
 Deployment
- Some scripts, mostly manual
- Hand-offs by email
- Coordination of components based on dev oral history
UrbanCode Inc. ©2013
Audit for El Emeno
 Build
- Continuous integration (each team has own tool)
 Deployment
- Some scripts, mostly manual
- Hand-offs by email
- Coordination of components based on dev oral history
 Measure & Test
- 20% unit test coverage
- Almost no functional tests
- Security scanning tool run manually
UrbanCode Inc. ©2013
Audit for El Emeno
 Build
- Continuous integration (each team has own tool)
 Deployment
- Some scripts, mostly manual
- Hand-offs by email
- Coordination of components based on dev oral history
 Measure & Test
- 20% unit test coverage
- Almost no functional tests
- Security scanning tool run manually
 Communicate
- Silo’d and emailed with hand-off requests
UrbanCode Inc. ©2013
Bottlenecks for El Emeno
• Manual regression tests are too
slow
• Never allocated enough time
• Environment outages problematic
Measure
• Manual / semi-scripted
deployments are slow
• Cost of compliance is high
• Errors in deployment are risky
Deployment
UrbanCode Inc. ©2013
Bottlenecks for El Emeno
• Mostly okBuild
• Need easy audit trail for
approvals and deployments
• Shared reporting a“nice-to-have”
Communicate
UrbanCode Inc. ©2013
Desired state
Today
 Build
- Continuous integration (each team
has own tool)
 Deployment
- Some scripts, mostly manual
- Hand-offs by email
- Coordination of components based
on dev oral history
 Measure / Test
- 20% unit test coverage
- Almost no functional tests
- Security scanning tool used& run
manually
 Communicate
- Silo’d and emailed with hand-off
requests
Future
 Build
- Good artifact management key
 Deployment
- Consistent self-service deploys in
all environments
- Integrated with approvals & good
audit trails
- Coordinate tiers & services
 Measure / Test
- Need regression testing of core
functionality
- Security scanning should happen
automatically
 Communicate
- Produce test, security scan, and
approval logs for releases
UrbanCode Inc. ©2013
Scoring current vs future
0
1
2
3
4
5
Build Deploy Testing Reporting
Current
Future
Base
Beginner
Intermediate
Advanced
Extreme
UrbanCode Inc. ©2013
Prioritization: observations
 Deploy & Test are biggest weaknesses
- Development responsiveness is a strength
 Testers are spending time de-bugging bad
deployments
UrbanCode Inc. ©2013
Prioritize: Plan of attack for El Emeno
1 Get deployments decent.
- Ensure we have an artifact repo for builds
2 Invest Dev & QA time savings into regression tests
3 Re-evaluate in 6-12 months
UrbanCode Inc. ©2013
A simple maturity model
Urbancode.com/resources
UrbanCode Inc. ©2013
What are you doing Monday?
Download the Maturity Model and talk your team
Are we where we need to be?
UrbanCode Inc. ©2013
What are you doing in two months?
 Implementing updates to your Continuous Delivery
capabilities
Thank you!
@EricMinick
Urbancode.com/resources/

Continuous Delivery Maturity Model

  • 1.
  • 2.
    UrbanCode Inc. ©2013 Whois that guy?  Techie at UrbanCode - (now IBM)  Working on CI & CD tools for the last 10 years.
  • 3.
    UrbanCode Inc. ©2013 IMVU’sExtreme CD: 1 App to Prod, 50 times / day Build Run thousands of tests Deploy to some servers Monitor Deploy to remaining servers
  • 4.
  • 5.
    UrbanCode Inc. ©2013 Whya maturity model? How awesome is my team? Winning!
  • 6.
    UrbanCode Inc. ©2013 Whya maturity model?  Where are we now?  What are other people doing?  Where do we want to be?  How do we get there? The future is here. It’s just not evenly distributed yet.” - William Gibson
  • 7.
  • 8.
  • 9.
    UrbanCode Inc. ©2013 5Levels Base Beginner Intermediate Advanced Extreme
  • 10.
    UrbanCode Inc. ©2013 Fourcategories, held together with culture
  • 11.
  • 12.
  • 13.
  • 14.
    UrbanCode Inc. ©2013 Bigquestion: how do we coordinate components?  Build Pipeline Tool - Pressure development to adapt to this model  CI tool + Application Deployment Automation Tool - Add a tool that pulls from the various build systems
  • 15.
    UrbanCode Inc. ©2013 Whenis each approach appropriate? Pipeline  Simple apps  Low coupling between components / services  Tests validate ONE version of ONE thing  Shared tool ownership ok Build + ADA  More complex applications  Higher coupling between components / services  Tests validate that the larger system is working  Dev wants to own build, Ops wants to own deploy
  • 16.
    UrbanCode Inc. ©2013 Mostpeople fall into the Build + ADA pattern Pipeline here
  • 17.
  • 18.
  • 19.
  • 20.
    UrbanCode Inc. ©2013 Thereare inter-dependencies
  • 21.
    UrbanCode Inc. ©2013 StandardTarget Based on this model, the standard target is:  Continuous builds on a distributed grid using dependency management  Auto-deploy to the first environment  Extensive testing of multiple types  Test results and trends are widely visible  Self-service deployments to other environments - Production style deployments everywhere - Deployments coordinate tiers/services as appropriate
  • 22.
  • 23.
  • 24.
    UrbanCode Inc. ©2013 BasicPlan  Audit where you are  Understand the pain points & bottlenecks  Agree on where you want to be  Prioritize
  • 25.
    UrbanCode Inc. ©2013 ExamplePersona: El Emeno Investments  Securities trading is a key profit center  Fast updates desired - Exploit transient opportunities  Strict legal requirements & audits ♫ Audit RulesDelivery TeamBusiness Faster! Slow down, be careful!
  • 26.
    UrbanCode Inc. ©2013 Makeit safe to go fast
  • 27.
    UrbanCode Inc. ©2013 Auditfor El Emeno  Build - Continuous integration (each team has own tool)
  • 28.
    UrbanCode Inc. ©2013 Auditfor El Emeno  Build - Continuous integration (each team has own tool)  Deployment - Some scripts, mostly manual - Hand-offs by email - Coordination of components based on dev oral history
  • 29.
    UrbanCode Inc. ©2013 Auditfor El Emeno  Build - Continuous integration (each team has own tool)  Deployment - Some scripts, mostly manual - Hand-offs by email - Coordination of components based on dev oral history  Measure & Test - 20% unit test coverage - Almost no functional tests - Security scanning tool run manually
  • 30.
    UrbanCode Inc. ©2013 Auditfor El Emeno  Build - Continuous integration (each team has own tool)  Deployment - Some scripts, mostly manual - Hand-offs by email - Coordination of components based on dev oral history  Measure & Test - 20% unit test coverage - Almost no functional tests - Security scanning tool run manually  Communicate - Silo’d and emailed with hand-off requests
  • 31.
    UrbanCode Inc. ©2013 Bottlenecksfor El Emeno • Manual regression tests are too slow • Never allocated enough time • Environment outages problematic Measure • Manual / semi-scripted deployments are slow • Cost of compliance is high • Errors in deployment are risky Deployment
  • 32.
    UrbanCode Inc. ©2013 Bottlenecksfor El Emeno • Mostly okBuild • Need easy audit trail for approvals and deployments • Shared reporting a“nice-to-have” Communicate
  • 33.
    UrbanCode Inc. ©2013 Desiredstate Today  Build - Continuous integration (each team has own tool)  Deployment - Some scripts, mostly manual - Hand-offs by email - Coordination of components based on dev oral history  Measure / Test - 20% unit test coverage - Almost no functional tests - Security scanning tool used& run manually  Communicate - Silo’d and emailed with hand-off requests Future  Build - Good artifact management key  Deployment - Consistent self-service deploys in all environments - Integrated with approvals & good audit trails - Coordinate tiers & services  Measure / Test - Need regression testing of core functionality - Security scanning should happen automatically  Communicate - Produce test, security scan, and approval logs for releases
  • 34.
    UrbanCode Inc. ©2013 Scoringcurrent vs future 0 1 2 3 4 5 Build Deploy Testing Reporting Current Future Base Beginner Intermediate Advanced Extreme
  • 35.
    UrbanCode Inc. ©2013 Prioritization:observations  Deploy & Test are biggest weaknesses - Development responsiveness is a strength  Testers are spending time de-bugging bad deployments
  • 36.
    UrbanCode Inc. ©2013 Prioritize:Plan of attack for El Emeno 1 Get deployments decent. - Ensure we have an artifact repo for builds 2 Invest Dev & QA time savings into regression tests 3 Re-evaluate in 6-12 months
  • 37.
    UrbanCode Inc. ©2013 Asimple maturity model Urbancode.com/resources
  • 38.
    UrbanCode Inc. ©2013 Whatare you doing Monday? Download the Maturity Model and talk your team Are we where we need to be?
  • 39.
    UrbanCode Inc. ©2013 Whatare you doing in two months?  Implementing updates to your Continuous Delivery capabilities
  • 40.

Editor's Notes

  • #10 http://imagesfrombulgaria.com/v/Region_Kardzhali/Perunika_Village/Shanty.JPG.htmlhttp://upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Suburban_tract_house.JPG/640px-Suburban_tract_house.JPG
  • #34 Build: - Just get a clear audit trailDeployment - Middleware out of way - Push button - Actual worksTesting