20
How to introduce Continuous Delivery? Alex Schwartz Location and Commerce

How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

How to introduce Continuous Delivery?

Alex Schwartz Location and Commerce

Page 2: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

!!!"#$%&'"%()*+,(-(.*/0'-(12134*56789:7;<=*>

“Big Ship”

•  A lot of stuff •  Every few month or weeks •  Release process takes weeks

or several days •  High risk: Lost/forgotten stuff

Which delivery style you have?

Page 3: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

!!!"#$%&'"%()*+,(-(.*)%?)2.-@'%,@A*:6985;<59*>

“Kaiten Sushi”

•  Just what is required •  On demand •  Fast: < 1 hour for a deployment •  A click on the button

Which delivery style you have?

Page 4: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

Why we should care about fast delivery?

Page 5: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

!!!"#$%&'"%()*+,(-(.*)%?)2.-@'%,@A*:6985;<59*>

how to introduce it in your ecosystem, but I try to share my learnings

and insights

I have no clue

How to introduce Continuous Delivery?

Page 6: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

!!!"#$%&'"%()*+,(-(.*)%?)2.-@'%,@A*:6985;<59*>

In three year we improved.. - Cycle time 10x (new apps) -  Number of Releases 30x

Ecosystem #1: eBay company

Page 7: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

Ecosystem #2: Nokia Places

Services oriented architecture using REST

Page 8: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases
Page 9: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

Old Days: •  Cycle time >35 days •  4-6 releases per year

Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI •  1-5 releases per week •  40 releases in prod in 5 month •  Min cycle time 2 hours •  Average cycle time ½ day

!!!"#$%&'"%()*+,(-(.*)%?)2.-@'%,@A*:6985;<59*>

Nokia Places: What we achieved

Page 10: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

In one year we improved.. - Cycle time 3x (legacy)

30x (new apps) - Number of Releases 20x - Success rate 10x - Unplanned work 5x

!!!"#$%&'"%()*+,(-(.*)%?)2.-@'%,@A*:6985;<59*>

Nokia Places: What we achieved

Page 11: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

Focus people (Kick the ass of Conway’s law)

Dev QA

Build Mgmt

Release Mgmt OPS

Page 12: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

Focus process: Kanban/Lean

Avatar

Page 13: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

>Focus on the value stream

Main Metric: Release Cycle Time

Page 14: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

>>Automation Automating the wrong thing to early is dangerous

“•  Automate

everything you do twice.

•  Automation will be your rescue.

Bullshit !

!!!"#$%&'"%()*+,(-(.*B$//$.(1.*;;<995;7=C*>

Page 15: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

Automation Click-Button Deployments

Our Automation: Full E2E pipeline in one tool, from commit to prod

Page 16: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

DevOps + DevQA get rig of rigid assignments of roles/task

Dev QA Ship

Dev Ops QA

Dev Ops QA

Page 17: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

Eat your Own Dog Food You understand the value of Continuous Delivery?

Use the same principle for your Improvement Process.

Baby Steps, Baby Steps, Baby Steps, Baby Steps….

!!!"#$%&'"%()*+,(-(.*).,23@.*8:<8=9C=8C*>

Page 18: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

Deliver Improve

Firefighting

How to find the balance + rhythm?

Page 19: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases

Further Topics …

QA

Pairing

Trust People

DevOps

Test Automation

TDD

ATD Acceptance Criteria Cut your stories

Page 20: How to introduce Continuous Delivery? · Old Days: • Cycle time >35 days • 4-6 releases per year Now – for a legacy app: Cycle time ca. 10 days New App: PBAPI • 1-5 releases