scaling continuous delivery to minimize risks (delivery of things 2016)

46
Scaling Continuous Delivery to minimize risks

Upload: kinshuk-mishra

Post on 17-Jan-2017

25 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Scaling Continuous Delivery to minimize risks

Page 2: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Why Continuous Delivery?

Page 3: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

For Speed

Page 4: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Speed is a lever to mitigate risk

Page 5: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Typical cycle of software delivery

HypothesisGeneration Development Experimentation

Validation

Page 6: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

How do you scale it?

Page 7: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Foundational elements to scale it

ORGANIZATION

TOOLS

PROCESS

CULTURE

CONTINUOUS DELIVERY

Page 8: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Organization

Page 9: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Spotify Org Model

Page 10: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Takeaways

● Tribes : Optimize team composition for autonomy

● Alliances : Organize team groupings for alignment

● Guilds : Foster channels for knowledge sharing to break silos

● Tribes mapped to metrics : Have explicit accountability by

assigning team metrics

Page 11: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Story of our Aha! moment

Page 12: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Real story anyone?

Page 13: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Series of aha!, aha!, aha!, aha! ...

Page 14: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

There were 4 phases

Page 15: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

The startup phase

● 1 location

● 50+ engineers

● Teams mapped to features

Page 16: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Teams = Features

Page 17: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

The expansion phase

● 1 engineering hub in Stockholm

● 2 small engineering offices in NYC and Gothenburg

● 100+ engineers

● Teams still mapped to features but shared ownership across

geographies

Page 18: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

The autonomy phase

● Global company with 2 engineering hubs in NYC and Stockholm

● Multiple smaller engineering offices

● 250+ engineers

● Geo local missions and full local autonomy

Page 19: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Teams Tribes = Missions

Page 20: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

The alignment phase

● Global company with multiple engineering offices

● 500+ engineers

● 10+ autonomous missions

● Many missions working towards same or similar metric

Page 21: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Teams Tribes Alliances = Related Missions

Page 22: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

One more thing ...

Spotify Org model Universal Org Model

Page 23: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Tools

Page 24: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Make pipelines fast and low-touch

Page 25: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Enable ease of deployment

● Think Containers to enable easy deployments

● Standardize production and test setup to enable easy build

progression

Page 26: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Make tests visible

GitPR

Pre-mergeTests Pass Post-merge

Tests Log to TRS

View TestResults

Page 27: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)
Page 28: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Optimize build times

● Minimize recompiles of the whole dependency tree

● Pre-compile common dependencies and store as binaries

● Think hermetic builds

Page 29: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Maximize Automation, Monitoring and Alerting

Page 30: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Make experimentation part of the delivery flow

Page 31: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Feature Flags rollouts AB Tests

Page 32: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Process

Page 33: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Standardize Release Management

Page 34: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Feature Complete

Beta Testers & Apple / Incremental Rollout to

Android

Master Branch

Release Branch

Release Blocking Bug Fix(es)

2 week client release cycle

Page 35: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Enable Speedy Reviews

Page 36: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Review flow

Software DesignReview

SoftwareDevelopment

CodeReview

Pre-releaseReview

SoftwareDesign

SoftwareRelease

Page 37: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Speedy Reviews at Spotify

● Code merges require +1 during code review but aren’t blocked● Changes are tracked for auditing purposes● Software review is front-loaded to avoid delivery blockers.

Encourages thinking through completely about architectural setup, complexity and dependencies

Page 38: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Have a company operating rhythm

Page 39: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)
Page 40: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)
Page 41: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)
Page 42: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Culture

Page 43: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Quality is owned by everyone but managed by QA

Page 44: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Agile is not a process but a mindset

Page 45: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Be explicit about beliefs and expectations

Page 46: Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)

Thank You!

Email : [email protected] : @_kinshukmishra