agile adoption: does it have to be all in or fold?agile over three years, one site at a time....
TRANSCRIPT
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
Who I AmWho I Am
“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
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
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
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
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
“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
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
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”
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
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. .
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”?
“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”
“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
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
“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
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
“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
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
““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
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.
“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.
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.
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
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
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
……