Real-life Agile Scaling

Real-life Agile Scaling Consultant www.crisp.se Keynote - Agile Tour Bangkok Nov 21, 2015 Henrik Kniberg Parent [email protected] @HenrikKni...
Author: Sophia Atkins
16 downloads 0 Views 3MB Size
Real-life Agile Scaling Consultant www.crisp.se

Keynote - Agile Tour Bangkok Nov 21, 2015

Henrik Kniberg

Parent

[email protected] @HenrikKniberg

Agile & Lean coach Author

Not too hard

Henrik Kniberg

A bit trickier

Henrik Kniberg

Hard!

Henrik Kniberg

How do we avoid THIS?

Henrik Kniberg

Beware of Scaling

Henrik Kniberg

01:32

Beware of Scaling

?

! Guaranteed Downside •  Cost •  Complexity Henrik Kniberg

?

Potential Upside: •  Shorter delivery time more hands on deck, parallell work •  Better product access to wider range of competences Potential Downside (Risk): •  Longer delivery time because of misalignment & dependencies •  Worse product because of bad communication

Stuff you need to figure out with multiple teams How to slice the elephant

Team structure

Henrik Kniberg

Team sync / alignment

Feedback loop

Dependencies!

Slice the elephant

Henrik Kniberg

01:32

Big Bang = Big Risk

10% succeed 38% totally fail1

Source: Chaos Manifesto 2013, Standish group

Cumulative RISK Value Henrik Kniberg

≈250 people involved 4 years to first public release Shut down after 2 years of operation

Henrik Kniberg

Lego Universe

Not like this....

1

2

3

4

Like this!

1 Henrik Kniberg

2

3

4

5

Slice the elephant!

Region Östergötland, Uppsala, etc

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

1.1

1.3

1.4

1.2 1.5

Integrations

Henrik Kniberg

MVP – Minimum Viable Product

Henrik Kniberg

Minimum viable

Earliest Testable Product

Earliest Usable Product

Earliest testable/usable/lovable Earliest Lovable Product

Aim for the Clouds... But deliver in Small Steps

Henrik Kniberg

Two types of slicing Release 1.0

Slicing to enable early & frequent release Release 1.1

Release 1.2

Release 1.3

Slicing to enable parallel development

Henrik Kniberg

Build a suitable Team Structure

01:32

Component team vs Feature team

User Client

Client team C

C

S

D

Feature team 1

S C S

D

Test team T

Henrik Kniberg

T

S

S

D

D

D

T T

T

Feature team 2 C

C

DB team D

DB

C

Server team S

Server

T Communities of interest

Two conflicting goals (at scale): 1.  Team should be “full-stack” 2.  Team should be small Security

Performance Front end

Marketing

DB Test

Hardware

UX

Monitoring Back end Data analytics Operations

Henrik Kniberg

Build systems

Design

Big Data

Team types - finding the right balance

100% feature teams

Small orgs

Large orgs Henrik Kniberg

Trade-off

100% Component teams

Small orgs

Small orgs

Large orgs

Large orgs

Types of dependencies independent teams

Knowledge sharing

Henrik Kniberg

Building different products, but have dependencies

Knowledge sharing Dependency sync

Building the same product (implicit dependency!)

Knowledge sharing Dependency sync Product integration

Dependencies

Good Dependency (aka “collaboration”)

Bad Dependency Henrik Kniberg

!?#@%

Example: Visualizing team dependencies Team Bazinga

Team TBBT

Our Team Team Snap

Team Sheldon

Henrik Kniberg & Jan Grape

Team Flash

Example: Visualizing team dependencies

Henrik Kniberg

Good vs bad dependencies Full-stack team. Can deliver customer value independently.

Coupled teams A must sync with B in order to deliver customer value.

A

Platformized teams Team A1 and A2 are more effective because of team B’s platform

A1

A2

A Platform B

Henrik Kniberg

B

Customer-driven platform teams

External-facing teams Focus on delivering value to external customers

A1

Internal-facing teams Focus on making other teams more effective at delivering value to their customers. The other teams must obey us!

A2

Platform B

The other teams are our customers!

Key decision:

Where can we accept low-bandwidth communication? The speed of development is determined by the speed of ideas spreading

High bandwidth

Low bandwidth

Henrik Kniberg

High bandwidth Alistair Cockburn

Teams of Teams! Bunch of individuals

Small Teams

Teams of Small teams

Henrik Kniberg

Big teams

Decoupling to enable frequent releases

Client App squad

!#?

Feature squads Henrik Kniberg

