40

Scaling Agile Hurts by Vibhu Srinivasan

Embed Size (px)

DESCRIPTION

AgileNCR 2010 conference was held in Gurgaon on 17th & 18th July 2010. This largest community driven conference was the Fourth edition of Agile NCR and was organized in collaboration with ASCI. This time the event was based on four major themes : 'Agile for newbies', ' Agile Adoption Challenges', 'Workshops and Software Craftsmanship', and ' Post Agile'

Citation preview

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