Transcript
Page 1: Scaling Agile Hurts by Vibhu Srinivasan
Page 2: Scaling Agile Hurts by Vibhu Srinivasan

Who are these guys, anyway?

Vibhu SrinivasanAgile Coach, Technologist.Doing XP since 1999

Ed KraayScrum Master, CSPAgile Coach

Doing scrum and XP since 2004

Page 3: Scaling Agile Hurts by Vibhu Srinivasan

Hypothesis: Scale hurts due to increased communication cost

• Communication increases geometrically, while team members are added linearly.

• Open environment was not enough to solve the issue.

• Teams locally optimize

Page 4: Scaling Agile Hurts by Vibhu Srinivasan

The context: An MMO game project0 Identity Management

Suite

0 Content Management System

0 Social Networking

0 3D Game

0 Back-end game infrastructure

Page 5: Scaling Agile Hurts by Vibhu Srinivasan

The service platform

0 Technologies in Play

0 Java, Windows Communication Foundation , C# .NET 2.0, .NET 3.0, ASP.NET

0 PHP

0 A packaged product for content management

0 LDAP

Page 6: Scaling Agile Hurts by Vibhu Srinivasan

EnvironmentScrum + XP

•Scrum Process•All 3 roles, artifacts, and ceremonies

•XP Practices•Paired Programming•Continuous Integration•Test Driven Development

•Open environment

Page 7: Scaling Agile Hurts by Vibhu Srinivasan

5 teams, 9 projects, ~50 people

0 Multiple Team Gaming Program

Page 8: Scaling Agile Hurts by Vibhu Srinivasan

Customer Team

7/18/2010All Rights Reserved – Vibhu Srinivasan

http;//agilefaq.net 8

Page 9: Scaling Agile Hurts by Vibhu Srinivasan

How we organized our Meetings, and how that mapped to the 5 levels of

planning

Page 10: Scaling Agile Hurts by Vibhu Srinivasan

TimelineTeam Forming:

March 07

First Release, Infrastructure:

August 07

Game Infrastructure

Teams: August 07

Program Retrospective

June 08

Planned Releases:

September 08 –December 08

The Timeline

Page 11: Scaling Agile Hurts by Vibhu Srinivasan

How did we generate these insights?

• Held a cross team program retrospective

• 1 day facilitated event

• Set the Stage, Built a 1+ year timeline, generated insights and defined actions

• This was in addition to project, iteration retrospectives

Page 12: Scaling Agile Hurts by Vibhu Srinivasan

Hurt: Undone work at the end of a sprint

0 Caused the next sprint to reduce velocity, reduced quality

0 Helped: Tracking the Right Metrics: Committed vs actual points, and worked to even them out.

Test Coverage

Committed vs

Completed Points

Page 13: Scaling Agile Hurts by Vibhu Srinivasan

Hurt: Defects slowed velocity

0 Helped: Test Driven Development

0 Hypothesis: TDD reduces defects.

0

100

200

300

400

500

600

700Defects and Tests

Unit Tests

Acceptance Tests

Defects

Page 14: Scaling Agile Hurts by Vibhu Srinivasan

Hurt: Multiple Backlogs0 Priorities handled on

the back end, mid sprint

0 Caused injection of priorities

Many Teams, many backlogs

Page 15: Scaling Agile Hurts by Vibhu Srinivasan

Helped: chief product owner

Page 16: Scaling Agile Hurts by Vibhu Srinivasan

Hypothesis: product definition team

0 A team of product owners, UX, stakeholders, working ahead of the teams, defining and feeding the backlog.

Page 17: Scaling Agile Hurts by Vibhu Srinivasan

Hypothesis: Use one product backlog to reduce pain of multiple backlogs

Page 18: Scaling Agile Hurts by Vibhu Srinivasan

Hurt: Multiple business priorities

0 Caused shifting focus on team.

0 Helped: Vision Statement

Page 19: Scaling Agile Hurts by Vibhu Srinivasan

Hurt: Work inserted in the middle of the sprint

0 Would break the sprint, or cause delays

Page 20: Scaling Agile Hurts by Vibhu Srinivasan

Helped: Synchronizing our sprints

Page 21: Scaling Agile Hurts by Vibhu Srinivasan

Hurt: lack of cross team culture 0 Caused silo effect,

even when teams were feet apart from each other.

0 Helped: X-Team Events: Retrospectives, Lunch, Release Planning, Celebrations.

Team A

rules!

Team B

rules!

Page 22: Scaling Agile Hurts by Vibhu Srinivasan

SwarmingHelped: Collaborative Environment

Page 23: Scaling Agile Hurts by Vibhu Srinivasan

Helped: X-Team Release Planning

