Top Banner
adopting continuous delivery @jezhumble ndc oslo, 13 june 2013 Friday, July 5, 13
46

Adopting continuous delivery

Jan 28, 2015

Download

Technology

Jez Humble

A recording is available here: http://www.youtube.com/watch?v=2jt-up0a4JY

While keeping software production ready throughout its lifecycle and optimizing your delivery process for shorter cycle times might seem like a good idea to you, the rest of your organization might not share your excitement. In this talk, Jez Humble shares stories from companies who have attempted to adopt continuous delivery and discusses the organizational, architectural and process factors that led to the success - or failure - of these initiatives.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Adopting continuous delivery

adoptingcontinuous delivery

@jezhumblendc oslo, 13 june 2013

Friday, July 5, 13

Page 2: Adopting continuous delivery

“adopting”

organizational, architectural, process

-NOT-

tools, code, infrastructure

Friday, July 5, 13

Page 3: Adopting continuous delivery

start with continuous integration

understand why you want to change

get measurable change fast, even if reaching your goal takes years

create culture of continuous improvement

focus on organization and architecture

takeaways

Friday, July 5, 13

Page 4: Adopting continuous delivery

what is continuous delivery?

reduce the cost, time, and risk

of delivering incremental changes

to users

Friday, July 5, 13

Page 5: Adopting continuous delivery

Friday, July 5, 13

Page 6: Adopting continuous delivery

Friday, July 5, 13

Page 7: Adopting continuous delivery

why continuous delivery?

1. build the right thing

Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F

Customerdevelopment

Agile productdevelopment

Friday, July 5, 13

Page 8: Adopting continuous delivery

do less

“Evaluating well-designed and executed experiments that were designed to improve a key metric, only about 1/3 were successful at improving the key metric!”

“Online Experimentation at Microsoft”, Kohavi et al http://stanford.io/130uW6X

Friday, July 5, 13

Page 9: Adopting continuous delivery

@jezhumble

We believe that

[building this feature]

[for these people]

will achieve [this outcome].

We will know we are successful when we see [this signal from the market].

hypothesis-driven delivery

Je! Gothelf “Better product de"nition with Lean UX and Design” http://bit.ly/TylT6A

Friday, July 5, 13

Page 10: Adopting continuous delivery

Friday, July 5, 13

Page 11: Adopting continuous delivery

http://bit.ly/19Z5izI

Friday, July 5, 13

Page 12: Adopting continuous delivery

http://bit.ly/19Z5izI

Friday, July 5, 13

Page 13: Adopting continuous delivery

scienti"c method

create hypothesis

deliver minimum

viable product

get feedback

(repeat)

Friday, July 5, 13

Page 14: Adopting continuous delivery

ask this question

“How long would it take your organization to deploy a change that involved just one single line of code? Do you do this on a repeatable, reliable basis?”

Mary and Tom Poppendieck, Implementing Lean Software Development, p59.

Friday, July 5, 13

Page 15: Adopting continuous delivery

releasing frequently

1. build the right thing2. reduce risk of release

John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr

Friday, July 5, 13

Page 16: Adopting continuous delivery

optimize for mtrs

Friday, July 5, 13

Page 17: Adopting continuous delivery

optimize for mtrs

MTBF MTRS

John Allspaw: “Building Resilience in Web Dev & Ops” http://bit.ly/Pa0DBq

Friday, July 5, 13

Page 18: Adopting continuous delivery

http://bit.ly/19Z5izIFriday, July 5, 13

Page 19: Adopting continuous delivery

deployment pipeline

Delivery team Version control Build & unit tests

Automated acceptance tests

User acceptance tests

Release

Check in

Feedback

Trigger

Check in

Feedback

Trigger

Trigger

Check inTrigger

Trigger

ApprovalApproval

Feedback

Feedback

FeedbackFeedback

Friday, July 5, 13

Page 20: Adopting continuous delivery

why continuous delivery?

1. build the right thing2. reduce risk of release3. real project progress

Friday, July 5, 13

Page 21: Adopting continuous delivery

so#ware is always releasable on demand

prioritize keeping system releasable over delivery

anybody can get fast, automated feedback on the e!ect of a change

how do i know i’m doing it?

Friday, July 5, 13

Page 22: Adopting continuous delivery

skills & responsibilities

plan for continuous delivery

architect for continuous delivery

business wants to scale back release frequency

project launched early

green"eld project

Friday, July 5, 13

Page 23: Adopting continuous delivery

devops

http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr

Friday, July 5, 13

Page 24: Adopting continuous delivery

hiring a devop

http://gun.io/blog/how-to-hire-devops/

Friday, July 5, 13

Page 25: Adopting continuous delivery

the devops role