Guidelines for team structure Try to ensure that each team: ❏  is 3-9 people ❏  is stable(ish), full-time & co-located. ❏  has a mission ❏  has clear customers ❏  can prioritize between customers (ex: via a PO role, or via clear strategic guidelines) ❏  cross-functional: has all skills and tools needed to deliver value to customers ❏  autonomous: doesn’t get blocked waiting for other teams and individuals. Henrik Kniberg

Scale the feedback loop

Henrik Kniberg

01:32

Single team feedback loops Sprint review Unit tests

Daily Standup Retrospective Continuous Integration

Henrik Kniberg

Multiteam feedback loops Whole Product review Cross team sync, retro, etc

Henrik Kniberg

Pattern: Integration Cadence

Henrik Kniberg

Henrik Kniberg

Pattern: 2-tier planning/alignment Months

Weeks

Henrik Kniberg

Weeks

Weeks

Weeks

Pattern: Plan on a cadence, release on demand Release 1.0

Planning event

Release 1.2.1 Release 2.0 Release 1.2

Release 1.1 Planning event

Release candidates

Henrik Kniberg

Release candidates

Planning event

Continuous Delivery = Aspirational.

Continuous Integration = Mandatory!

Automatic Manual Code & commit

Henrik Kniberg

Build

Test & integrate

Deploy to staging

Single click

Manual test

Deploy to prod

Get everyone aligned

Henrik Kniberg

01:32

Misaligned teams move very slowly

Henrik Kniberg

More teams = more likely that you will need dedicated leader(s)

Henrik Kniberg

Example: Leadership ”Trios”

Henrik Kniberg

Tech

Product

Design

T

P

D

Alignment & Autonomy

Alignment Do what I say!

Henrik Kniberg

False d

ichot omy

Autonomy

Do whatever

Alignment enables Autonomy We need to cross the river

High Alignment

Build a bridge!

Authoritative organization Conformist culture

Micromanaging organization

Low Alignment

Henrik Kniberg

Indifferent culture

Low Autonomy

Aligned Autonomy!

We need to cross the river

Figure out how!

Innovative organization Collaborative culture

Entrepreneurial organization Chaotic culture

High Autonomy

Hope someone is working on the river problem…

Example: Big-room planning/alignment at Lego Planning as a social event

Henrik Kniberg

2 days, 19 teams, 150 people

Henrik Kniberg

Demo video – what have we accomplished?

Henrik Kniberg

Lightning talks High level priorities: 1.  ... 2. ... 3. .... Architecture vision / priorities / constraints

Digital Child Safety

Henrik Kniberg

Global Insights

Data Privacy Law

Pattern: Different levels of granularity Program/Product backlog Feature/Epic Marketable Releasable

Team Backlog

Team Backlog

Story

Testable Fits in a sprint

Henrik Kniberg

Story

Testable Fits in a sprint

Team breakout: Pulling from the program backlog

Henrik Kniberg

Team breakout: Pulling from the program backlog (digital version)

Henrik Kniberg Henrik Kniberg

Team breakouts

Henrik Kniberg

Law of 2 feet....

Program Board

(a.k.a Dependency Board)

Henrik Kniberg

Early detection of dependency problems

Henrik Kniberg

Scrum of Scrums = dependency sync

Henrik Kniberg

Simpler version of dependency sync Dependency board ”right now, who’s waiting for what from whom”

Henrik Kniberg

Risk board

(per project/epic)

Henrik Kniberg

Management review / problem solving

Henrik Kniberg

Day 2

Management feedback & commitment to help

Henrik Kniberg

Pattern: Information radiators

•  In the hallway •  Or in a War Room Zen Room

Henrik Kniberg

Big Picture – features/epics

Team 1 - stories

Henrik Kniberg

Team 2 - stories

Team 3 - stories

Example: Measuring velocity by counting cards

Count cards

Velocity per week

Henrik Kniberg

Example: Release planning using a burnup chart All of these will be done

Total # of delivered features

Week Some of these will be done, but not all

None of these will be done 65 Henrik Kniberg

65

Wrapup

01:32

Don’t go overboard with Agile! No plan

Rough, adaptive plan

No architecture

Rough, adaptive architecture

Bad Agile

Good Agile

Henrik Kniberg

Big up front plan

Big up front architecture

Waterfall

Stuff you need to figure out with multiple teams How to slice the elephant

Team structure

Henrik Kniberg

Team sync / alignment

Feedback loop

Dependencies!

Real-life agile scaling – take aways •  Scaling hurts Keep things as small as possible •  Agile is a means, not a goal Don’t go Agile Jihad. Don’t dump old practices that work •  There is no “right” or “wrong” way Just tradeoffs •  There is no one-size-fits-all But plenty of good practices •  Build feedback loops at all levels Gives you better products and a self-improving organization. Henrik Kniberg

Suggest Documents