spotify: the unproject

80
Author Father Agile & Lean coach www.crisp.se Consultant Henrik Kniberg [email protected] @HenrikKniberg Spotify – the unproject culture (+ failure story ”how to burn 1 billion”) Passion for Projects keyote, May 21, 2013

Upload: jarmenia

Post on 19-May-2015

254 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Spotify:  The Unproject

Author

Father

Agile & Lean coach

www.crisp.se

Consultant Henrik Kniberg [email protected]

@HenrikKniberg

Spotify – the unproject culture (+ failure story ”how to burn €1 billion”)

Passion for Projects keyote, May 21, 2013

Page 2: Spotify:  The Unproject

Henrik Kniberg

Boring but important practical info about these slides Usage Feel free to use slides & pictures as you wish, as long as you leave my name somewhere. For licensing details see Creative Commons (http://creativecommons.org/licenses/by/3.0/) Downloading the right font This presentation uses the ”Noteworthy” font. If you’re using Mac OSX 10.7 or later it should be preinstalled. If you’re on a Windows or older Mac OS then you need to download the font from here: http://tinyurl.com/noteworthy-ttc •  On Windows right-click the font file and select ”install”. Then restart Powerpoint. •  On Mac, double-click the font file and press ”install font”. Then restart Powerpoint. The PDF version of these slides has the font embedded, so you don’t need to do anything. On the other hand you don’t get the fancy animations. Font test

The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog

How the font shows up on your computer: How the font is supposed to look: (screenshot from my computer)

Regardless of font appearance, if that text doesn’t fit nicely into the box then you’re going to need to download the right font, or switch to a new font and fiddle with the slides to make sure things fit.

Page 3: Spotify:  The Unproject

Purpose of this presentation

Show that projects aren’t the only way to get stuff done

Henrik Kniberg

Page 4: Spotify:  The Unproject

01:32

Success = ?

Henrik Kniberg

Page 5: Spotify:  The Unproject

What is a successful project?

Henrik Kniberg

Scope

Budget Schedule

nah....

Page 6: Spotify:  The Unproject

What is a successful project?

Henrik Kniberg

Project A Project B Project C Scope

Budget Schedule

Scope

Budget Schedule

Customer

Users

Development team

Customer

Users

Development team

Customer

Users

Development team

Scope

Budget Schedule

Happy stakeholders!

Happy stakeholders!

Page 7: Spotify:  The Unproject

Measuring success

Henrik Kniberg

Happy development

team Happy users

Surveys

Do they come back

more often?

Do they stay longer?

Happy stakeholders

Measure the stuff that really matters!

Proxy metrics

Do they listen to more music?

Do they share more music?

Page 8: Spotify:  The Unproject

01:32

A unique & expensive experiment

Henrik Kniberg

Page 9: Spotify:  The Unproject

Experiment: Build the same product twice, in different ways

Henrik Kniberg

Project 1 Project 2 Mission Improve society Reduce maintenance cost Requirements Unclear Clear Delivery Agile (= Iterative/incremental) Big bang User involvement Continuous None Team’s influence over technology choices

High None

Tech platform Java (programming language)

Siebel (CRM system)

Hypothesis: second version will be cheaper (and better).

Project 1 Mission Improve society Requirements Unclear Delivery Agile (= Iterative/incremental) User involvement Continuous Team’s influence over technology choices

High

Tech platform Java (programming language)

Page 10: Spotify:  The Unproject

PUST – ”polisens utredningsstöd”

Henrik Kniberg

Page 11: Spotify:  The Unproject

Project 1: PUST Java

Henrik Kniberg

2010 2011

Nationwide release

pilot releases

Page 12: Spotify:  The Unproject

Henrik Kniberg

Rebuild the whole thing using Oracle

Siebel Huh? We just spent 100 Mkr building a working product.

Shouldn’t we keep improving on that?

Oracle says Siebel will be cheaper and

better But it won’t work! PUST is UX critical, and it’s not

a CRM system!

Oracle says Siebel will be cheaper and

better Well then let’s build a

small pilot version, to see if that is true

No time for that. Build the whole thing in

one go, and release nationwide when done.

Page 13: Spotify:  The Unproject

Project 2: Pust Siebel

Henrik Kniberg

A train wreck in slow motion

Page 14: Spotify:  The Unproject

Project 2: Pust Siebel

Henrik Kniberg

2012 2013

Nationwide release @#?!

Page 15: Spotify:  The Unproject

Result of experiment ”build the same product twice”:

Henrik Kniberg

RESULT PUST Java PUST Siebel Stakeholder response

Mostly positive Outrage

Cost ≈100 Mkr ≈200 Mkr + estimated damage 10 Bkr

Measured impact 2-8x faster processing time for simple crime investigations

Police blocked several hours per day. Error rate increased.

PUST Java PUST Siebel Mission Improve society Lower cost Requirements Unclear Clear Delivery Iterative Big bang User involvement Continuous None Team’s influence over technology choices

High None

Tech platform Java (programming language)

Siebel (CRM system)

RESULT PUST Java Stakeholder response

Mostly positive

Cost ≈100 Mkr

Measured impact 2-8x faster processing time for simple crime investigations

Page 16: Spotify:  The Unproject

Lessons learned

Henrik Kniberg

2010 2011 2012 2013

Pust Java

Nationwide release

Nationwide release

• Focus on solving user needs, not cost • Deliver iteratively & incrementally • Involve real users •  Beware of ”standard platforms”

•  They’re not as standard as you think •  Listen to your tech people more than to the

external vendor trying to sell stuff to you

Pust Siebel

Page 17: Spotify:  The Unproject

01:32

What makes a project succeed?

Henrik Kniberg

Page 18: Spotify:  The Unproject

15,000 person-years of experience

Henrik Kniberg

Communication

Small steps

User involvement

Page 19: Spotify:  The Unproject

01:32

Do projects help us succeed?

Henrik Kniberg

Page 20: Spotify:  The Unproject

Project = ?

Henrik Kniberg

Temporary

People who don’t normally work

together Not a routine

operation

Defined Beginning and End in time

X-mas

A bucket of people, time, and money

Page 21: Spotify:  The Unproject

What do people REALLY mean when they say ”project”

Henrik Kniberg

Temporary

People who don’t normally work

together Not a routine

operation

Defined Beginning and End in time

This?

Something we are working

on

Or this?

Page 22: Spotify:  The Unproject

All products start with a Great Idea!

Henrik Kniberg

Page 23: Spotify:  The Unproject

RISK

Big Bang = Big Risk

Henrik Kniberg

Cumulative Value

Page 24: Spotify:  The Unproject

Big Projects usually fail. Regardless of process.

Henrik Kniberg

< $1 million > $1 million

”The Standish Group has categorically stated with much conviction—backed by intense research—that the secret to project success is to strongly recommend and enforce limits on size and

complexity.”

”These two factors trump all other factors.”

Page 25: Spotify:  The Unproject

Project model invites Big Bang thinking

Henrik Kniberg

Temporary

People who don’t normally work

together Not a routine

operation

Defined Beginning and End in time

Big Bang Project

Page 26: Spotify:  The Unproject

Agile = Iterative + Incremental

Henrik Kniberg

Don’t try to get it all right from the beginning

Don’t build it all at once

cost value

cost value

RISK

Page 27: Spotify:  The Unproject

Not like this....

Henrik Kniberg

1 2 3 4

5 1 4 3 2

Like this!

Page 28: Spotify:  The Unproject

Slice the elephant!

Henrik Kniberg

PUST Java

1.0

1.2

1.3 1.4

1.5

Region Östergötland, Uppsala, etc

Crime types (weapon, drunk driving, shoplifting, etc)

Integrations

1.1

Page 29: Spotify:  The Unproject

Henrik Kniberg

Project model doesn’t fit well for IT product development

Project

Deliver

Deliver

Project = ?

Deliver Do Stuff

Deliver Deliver Deliver

Do Stuff Do Stuff Do Stuff Do Stuff

•  A project is a temporary, non-routine operation. •  Product development teams are long-lived,

and they deliver routinely.

•  Projects have a fixed end. •  Product development is continuous

Do Stuff Big Bang approach

Do Stuff

Agile approach

Temporary

People who don’t normally work

together Not a routine

operation

Defined Beginning and End in time

Page 30: Spotify:  The Unproject

Improving the Value Curve

Henrik Kniberg

Big Bang Big increments Small increments Highest value first

Value

Effort

RISK

Page 31: Spotify:  The Unproject

Henrik Kniberg

Maximize Value, not Output

Page 32: Spotify:  The Unproject

Project Model vs Agile Model

Henrik Kniberg

Project Model Agile Model

PUST Siebel PUST Java

Page 33: Spotify:  The Unproject

01:32

What is Spotify?

Henrik Kniberg

Page 34: Spotify:  The Unproject

Henrik Kniberg

Play Everywhere!

Like a magical music player in which you’ve bought every song in the world!

• Revolutionizing the music industry • Popular product that spreads virally • Happy employees • Stable revenue model

Page 35: Spotify:  The Unproject

2006 2007 2008 2009 2010 2011 2012

10M

20M

30M 24 million active users

6 million Paying subscribers

User growth

Page 36: Spotify:  The Unproject

Employee growth

Henrik Kniberg 2006 2007 2008 2009 2010 2011 2012

1300+ employees 30+ countries

250

750

1000

500

2013

Page 37: Spotify:  The Unproject

≈400 people in tech

Henrik Kniberg 37

Stockholm 250

Gothenburg 30

New York 100

San Francisco 10

Page 38: Spotify:  The Unproject

01:32

How Spotify works

Henrik Kniberg

Page 39: Spotify:  The Unproject

The Spotify ”unproject”

Henrik Kniberg

Timeline 2008 2013

Page 40: Spotify:  The Unproject

> 60 squads

Henrik Kniberg

Page 41: Spotify:  The Unproject

Henrik Kniberg

Autonomous Squad Cross-functional, co-located, self-organizing team

Page 42: Spotify:  The Unproject

42

Page 43: Spotify:  The Unproject

Squads are grouped into Tribes

Henrik Kniberg

Tribe Tribe Tribe

Tribe Tribe Tribe

Page 44: Spotify:  The Unproject

Tribe Tribe

Chapter

Chapter

Chapter

Chapter Guild

Each Tribe is a lightweight matrix focused on delivery Vertical = Delivery. Horizontal = knowledge sharing & personal development

Page 45: Spotify:  The Unproject

Reality is messy

Henrik Kniberg

Page 46: Spotify:  The Unproject

Community > Structure Face-2-face communication

Page 47: Spotify:  The Unproject

How do we align 60+ mini-startups?

Henrik Kniberg

Page 48: Spotify:  The Unproject

Alignment & Autonomy

Henrik Kniberg

Alignment

Do what I say!

Autonomy

Do whatever

False dichotomy

Page 49: Spotify:  The Unproject

Alignment enables Autonomy

Henrik Kniberg

High Alignment

High Autonomy

Build a bridge!

Micromanaging organization Indifferent culture

Entrepreneurial organization Chaotic culture

Authoritative organization Conformist culture

Innovative organization Collaborative culture

We need to cross the river

Figure out how! We need to

cross the river

Low Alignment

Low Autonomy

Hope someone is working on the river problem…

Aligned Autonomy!

Page 50: Spotify:  The Unproject

Leader’s job: Explain what problem needs to be solved. And Why.

Henrik Kniberg

Page 51: Spotify:  The Unproject

Aligned Autonomy - be autonomous, but don’t suboptimize - Spotify’s mission > Squad’s mission

Henrik Kniberg

Page 52: Spotify:  The Unproject

Fastest learner wins! Delivery frequency = Speed of learning

Henrik Kniberg

Feedback, Requests, Data

Demos, Releases

Development team

Stakeholders, Users

Page 53: Spotify:  The Unproject

Release must be REALLY easy!

Henrik Kniberg

Req Code Test

Release!

Release = Drama!

Release = Routine

Releasing is easy

Release often

Releasing is hard

Release seldom

Page 54: Spotify:  The Unproject

Decoupling to enable frequent releases

Henrik Kniberg

Feature squads

Client App squad

!#?

Page 55: Spotify:  The Unproject

Self-service model

Henrik Kniberg

Client App squads

IOS Android Desktop Web

Feature squads

Infrastructure squads

Enable & support

Enable & support

Enable & support

Page 56: Spotify:  The Unproject

Henrik Kniberg

Release trains & Feature toggles

Page 57: Spotify:  The Unproject

Failure Recovery is more important than Failure Avoidance

Henrik Kniberg

Failure Recovery Failure Avoidance

Page 58: Spotify:  The Unproject

“Limited Blast Radius” via decoupled architecture

Henrik Kniberg

Page 59: Spotify:  The Unproject

”Limited Blast Radius” via gradual rollout

Henrik Kniberg

Page 60: Spotify:  The Unproject

Trust > Control 100% control = 0% motion

Henrik Kniberg

If everything’s under control, you’re going too slow!

- Mario Andretti

Page 61: Spotify:  The Unproject

01:32

How Spotify builds products

Henrik Kniberg

Page 62: Spotify:  The Unproject

Our product philosophy

1: We create innovative products while managing risk by prototyping early and cheaply. 2: We don’t launch on date, we launch on quality. 3: We ensure that our products go from being great at launch to becoming amazing, by relentlessly tweaking after launch.

Henrik Kniberg

Page 63: Spotify:  The Unproject

Impact A/B stats

Henrik Kniberg

Analyze data

Narrative & Metrics & Prototypes

Build MVP

Deploy to X% of users

Tweak

“Radio you can save!”

Idea/Problem

Minimum Viable Product

Backlog Developing Released Impact achieved

Page 64: Spotify:  The Unproject

Henrik Kniberg

Prototypes

Narrative

MVP 1% shipped 5% shipped 100% shipped

Think It Build It Ship it Tweak it

Page 65: Spotify:  The Unproject

100% predictability = 0% innovation

Henrik Kniberg

Focus on Innovation

Focus on Predictability

Page 66: Spotify:  The Unproject

You already have innovators! Just unleash them.

Henrik Kniberg

Hack days Hack weeks

10% Hackathon every few

months

20% time

Lab Day last Friday

every month

Page 67: Spotify:  The Unproject

Company-wide hackweek •  One whole week. •  Everyone at Spotify

•  Build whatever you want…. •  With whoever you want… •  In however way you want.

•  Demo & party on Friday!

Henrik Kniberg

Page 68: Spotify:  The Unproject

01:32

”Projects” at Spotify

Henrik Kniberg

Page 69: Spotify:  The Unproject

A Spotify ”project” is...

Henrik Kniberg

....a focused and coordinated effort of severals squads for several months

We are organized to minimize the need for projects. But sometimes a project is unavoidable. We aren’t very good at doing big projects - but we will keep experimenting and learning!

Page 70: Spotify:  The Unproject

01:32

Some things we’ve learned about how to do ”projects”

Henrik Kniberg

Page 71: Spotify:  The Unproject

Find the balance

Henrik Kniberg

Chaos Bureaucracy

Agile

Culture

Page 72: Spotify:  The Unproject

Daily sync - resolve dependencies

Henrik Kniberg

All involved squads •  What do you need from another squad right now? •  What is your progress since yesterday that affects the other squads? •  What do you plan to do today that will affect the other squads?

Page 73: Spotify:  The Unproject

Weekly demo - evaluate the integrated product

Henrik Kniberg

•  Triggers tight integration and collaboration •  Gives a sense of progress •  Triggers decisions & reprioritization

Page 74: Spotify:  The Unproject

Visual management & Light-weight adaptive planning Focus on impact! Not dates or deliverables.

Henrik Kniberg

Plans are useless. Planning is essential.

Eisenhower

Page 75: Spotify:  The Unproject

Retrospectives – during and after the ”project”

Henrik Kniberg

Page 76: Spotify:  The Unproject

Leadership needed (...but how?)

Henrik Kniberg

Leadership is an activity, not a role.

> Appointed leadership Emergent leadership

Experiments: -  RM (road manager) -  Leadership duo/trio

(tech + product + design)

Page 77: Spotify:  The Unproject

What about project managers? We do value (most) PM skills.

But we’re not sure we need a PM role.

Henrik Kniberg

... resolving complex, interdependent activities into

sub-tasks that are documented, monitored, and controlled

... work well under pressure and are comfortable with change and

complexity in dynamic environments

”Project managers are change agents. They make project goals their own and use their skills and expertise to inspire a sense

of shared purpose” We call this Road Manager.

We coach squads to do this themselves, in a just-in-time decentralized way. Sometimes they need support though.

... can shift readily between ”big picture” and small-but-crucial

details We try to build this competence into each squad

Debate in progress

Page 78: Spotify:  The Unproject

01:32

Wrapup

Henrik Kniberg

Page 79: Spotify:  The Unproject

Ask the right question

Henrik Kniberg

(and how do we run projects when we

can’t avoid it)

How can we minimize the need for big projects?

How can we minimize the size of projects?

How can we run big projects

Page 80: Spotify:  The Unproject

Take-away points

Projects aren’t the only way to get things done • The standard project model is a tool • Like any tool, it is suitable for some situations but not all. •  It is often unsuitable for IT product development

Success = happy stakeholders. Not time/budget/scope. • Minimize the size, deliver iteratively & incrementally • Focus on solving real user needs,

and involve them continuously Experiment!

• You can always improve. So keep trying new ways.

Henrik Kniberg