agile adoption: does it have to be all in or fold?agile over three years, one site at a time....

37
Agile Adoption: Agile Adoption: Does it have to be All In or Fold? Does it have to be All In or Fold? Rebecca Wirfs Rebecca Wirfs-Brock Brock ©2011 Wirfs ©2011 Wirfs-Brock Associates Brock Associates

Upload: others

Post on 11-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Agile Adoption:Agile Adoption:Does it have to be All In or Fold?Does it have to be All In or Fold?

Rebecca WirfsRebecca Wirfs--BrockBrock

©2011 Wirfs©2011 Wirfs--Brock AssociatesBrock Associates

Page 2: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Who I AmWho I Am

Page 3: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field
Page 4: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

“There Has to Be A Better Way”“There Has to Be A Better Way”Jon Spence, Sr. Principal Engineer and Technical Fellow, Jon Spence, Sr. Principal Engineer and Technical Fellow,

Medtronic, Inc.Medtronic, Inc.

Their software development struggleTheir software development struggle

PlanPlan--driven, waterfalldriven, waterfall--based, documentbased, document--centriccentric

Company believed detailed requirements can be Company believed detailed requirements can be

Agile 2005 Experience Report

Company believed detailed requirements can be Company believed detailed requirements can be

completed before implementing and can be used completed before implementing and can be used

to accurately estimate resources and outcomesto accurately estimate resources and outcomes

But ……SW doesn’t have a neat, clean But ……SW doesn’t have a neat, clean

“manufacturing“manufacturing--like” flowlike” flow

Hard to comprehensively and accurately plan Hard to comprehensively and accurately plan

and document SW years aheadand document SW years ahead

Page 5: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Enter AgileEnter Agile

Invited external outside speakersInvited external outside speakers

Went to conferences, read the “good Went to conferences, read the “good

books”books”books”books”

Learned about extreme programming, Learned about extreme programming,

scrum, and lean software developmentscrum, and lean software development

Recognized potential to leverage several Recognized potential to leverage several

practicespractices

Page 6: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Who’s Responsible for Change?Who’s Responsible for Change?

Jon pledged to colleagues that he was Jon pledged to colleagues that he was

“putting all my chips in the game” to “putting all my chips in the game” to

influence others to try agile on a mainline influence others to try agile on a mainline

product development effort.product development effort.product development effort.product development effort.

He had allies: Department Director, He had allies: Department Director,

Mainline Product Development Manager, Mainline Product Development Manager,

the Process Architect, key Developersthe Process Architect, key Developers

Page 7: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Their Initial ProposalTheir Initial Proposal

Process ownership: team owns, Process ownership: team owns,

management defersmanagement defers

Process discipline: rigid Process discipline: rigid

adherence to team’s processadherence to team’s process

Small teams: 4Small teams: 4--6 person feature 6 person feature

area area subteamssubteams

Simple design: Don’t speculateSimple design: Don’t speculate

TestTest--first for new or changed nonfirst for new or changed non--

trivial, non GUI codetrivial, non GUI code

Continuous Integration: daily build, Continuous Integration: daily build,

automated regression testsautomated regression tests

Drawn from extreme programming and scrum

area area subteamssubteams

Customer: Project manager + sys Customer: Project manager + sys

engineersengineers

Daily meetings: short, barrier ID, Daily meetings: short, barrier ID,

refocus, synchrefocus, synch

2 week increments2 week increments

Reflection: At end of each Reflection: At end of each

incrementincrement

Collective code ownership: eliminate Collective code ownership: eliminate

ownership bottlenecksownership bottlenecks

Refactoring: To maintain simple Refactoring: To maintain simple

design, if supported by unit testsdesign, if supported by unit tests

Pair programming on new, nonPair programming on new, non--

trivial codetrivial code

CoCo--located teams: dev lab per located teams: dev lab per

feature areafeature area

Page 8: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Their ApproachTheir Approach::Empirical AdoptionEmpirical Adoption

Try Try �� Inspect Inspect �� Adapt Adapt �� TryTry

Changes:Changes:

Team size: From12 to 4Team size: From12 to 4--66

Customer: Originally had project mgr. Now systems Customer: Originally had project mgr. Now systems

engineers interact with project mgr.engineers interact with project mgr.

Planning: Originally all teams planned Planning: Originally all teams planned

independently. Now: teams meet for goal setting, independently. Now: teams meet for goal setting,

then plan individually, then reconvene as whole then plan individually, then reconvene as whole

group to share goals/discuss dependenciesgroup to share goals/discuss dependencies

Product backlog: Entire backlog visible to dev teams Product backlog: Entire backlog visible to dev teams