Page 24: Scaling Agile Hurts by Vibhu Srinivasan

Helped: Ensuring all customer stakeholders are represented by

Product Owners

Page 25: Scaling Agile Hurts by Vibhu Srinivasan

Hurt: Impediments

0 Hardware Requisition Process

0 Network Issues

0 Team Issues

Page 26: Scaling Agile Hurts by Vibhu Srinivasan

Stop the line

7/18/2010All rights reserved Vibhu Srinivasan

26

Page 27: Scaling Agile Hurts by Vibhu Srinivasan
Page 28: Scaling Agile Hurts by Vibhu Srinivasan

Services are painful to consume

0 Teams are working in silos and when services are built, they are too painful to consume

Service Versioning

Well defined contracts

Service level agreements

Page 29: Scaling Agile Hurts by Vibhu Srinivasan

Lack of design caused too much technical debt

0 Agile Myth = There is no design and architecture in Agile development

0 Going from story to code causes a lot of technical debt

0 UML is not enough to convey details

Page 30: Scaling Agile Hurts by Vibhu Srinivasan

0 Teams are required to white board designs one day after the sprint planning with others

0 Use more spikes to understand a design before it can be used

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

Page 31: Scaling Agile Hurts by Vibhu Srinivasan

UML does not convey the details of the complex models

0 Some services had too many complicated scenarios that could not be communicated easily in pictures.

0 Use Fundamental Modeling Concept ( FMC ) models to convey the overall intent of the system0 Color Coded by Release

linehttp://www.fmc-modeling.org/

0 Invest in a great digital camera and a large whiteboard

SERVICE

Services Architecture

PrivisionCollection

Package services

Goals Accounts

Uniquq Rights

Client Systems

Database

RSERVICE API

R

Manage

CollectionR

Purchase

R

Open

R

Combine/

ConvertR

Unique

R

Use

In

Game

R

View

Administration

RSERVICE API

R

Redeem

R

Escrow

R

Destroy

R

Share

Security

R

Define

R

Package

R

Publish

R

Create

Collation R

Recipe

R

Consume

RLog R

AuditR

Manually

Override

Ownership

RSet

Inventory

Levels

RTrack

Ownership

Patterns

R

Audit

R

Repository

Feed

R

Health

Check

Release Line 1

Release Line 2

Release Line 3

Game

New Game

Game2

Game 3

Game 4

R

Trade

R

Run

Recipe

Page 32: Scaling Agile Hurts by Vibhu Srinivasan

More Engineering Pains0 Common Engineering

Practices Missing

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

0 Duplicated code

0 Customers had a core architecture group that had less and less visibility as the teams grew and this caused unease.

Page 33: Scaling Agile Hurts by Vibhu Srinivasan

One solution to these pains

0 Introduce a cross team architect and embedded agile coach0 A servant thought

leader

0 Mentor and the readily available to pair

0 Shields teams from technical bombshells

0 Active listener and helper

0 Help inject technical stories

Page 34: Scaling Agile Hurts by Vibhu Srinivasan

More People = Less Quality

0 Some teams were reporting lower bugs than others

0 Unit testing was not consistent

0 Acceptance testing was missing

0 Team did not see value in TDD

0 More debates and arguments were leading to unhappy developers

0 Bad smells in code

Page 35: Scaling Agile Hurts by Vibhu Srinivasan

Hurt: Defects slowed velocity

0 Helped: Test Driven Development

0 Hypothesis: TDD reduces defects.

0

100

200

300

400

500

600

700

Defects and Tests

Unit Tests

Acceptance Tests

Defects

Page 36: Scaling Agile Hurts by Vibhu Srinivasan

Better Smells

0 Teams were asked for mandatory testing . They could choose to implement the tests any way they want, but should have unit tests

0 Build systems were made smarter to publish test results

0 Category tags were used to group tests for quicker running.

0 Inject one or two senior developers who knew TDD well in every team- Peer pressure = great code

7/18/2010All Rights Reserved – Vibhu Srinivasan

http;//agilefaq.net 36

Page 37: Scaling Agile Hurts by Vibhu Srinivasan

It works for me syndrome

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

0 Code working on local build fails to integrate

0 Its not easy to deploy the code to customer

Page 38: Scaling Agile Hurts by Vibhu Srinivasan

Solution – Integrated build and deployment strategy

0

Page 39: Scaling Agile Hurts by Vibhu Srinivasan

Odds and Ends

0 Mock objects were mockingly simplistic

0 Acceptance tests if not automated does not provide a whole lot of value

0 MOB Programming helps for cross team communication

0 A team agreement document is a must have tool.

Page 40: Scaling Agile Hurts by Vibhu Srinivasan