Scale hurts

38
Growing Pains: Why Scaling Agile Hurts and What You Can Do About It. By Ed Kraay and Vibhu Srinivasan

description

Scaling Scrum hurts. There are coordination challenges, technical challenges, and communication challenges. But there are some patterns you can use to overcome these pains. This is an experience report from a 30+ person 5 team scaled Scrum project. It gives you practical tips on what to try if you experience any of the pains we did when we scaled Scrum.

Transcript of Scale hurts

Page 1: Scale hurts

Growing Pains: Why Scaling Agile Hurts and What You Can Do

About It.

By Ed Kraayand Vibhu Srinivasan

Page 2: Scale hurts

Who is more agile?

Page 3: Scale hurts

As number of people increases, so does the cost of communication…

• Expensive communication delays feedback • Delayed feedback reduces your ability to respond to

change

Page 4: Scale hurts

My experience up to this project

• Used XP successfully on various web and telcommunication projects with small teams (7-9 people) with one product owner for 3 years

• Distributed and colocated teams• Brought on as a ScrumMaster for one team on

a 5 team projects, all with Scrum/XP

Page 5: Scale hurts

The project: develop an online game

• 5 Feature Teams– Game Team– Art Team– Identity Management

Suite– Social Networking– Back-end game

infrastructure

• Professional Services Environment

Page 6: Scale hurts

The service platform

• Technologies in Play– Windows Communication Foundation , C# .NET

2.0, .NET 3.0, ASP.NET– PHP – A packaged product for content management– LDAP , Java – COTS Identity Management Suite

• One product

Page 7: Scale hurts

5 teams, ~50 people

• Multiple Team Gaming Program

Page 8: Scale hurts

We scaled by adding teams

Page 9: Scale hurts

How we organized

Page 10: Scale hurts

TimelineTeam Forming:

March 07

First Release, Infrastructure:

August 07

Game Infrastructure Teams: August

07

Program Retrospective

June 08

Releases: September 08 –

December 08

Page 11: Scale hurts

EnvironmentThe Practices: Scrum + XP

• Scrum Framework

• XP Practices

• Open Room Environment

Page 12: Scale hurts

Scrum Scaling 101

• Scrum Rule: Agile teams scale by adding teams not by growing teams

• Scrum Recommendation: Add a scrum of scrums meeting, add a meta scrum

• We experienced some pains when we scaled• Some things we tried helped• There may be other things we could have tried…

Page 13: Scale hurts

Pain: Work inserted in the middle of an iteration by a second team

• Would “break” the sprint, or cause delays

Page 14: Scale hurts

Try: Synchronize iterations across teams

• Create a Rhythm for product owners, team members, and facilitates planning

• Allows for cross team release planning

Page 15: Scale hurts

Pain: Undone work at the end of an iteration

• Caused the next sprint to reduce velocity, reduced quality

• Try: Tracking the Right Metrics: Committed vs actual points– “Slow down to speed

up”

Committed vs Completed

Points

Page 16: Scale hurts

Pain: Managing Priorities across Multiple Backlogs

• Priorities handled on the back end, mid sprint

• Caused mid sprint injection of product backlog items from other teams, breaking the sprint “bubble”

• Dependencies not clearly across teams

Story 1

Story 2

Story 3

Team A

Story 1

Story 2

Story 3

Team B

Story 1

Story 2

Story 3

Team C

Page 17: Scale hurts

Try: One product backlog to reduce sub-optimization from feature teams

Story 1

Story 2

Story 3

Story 4

Team A

Team B

Team C

Page 18: Scale hurts

Pain: Multiple product owners with competing business priorities

• Caused shifting focus on team.

Page 19: Scale hurts

Try: Chief Product Owner with clear responsibilities

RACI based on Establishing Top to Bottom Transparency Using the Meta-Scrum by Brent Barton

Page 20: Scale hurts

Try: 5 Levels of Planning to set context for leadership

Source: Henrik KnibergDaily Scrum Meeting

Scrum of Scrums

Meta Scrum

Daily Executive Meeting

Page 21: Scale hurts

Try: product definition team

• A team of product owners, UX, stakeholders, architects working on sprint ahead of the teams, clarifying priorities and defining and feeding the backlog so it is ready to go.

Page 22: Scale hurts

Try: Moving from Push to Flow

Source: Jean Tabaka, Jeff Sutherland, Hubert Smits

Product Definition Team

Page 23: Scale hurts

Try: X-Team Release Planning

Page 24: Scale hurts

Pain: Teams Build Silos

• Occurred even when teams were feet apart from each other in open space

• Try: Cross Team Events: Retrospectives, Lunch, Release Planning, Celebrations, Open Space Meetings.

Page 25: Scale hurts

Pain: It works on my machine

• One teams code does not interface with the other team well

• Code working on local build fails to integrate

• Its not easy to deploy the code to customer

Page 26: Scale hurts

Try: Integrated build and deploy

• Coordinate at the

code level rather than at the management level

• Stop and fix for all teams when there is a failure, reduces local optimization

Page 27: Scale hurts

SwarmingCross Team Ownership for the build – increase feedback across teams

Page 28: Scale hurts

Pain: Unresolved Impediments

• Hardware Requisition Process• Network Issues• Team Issues

Page 29: Scale hurts

Try: 24 hour removal of impediments to create a continual

learning culture

Page 30: Scale hurts
Page 31: Scale hurts

Try: Agile Modeling and Design

• Teams decided to white board designs one day after the sprint planning

• More spikes were used to understand a design before it can be used

• More emphasis on pairs to talk about what they are going to do, before changing code

Page 32: Scale hurts

More Engineering Pains

• Common Engineering Practices Missing

• Code was growing too fast in too many ways across teams

• Duplicated code• Customers had a core

architecture group that had less and less visibility as the teams grew and this caused unease.

Page 33: Scale hurts

Try: Embedding a cross team architect / agile coach

• A servant leader• Mentor and available to pair

program• Shields the teams from

technical bombshells• Active listener• Help inject technical stories

Page 34: Scale hurts

Pain: Engineering Smells• Some teams were reporting

lower bugs than others• Unit testing was not

consistent • Acceptance testing was

missing• Team did not see value in

TDD • More debates and

arguments were leading to unhappy developers

• Bad smells in code

Page 35: Scale hurts

Try: focusing on testing at retrospectives

• The teams agree to focus on testing in their retrospective

• Try an agreement: there should be increasing tests with each check-in. Team members can implement the tests any way they want, but code should have unit tests

• Test results on build system + Big visible charts• Category tags were used to group tests for quicker

running.• Inject one or two senior developers who knew TDD

well in every team - Peer pressure = great code

Page 36: Scale hurts

TDD led to a marked decrease in defects

Game Team Identity Management Persistence Team Game Infrastructure0

100

200

300

400

500

600

700

Defects and Tests

Unit TestsAcceptance TestsDefects

Page 37: Scale hurts

Conclusion• Scaling hurts• Focus on Agile

Values and Principles

• Increase feedback• Be courageous, fail

fast and learn from your mistakes

Page 38: Scale hurts

Thank you

Special thanks to Vibhu Srinivasan, Brent Barton, Chris Sterling, and the

rest of the team that made this possible.