to avoid local subto avoid local sub--optimizationsoptimizations

Page 9: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field
Page 10: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

“A Tale of Two Writing Teams”“A Tale of Two Writing Teams”StaciaStacia Broderick and Melody LockeBroderick and Melody Locke

Company XCompany X

Project manager for Project manager for

BMC SoftwareBMC Software

Lead writer producing Lead writer producing Project manager for Project manager for

85 person software 85 person software

dev team during dev team during

transition to Scrumtransition to Scrum

Moved into Moved into

consultingconsulting

Consulted at BMCConsulted at BMC

Lead writer producing Lead writer producing

online and hardcopy online and hardcopy

docs for 5 timesdocs for 5 times

Worked with several dev Worked with several dev

teams who produced teams who produced

integrated productintegrated product

Page 11: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Company X’s StoryCompany X’s Story

BeginningsBeginnings

85 person project. Cross85 person project. Cross--functional teams functional teams

delivering functionality to the same code base. 5 delivering functionality to the same code base. 5

writers.writers.

Writers’ lives preWriters’ lives pre--agile:agile:

“marred with negativity and path“marred with negativity and path--ofof--leastleast--

resistance existence”resistance existence”

Documentation an afterthoughtDocumentation an afterthought

Releases usually delayed to document late Releases usually delayed to document late

featuresfeatures

Page 12: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Company X’s Move to AgileCompany X’s Move to Agile10 Scrum team. Each writer assigned to two different Scrum teams10 Scrum team. Each writer assigned to two different Scrum teams

2 daily stand ups, new online help system, lots of new 2 daily stand ups, new online help system, lots of new

technology and toolstechnology and tools

First 3 sprints teams demoed online help with product featuresFirst 3 sprints teams demoed online help with product features

After three months, several teams coAfter three months, several teams co--located to practice XPlocated to practice XP

Everyone enthusiastic except writersEveryone enthusiastic except writersEveryone enthusiastic except writersEveryone enthusiastic except writers

Writers tasks switched to updating legacy code docs…and the Writers tasks switched to updating legacy code docs…and the

writing team reverted to former practiceswriting team reverted to former practices

Writer’s eventually reformed their own groupWriter’s eventually reformed their own group

Own task backlogOwn task backlog

One iteration behind code developmentOne iteration behind code development

“Functional team cohesion over whole team discomfort”“Functional team cohesion over whole team discomfort”

Page 13: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

BMC’s Story…BeginningsBMC’s Story…Beginnings

Development VP announced Scrum for a flagship Development VP announced Scrum for a flagship

productproduct

Five teams: 14 QA, 35 developers, 2 lead writersFive teams: 14 QA, 35 developers, 2 lead writers

Layoffs and reorganizations occurred early in projectLayoffs and reorganizations occurred early in projectLayoffs and reorganizations occurred early in projectLayoffs and reorganizations occurred early in project

Writers a scarce resourceWriters a scarce resource

Lead writer attending 5 daily Scrum meetingsLead writer attending 5 daily Scrum meetings

Time fragmentedTime fragmented

Early meetings focused on dev tasks not QA or docsEarly meetings focused on dev tasks not QA or docs

Retrospectives led to changeRetrospectives led to change

Page 14: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

BMC ActionsBMC Actions

Documentation as a feature.Documentation as a feature.

“Overhead” added to other tasks“Overhead” added to other tasks

Story cards and tasks for hardcopy. HelpStory cards and tasks for hardcopy. Help--related related tasks added to development story cards.tasks added to development story cards.

Editorial process made more agile.Editorial process made more agile.

PrePre--planning gave writers a chance to see the planning gave writers a chance to see the territory ahead.territory ahead.

Results: QA and writers still not working at a Results: QA and writers still not working at a sustainable pace. Hardcopy docs have a slight lag. sustainable pace. Hardcopy docs have a slight lag. Online docs track dev scheduleOnline docs track dev schedule. .

Page 15: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

It’s Not Easy…It’s Not Easy…

What’s tracked on the What’s tracked on the

backlog?backlog?

What does “done” mean?What does “done” mean?

Should writers use product Should writers use product Should writers use product Should writers use product

“hardening” time to “hardening” time to

finish?finish?

Limited interactions Limited interactions

means nonmeans non--code code

deliverables can lag.deliverables can lag.

Work outside or alongside Work outside or alongside

the “whole team”?the “whole team”?

Page 16: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field
Page 17: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field
Page 18: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field
Page 19: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field
Page 20: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field
Page 21: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

“Enterprise Agile Transformation: “Enterprise Agile Transformation:

The TwoThe Two--Year Wall”Year Wall”Chuck Maples, BorlandChuck Maples, Borland

Plan to convert most of development organization to Plan to convert most of development organization to agile over three years, one site at a time.agile over three years, one site at a time.

AhasAhas!!

Once dev teams became productive, feature requests Once dev teams became productive, feature requests flooded in from the field.flooded in from the field.flooded in from the field.flooded in from the field.

Need for sophisticated “enterprise testing” strategy and Need for sophisticated “enterprise testing” strategy and tactics.tactics.

Scripts generated by sprint teams, handed off to Scripts generated by sprint teams, handed off to central testing.central testing.

Need to commit to certain features at a certain date, Need to commit to certain features at a certain date, with more always possible.with more always possible.

“Reality on the ground”“Reality on the ground”

Page 22: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

“Ongoing Quality Improvement or: “Ongoing Quality Improvement or:

How We All Learned To Trust XP”How We All Learned To Trust XP”Mark Mark StriebeckStriebeck, VA Software, VA Software

SourceForgeSourceForge Enterprise Edition reEnterprise Edition re--writewrite

Developed automated acceptance/system testsDeveloped automated acceptance/system tests

Constantly test application on multiple platformsConstantly test application on multiple platforms

Complete system test takes 7 hoursComplete system test takes 7 hours——so can’t be run so can’t be run

immediately against the buildimmediately against the build

Define significant subset that “almost” guarantees good buildDefine significant subset that “almost” guarantees good build

Two dev test rhythms…build tests and thorough system tests Two dev test rhythms…build tests and thorough system tests

Page 23: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Shifting Rhythms After Shifting Rhythms After

Demonstrated ResultsDemonstrated Results

Initially QA only tested after code freeze.Initially QA only tested after code freeze.

Both manually executed and automated test Both manually executed and automated test

scripts.scripts.scripts.scripts.

After quality was demonstrated in first release… After quality was demonstrated in first release…

QA got on boardQA got on board

Now part of initial planningNow part of initial planning

QA starts when development doesQA starts when development does

Teams still separate, but communicateTeams still separate, but communicate

Page 24: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

“Case Study of Customer Input “Case Study of Customer Input

for a Successful Product”for a Successful Product”Lynn Miller, Director of UI Development, Alias Lynn Miller, Director of UI Development, Alias

The products: 3D software for design, game The products: 3D software for design, game

creation, and graphical special effectscreation, and graphical special effects

The structure: Usability engineering is part of the The structure: Usability engineering is part of the

product development groupproduct development groupproduct development groupproduct development group

The process: Each interaction designer is assigned The process: Each interaction designer is assigned

to a single product at a timeto a single product at a time

The scope of work: Each interaction designer is The scope of work: Each interaction designer is

responsible for market research, gathering user responsible for market research, gathering user

requirements, interface design, and usability testingrequirements, interface design, and usability testing

Page 25: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Dual TracksDual Tracks

Planning

Data

Gathering

Independent

dev of low

UI features

Implement

Designs

Implement

Designs Developers

code code

Gathering

Design for

cycle 2

Gather

customer

input for

cycle 3

Test cycle 1

code

Design for

cycle 3

Gather input

for cycle 4

Test cycle 2

code

Design for

cycle 4

Gather input

for cycle 5

Cycle 0

Cycle 1 Cycle 2 Cycle 3

Interaction

Designersdesign design

customer

datacustomer

data

Page 26: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field
Page 27: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

“Introducing Agile Development “Introducing Agile Development

into Bioinformatics”into Bioinformatics”David Kane, SRA InternationalDavid Kane, SRA International

Visualization tool for National Cancer Visualization tool for National Cancer Institute scientistsInstitute scientists

Dynamic requirementsDynamic requirementsDynamic requirementsDynamic requirements

Exploring scientific researchExploring scientific research

New tool requirements constantly New tool requirements constantly emergingemerging

Results and tools published in scientific Results and tools published in scientific publicationspublications

Page 28: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Agile Practices and DependenciesAgile Practices and Dependencies

On-site

customer

Open

workspace

Configuration

MgmtAutomated

Builds

Coding

Standards

Automate

dCollective

Ownership

Time

start

Standardsd

TestsOwnership

Planning

Game

SCRUM

Meetings

Continuous

IntegrationPair

Pgmming

Code

Reviews

Refact

oring

Incrementally added over 16 months

Page 29: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field
Page 30: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

““SubclassingSubclassing XP: Breaking its XP: Breaking its

rules the right way”rules the right way”Greg LuckGreg Luck