If you add a “devops” function to your existing dev, testing and ops functions, you just missed the whole point.

Friday, July 5, 13

Page 26: Adopting continuous delivery

the path of continuous delivery

http://www.flickr.com/photos/jezand_rani/455116092/Friday, July 5, 13

Page 27: Adopting continuous delivery

hp laserjet "rmware team

~5% - innovation

15% - manual testing

25% - current product support

25% - porting code

20% - detailed planning

10% - code integration

2008

Friday, July 5, 13

Page 28: Adopting continuous delivery

deployment pipeline

Friday, July 5, 13

Page 29: Adopting continuous delivery

hp laserjet "rmware team

~5% - innovation

15% - manual testing

25% - current product support

25% - porting code

20% - detailed planning

10% - code integration

2008

~40% - innovation

5% - most testing automated

10% - one branch cpe

15% - one main branch

5% - agile planning

2% - continuous integration

2011

The remaining 23% on RHS is spent on managing automated tests.

Friday, July 5, 13

Page 30: Adopting continuous delivery

the economics

2008 to 2011

• overall development costs reduced by ~40%

• programs under development increased by ~140%

• development costs per program down 78%

• resources now driving innovation increased by 5X

A Practical Approach to Large-Scale Agile Development - Gruver, Young, Fulghum

Friday, July 5, 13

Page 31: Adopting continuous delivery

improvement kata

Friday, July 5, 13

Page 32: Adopting continuous delivery

test automation

architecture

continuous integration

planning process

what changed?

Friday, July 5, 13

Page 33: Adopting continuous delivery

organizational transformation

aim to achieve measurable change as soon as possible - no more than a few months

Friday, July 5, 13

Page 34: Adopting continuous delivery

top down or bottom up?

fetch me 100 of your finest CSMs!

no! we will deliver crappy software late through self-

organization!

Friday, July 5, 13

Page 35: Adopting continuous delivery

start with continuous integration

Is the system working?

If you broke it, you "x it.

Friday, July 5, 13

Page 36: Adopting continuous delivery

Mainline Server

Develop

Build

Build

pull

Local Workstation

Buildpush

✔Done!

Friday, July 5, 13

Page 37: Adopting continuous delivery

branch-by-abstraction - bit.ly/kAUbEw

“feature branching is a poor man’s modular architecture” - Dan Bodart

micro-services - build a platform - bit.ly/shHR!

strangler application - bit.ly/R4ZiJZ

architecture

Friday, July 5, 13

Page 38: Adopting continuous delivery

acceptance testing in non-integrated environment

design for phoenixes - bit.ly/PFtDQy

stand up system in dev environment

create test doubles for integration

design for test and deploy

Friday, July 5, 13

Page 39: Adopting continuous delivery

program-level co-ordination

1 -> 2 releases per month; 40% cycle time reduction

low-hanging fruit: reduce branching, run tests, standardize environments, decrease build time

director of continuous delivery managing initiative

what can we do in a year?

Friday, July 5, 13

Page 40: Adopting continuous delivery

slack time

excitement

existing capability (“nokia test”)

can demonstrate measurable change

"nding the right team

Friday, July 5, 13

Page 41: Adopting continuous delivery

Are you doing iterative development?

Iterations must be time-boxed to less than four weeks

Software features must be tested and working at the end of each iteration.

The iteration must start before the specification is complete.

the nokia test

bas voddeFriday, July 5, 13

Page 42: Adopting continuous delivery

Are you doing Scrum?

Do you know who the product owner is?

Is the product backlog prioritized by business value?

Does the product backlog have estimates created by the team?

Are there project managers (or others) disrupting the work of the team?

the nokia test

bas voddeFriday, July 5, 13

Page 43: Adopting continuous delivery

monolithic architecture, water-scrum-fall

architecture didn’t consider test and deployment

“They don't need a deployment pipeline, they need to talk to each other much more”

expected magic CD fairy to make things better

how not to do it

Friday, July 5, 13

Page 44: Adopting continuous delivery

start with continuous integration

understand why you want to change

get measurable change fast, even if reaching your goal takes years

create culture of continuous improvement

focus on organization and architecture

takeaways

Friday, July 5, 13

Page 45: Adopting continuous delivery

jesse’s rule

“don’t fight stupid,make more awesome”

Jesse Robbins, Co-founder, Opscode @jesserobbinsFriday, July 5, 13

Page 46: Adopting continuous delivery

questions@jezhumble | [email protected]://continuousdelivery.com/

ThoughtWorks is hiring!http://join.thoughtworks.com/

Australia | Brazil | Canada | ChinaGermany | India | Singapore | South AfricaUganda | UK | USA

© 2013 ThoughtWorks, Inc.

Friday, July 5, 13