Removed authority for some refactoring from Removed authority for some refactoring from individual developers or pairs to the team.individual developers or pairs to the team.

Two refactorings types: Two refactorings types:

Refactoring to fit in code for a new story. Refactoring to fit in code for a new story. Refactoring to fit in code for a new story. Refactoring to fit in code for a new story. Minor and narrow in scope.Minor and narrow in scope.

Refactoring that effects a design change, or Refactoring that effects a design change, or affects threading code. Usually major impact affects threading code. Usually major impact and wide in scope.and wide in scope.

Refactoring replaced with Team RefactoringRefactoring replaced with Team Refactoring

Page 31: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Team RefactoringsTeam Refactorings

Refactoring list maintained on JIRA.Refactoring list maintained on JIRA.

The team evaluates suggested refactorings The team evaluates suggested refactorings

and ranks them in priority order. Design and ranks them in priority order. Design and ranks them in priority order. Design and ranks them in priority order. Design

and risks considered.and risks considered.

Refactoring task done at the end of the Refactoring task done at the end of the

iteration, when a developer has completed iteration, when a developer has completed

all user stories, provided someone else all user stories, provided someone else

does not need a hand.does not need a hand.

Page 32: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

“The Bold New Extreme Programming “The Bold New Extreme Programming

Experiment Experiment –– Now in Its Ninth Year”Now in Its Ninth Year”Brian Spears, Follett Software Brian Spears, Follett Software

NonNon--standard XPstandard XP

No story cards. Now stories that contain use cases with No story cards. Now stories that contain use cases with sample screen shots.sample screen shots.

Far less than a detailed requirements documentFar less than a detailed requirements document

Business Analysts “own” consistency of look and feelBusiness Analysts “own” consistency of look and feel

Sometimes effort is wastedSometimes effort is wasted

Running tests against the databasesRunning tests against the databases

Not everyone is a generalist. But they try not to depend on Not everyone is a generalist. But they try not to depend on a single expert.a single expert.

Added Story ChampionsAdded Story Champions-- Dev and tester to fit story into Dev and tester to fit story into current design and break into tasks.current design and break into tasks.

Page 33: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Agile 2011 NewsflashAgile 2011 Newsflash

Trend: Agile + Lean/Trend: Agile + Lean/KanbanKanban

“Agile & “Agile & KanbanKanban in Coordination”in Coordination”——Ryan Polk, WMS Gaming Inc.Ryan Polk, WMS Gaming Inc.

“Breaking the Rules to Increase Customer Satisfaction”“Breaking the Rules to Increase Customer Satisfaction”——Mike Prior, Mike Prior,

SumTotalSumTotal Systems, Inc.Systems, Inc.

Page 34: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field
Page 35: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Keep it FreshKeep it Fresh

“If you are doing XP and your “If you are doing XP and your

process is exactly the same as it was a process is exactly the same as it was a

year ago, you probably aren’t as agile year ago, you probably aren’t as agile year ago, you probably aren’t as agile year ago, you probably aren’t as agile

as you were a year ago.”as you were a year ago.”——Brian Brian

FosterFoster

Page 36: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Connect to Corporate ValuesConnect to Corporate Values

“Our entire corporation is strongly connected to its “Our entire corporation is strongly connected to its

mission statement and the principles that derive from it, mission statement and the principles that derive from it,

so we emphasize Agile principles that supported that so we emphasize Agile principles that supported that

mission.” mission.” ——Kelly Kelly WeyrauchWeyrauch, , MedtronicsMedtronics

“To strive with reserve for the greatest possible “To strive with reserve for the greatest possible

reliability and quality in our products” reliability and quality in our products” �� Inspect Inspect

and adapt, testand adapt, test--driven design, customer focusdriven design, customer focus

“To recognize the personal worth of employees…” “To recognize the personal worth of employees…”

�� Process transparency, collaboration, reflections, Process transparency, collaboration, reflections,

coco--locationlocation

Page 37: Agile Adoption: Does It Have to Be All In or Fold?agile over three years, one site at a time. AhasAhas!! Once dev teams became productive, feature requests flooded in from the field

Reinforce What You ValueReinforce What You Value

Team review Team review of major code changesof major code changes

Pair of eyes Pair of eyes on all code checked in at “final fix”on all code checked in at “final fix”

EndEnd--toto--end testing end testing of database transactionsof database transactionsEndEnd--toto--end testing end testing of database transactionsof database transactions

Realistic tests Realistic tests with with different test rhythms different test rhythms (build (build

and overnight)and overnight)

Adding Adding KanbanKanban to improve flowto improve flow

……