extreme programming and scrum - getting started with agile software development kyle r. larson...
TRANSCRIPT
Extreme Extreme Programming and Programming and Scrum - Getting Scrum - Getting Started with Agile Started with Agile Software Software DevelopmentDevelopment
Kyle R. [email protected]
Advanced Technologies Integration, Inc.www.atico.com
AgendaAgenda
The Development ProblemThe Development Problem
Successful Models and Successful Models and MethodsMethods
Agile Project Management Agile Project Management
ScrumScrum
Extreme ProgrammingExtreme Programming
How to Get StartedHow to Get Started
The Problem: The Chaos The Problem: The Chaos ReportReport
Started in 1994, studied over Started in 1994, studied over 35,000 application development 35,000 application development projectsprojects
In 2000: In 2000:
Source: Standish “Chaos” Report, Jim Johnson lecture at XP2002 conference, Source: Standish “Chaos” Report, Jim Johnson lecture at XP2002 conference, http://www.xp2003.org/xp2002/talksinfo/johnson.pdfhttp://www.xp2003.org/xp2002/talksinfo/johnson.pdf
What is Needed: DuPont What is Needed: DuPont StudyStudy
25% of features are needed25% of features are needed
75% of features are “nice to have” 75% of features are “nice to have”
Source: Jim Johnson lecture at XP2003 conference, Source: Jim Johnson lecture at XP2003 conference, http://www.xp2003.org/xp2002/talksinfo/johnson.pdfhttp://www.xp2003.org/xp2002/talksinfo/johnson.pdf
Lifecycle CostsLifecycle Costs
Up to 80% of software lifecycle cost, Up to 80% of software lifecycle cost, the total cost of ownership (TCO), is the total cost of ownership (TCO), is in in maintenance, maintenance, not first not first developmentdevelopment
Focusing on “abilities” is critical to Focusing on “abilities” is critical to ROI:ROI:
maintainability, extensibility, maintainability, extensibility, adaptability, scalability, and most adaptability, scalability, and most importantly importantly understandability understandability (usability, readability, testability)(usability, readability, testability)
AgendaAgenda
The Development ProblemThe Development Problem
Successful Models and Successful Models and MethodsMethods
Agile Project Management Agile Project Management
ScrumScrum
Extreme ProgrammingExtreme Programming
How to Get StartedHow to Get Started
Agile MethodsAgile Methods
Extreme ProgrammingExtreme Programming (XP) (Kent (XP) (Kent Beck, Ward Cunningham, Ron Beck, Ward Cunningham, Ron Jeffries)Jeffries)
ScrumScrum (Jeff Sutherland, Mike Beedle, (Jeff Sutherland, Mike Beedle, Ken Schwaber)Ken Schwaber)
DSDMDSDM – Dynamic Systems – Dynamic Systems Development Method (Community Development Method (Community owned)owned)
CrystalCrystal (Alistair Cockburn) (Alistair Cockburn)
ASDASD – Adaptive Software – Adaptive Software Development (Jim Highsmith)Development (Jim Highsmith)
XBreedXBreed (Mike Beedle) (Mike Beedle)
All Agile MethodsAll Agile Methods
Maximize value by minimizing Maximize value by minimizing anything that does not directly anything that does not directly contribute to product development contribute to product development and delivery of customer value and delivery of customer value
Respond to change by inspecting Respond to change by inspecting and adaptingand adapting
Stress evolutionary, incremental Stress evolutionary, incremental developmentdevelopment
Build on success, not hope Build on success, not hope
We’ve Seen It BeforeWe’ve Seen It Before
Lean Manufacturing (1990, Toyota)Lean Manufacturing (1990, Toyota)
Agile Manufacturing Agile Manufacturing
Just-in-time JITJust-in-time JIT
Common goals include:Common goals include:
Reduce Cycle TimeReduce Cycle Time
Maximize QualityMaximize Quality
Reduce CostsReduce Costs
LeanLean
Lean means Lean means prioritize and optimize prioritize and optimize everything to deliver value to the everything to deliver value to the customercustomer
One common technique: One common technique: Postpone Postpone decisions until the last decisions until the last responsible momentresponsible moment. Live with . Live with uncertainty but define, communicate, uncertainty but define, communicate, and manage itand manage it Lean Manufacturing and the Toyota Production System, SAE Lean Manufacturing and the Toyota Production System, SAE InternationalInternational
Lean Software Development: An Agile Lean Software Development: An Agile ToolkitToolkit, Mary & Tom Poppendieck, , Mary & Tom Poppendieck, 20032003
ScrumScrum
Term in rugby to get an Term in rugby to get an out-of-play ball back into out-of-play ball back into playplay
Term used in Japan in Term used in Japan in 1987 to describe hyper-1987 to describe hyper-productive developmentproductive development
Used by Ken Schwaber Used by Ken Schwaber and Mike Beedle to and Mike Beedle to describe their Agile describe their Agile methodologymethodology
Extreme ProgrammingExtreme Programming
A collection of best A collection of best practices – each done to practices – each done to the “extreme”the “extreme”
Sounds extreme, but Sounds extreme, but very disciplinedvery disciplined
Created by Kent Beck, Created by Kent Beck, Ward Cunningham, Ron Ward Cunningham, Ron Jeffries Jeffries
Scrum with Extreme Scrum with Extreme ProgrammingProgramming
EXTREMEPROGRAMMINGMostly Technical
Best Practices
SCRUMProject Management
Best Practices
Scrum works well as a wrapper around Extreme Programming
Agile IndependenceAgile IndependenceNot created by any single company, Not created by any single company, but by a group of software industry but by a group of software industry experts to find “better ways of experts to find “better ways of developing software by doing it and developing software by doing it and helping others do it.”*helping others do it.”*Agile Principles:Agile Principles:
highest priority is customer satisfactionhighest priority is customer satisfactionwelcomes changing requirementswelcomes changing requirementsfrequently deliver working softwarefrequently deliver working softwareadvocates close collaboration and rapid advocates close collaboration and rapid feedbackfeedbackreinforces “inspect and adapt”reinforces “inspect and adapt”
* * www.agilealliance.org
AgendaAgenda
The Development ProblemThe Development Problem
Successful Models and Successful Models and MethodsMethods
Agile Project ManagementAgile Project Managementskippedskipped
ScrumScrumskippedskipped
Extreme Programming (slide Extreme Programming (slide 33)33)
How to Get StartedHow to Get Started
Key PM DifferenceKey PM Difference
Defined Project ManagementDefined Project Managementvs.vs.
Empirical Project ManagementEmpirical Project Management
Defined PMDefined PMAssumes we can predictAssumes we can predict how the how the project will unfold – project will unfold – assumes very assumes very little uncertaintylittle uncertainty
Time to complete and costs Time to complete and costs predictablepredictable
Uses work breakdown structureUses work breakdown structure
Manages to a static planManages to a static plan
Primary participants: development Primary participants: development teamteam
Success; Success; On Time & On BudgetOn Time & On Budget
Empirical PMEmpirical PM
Software and systems construction Software and systems construction is a discovery processis a discovery process – – manages uncertaintymanages uncertainty
Focuses on value/cost tradeoffsFocuses on value/cost tradeoffs
Plan is volatile; use discoveries to Plan is volatile; use discoveries to reprioritize and adjustreprioritize and adjust
Primary participants: project Primary participants: project steering teamsteering team
Success; Success; DeliveringDelivering good value good value in reasonable timein reasonable time
PM End-GamePM End-Game
Almost all projects eventually revert to Almost all projects eventually revert to empirical PMempirical PM
Both Are NeededBoth Are Needed
Defined PM works because many things Defined PM works because many things in a project in a project areare deterministic. deterministic.
Defined model provides constraints:Defined model provides constraints:““deliver not the best solution, but the best deliver not the best solution, but the best we can afford”we can afford”
Defined Empirical
Entire Project
Empirical PM StrategyEmpirical PM Strategy
Early estimates of cost and value, Early estimates of cost and value, tied to business processestied to business processes
Deliver subsets of functionality Deliver subsets of functionality prioritized by business valueprioritized by business value
Reassess and re-plan to fit Reassess and re-plan to fit resources, resources, schedule, and discoveriesschedule, and discoveries
Best-Practice Best-Practice Scheduling/TrackingScheduling/Tracking
Align accountability with Align accountability with responsibilityresponsibility
Those who will produce the work, Those who will produce the work, estimate the workestimate the work
Measure one level upMeasure one level up
Keep estimation techniques Keep estimation techniques simple, consistent, and believablesimple, consistent, and believable
Generate, own, and use your own Generate, own, and use your own datadata
Empirical PM – Getting Empirical PM – Getting StartedStarted
Early estimates, for mgmt to Early estimates, for mgmt to prioritizeprioritize
Structure more important than Structure more important than accuracyaccuracy
Sets confidence/predictability Sets confidence/predictability expectationsexpectations
Begins tone of “inspect and adapt”Begins tone of “inspect and adapt”
How system delivers value is as How system delivers value is as important as what it costs important as what it costs
Planning in UncertaintyPlanning in Uncertainty
In list of business use cases leave In list of business use cases leave rows for “undiscovered process”rows for “undiscovered process”
In list of system use cases leave In list of system use cases leave rows for “undiscovered use case”rows for “undiscovered use case”
In supplementary requirements In supplementary requirements section leave rows for unknown section leave rows for unknown requirementsrequirements
Budget for technical solutions to be Budget for technical solutions to be more complex than originally more complex than originally anticipatedanticipated
Agile PM ConceptsAgile PM Concepts
Software construction is a Software construction is a discovery processdiscovery process
Not the best solution; the Not the best solution; the affordable solutionaffordable solution
Invent successful outcomesInvent successful outcomes
AgendaAgenda
The Development ProblemThe Development Problem
Successful Models and Successful Models and MethodsMethods
Agile Project Management Agile Project Management
ScrumScrum
Extreme ProgrammingExtreme Programming
How to Get StartedHow to Get Started
Scrum OverviewScrum Overview
Empirical management and control Empirical management and control process for projects and productsprocess for projects and products
Widely used since 1990’sWidely used since 1990’s
Wraps existing engineering Wraps existing engineering practicespractices
Manages noise, allows overhead to Manages noise, allows overhead to witherwither
Simple, common senseSimple, common sense
Delivers business functionality in 30 Delivers business functionality in 30 daysdays
ScalableScalable
Scrum Scheduling and Scrum Scheduling and TrackingTracking
Scrum RolesScrum Roles
Product OwnerProduct Owner
TeamTeam
Scrum MasterScrum Master
Scrum Roles – Product Scrum Roles – Product OwnerOwner
Single person who owns, maintains, Single person who owns, maintains, prioritizes Product Backlogprioritizes Product Backlog
Empowered to make decisions for Empowered to make decisions for customers and userscustomers and users
Responsible for vision, ROI, and Responsible for vision, ROI, and releases of productreleases of product
Attends Sprint planning and Sprint Attends Sprint planning and Sprint review meetingsreview meetings
Scrum Roles - TeamScrum Roles - Team
Self-organizing, cross-functional, no Self-organizing, cross-functional, no formal rolesformal roles
Seven plus or minus two peopleSeven plus or minus two people Best experts availableBest experts available Cost and commit to work, and Cost and commit to work, and
responsible for delivering responsible for delivering Full autonomy and authority to Full autonomy and authority to
deliver during Sprintdeliver during Sprint
Scrum Roles – Scrum Scrum Roles – Scrum MasterMaster Project manager, Coach, and/or Project manager, Coach, and/or
Player-CoachPlayer-Coach Responsible for process and Responsible for process and
maximizing team productivitymaximizing team productivity Sets up and conducts meetingsSets up and conducts meetings
Sprint PlanningSprint Planning Daily “Scrum”Daily “Scrum” Sprint ReleaseSprint Release
AgendaAgenda
The Development ProblemThe Development Problem Successful Models and Successful Models and
MethodsMethods Agile Project Management Agile Project Management ScrumScrum Extreme ProgrammingExtreme Programming How to Get StartedHow to Get Started
XP DefinitionsXP Definitions
Kent Beck’s idea of turning the knobs on Kent Beck’s idea of turning the knobs on all the best practices up to 10.all the best practices up to 10.
Optimizing the “Circle of Life” by hitting Optimizing the “Circle of Life” by hitting the sweet-spot of practices that self-the sweet-spot of practices that self-reinforce and become more than the sum reinforce and become more than the sum of the parts (synergize).of the parts (synergize).
DevelopersEstimate Cost
DevelopersBuild Value
Customer Defines Value
Customer Chooses Value
24
1
3
XP Circle of LifeXP Circle of Life
Cost-of-Change CurvesCost-of-Change Curves
Flattening cost of change curve is both enabled by and exploited by Extreme Programming (XP)
The Four XP ValuesThe Four XP Values
SimplicitySimplicity Simplest thing that Simplest thing that
could possibly workcould possibly work YAGNI: YAGNI: you aren’t going to you aren’t going to
need itneed it
CommunicatiCommunicationon
DevelopersDevelopers UsersUsers CustomersCustomers TestersTesters CodeCode
FeedbackFeedback TestingTesting ExperimentingExperimenting DeliveringDelivering
CourageCourage TrustTrust HistoryHistory
The Four XP VariablesThe Four XP Variables
QualityQuality Internal high, Internal high,
fixedfixed CostCost
People-TimePeople-Time Mythical Man-Mythical Man-
Month (F. Month (F. Brooks)Brooks)
ScheduleSchedule Fixed-Fixed-
length, length, short short iterationsiterations
ScopeScope NegotiableNegotiable
Twelve XP PracticesTwelve XP Practices
7.7. Collective Collective OwnershipOwnership
8.8. Continuous Continuous IntegrationIntegration
9.9. On-site CustomerOn-site Customer
10.10. Sustainable PaceSustainable Pace
11.11. MetaphorMetaphor
12.12. Coding StandardsCoding Standards
1.1. Planning GamePlanning Game
2.2. Short ReleasesShort Releases
3.3. Simple DesignSimple Design
4.4. TestingTesting
5.5. RefactoringRefactoring
6.6. Pair Pair ProgrammingProgramming
1. Planning Game1. Planning Game
Release Planning: Define and Release Planning: Define and estimate higher-level features down estimate higher-level features down to about 5-10 days effort each. to about 5-10 days effort each. Customer lays features in fixed-Customer lays features in fixed-length iteration schedule.length iteration schedule.
Iteration Planning: Same, but to 3 or Iteration Planning: Same, but to 3 or less days effort & detailed story less days effort & detailed story cards within next iteration.cards within next iteration.
Simple to steer project towards Simple to steer project towards success.success.
2. Short Releases2. Short Releases
Deliver business value early and Deliver business value early and often often
Do not slip iteration release dates Do not slip iteration release dates adjust scope within an iteration, never adjust scope within an iteration, never
time or qualitytime or quality Small, stable teams are predictable Small, stable teams are predictable
in short time-framesin short time-frames
3. Simple Design3. Simple Design
XP Mantra: “The simplest thing that XP Mantra: “The simplest thing that could could possiblypossibly work”. work”.
Meet current, minimum business Meet current, minimum business requirements only. Avoid requirements only. Avoid anticipatory design.anticipatory design.
YAGNI – You Aren’t Going to Need ItYAGNI – You Aren’t Going to Need It
4. Testing4. Testing
Automated unit tests for every Automated unit tests for every entity.entity.
Automated acceptance tests for Automated acceptance tests for every story / requirement.every story / requirement.
All unit tests pass 100% before All unit tests pass 100% before checking in a feature.checking in a feature.
Test-First, in small increments: Test-First, in small increments: 1.1. Write the testWrite the test
2.2. Prove it fails (red-bar) Prove it fails (red-bar)
3.3. Code until it passes (green-bar)Code until it passes (green-bar)
5. Refactoring5. Refactoring
Refactoring: changing internal Refactoring: changing internal structure without changing external structure without changing external behaviorbehavior
Remove duplication. “Once and Remove duplication. “Once and Only Once”, “Three strikes and your Only Once”, “Three strikes and your out”.out”.
Leaves code in simplest form.Leaves code in simplest form. When change is hard, refactor to When change is hard, refactor to
allow change to be easy, testing as allow change to be easy, testing as you go, then add change.you go, then add change.
6. Pair Programming6. Pair Programming
Two heads are better than one, Two heads are better than one, especially in an open lab especially in an open lab environment (colocation)environment (colocation)
Earliest possible code inspectionsEarliest possible code inspections Earliest possible brainstormingEarliest possible brainstorming Better quality at lower costBetter quality at lower cost Driver/NavigatorDriver/Navigator Peer pressure reinforces disciplinePeer pressure reinforces discipline
7. Collective Ownership7. Collective Ownership
Interchangeable programmersInterchangeable programmers Team can go at full speedTeam can go at full speed Can change anything, anytime, Can change anything, anytime,
without delaywithout delay
8. Continuous Integration8. Continuous Integration
Avoids “versionitis” by keeping Avoids “versionitis” by keeping all the programmers on the all the programmers on the same pagesame page
Integration problems smaller, Integration problems smaller, taken one at a timetaken one at a time
Eliminates traditional, high-risk Eliminates traditional, high-risk integration phaseintegration phase
9. On-site Customer9. On-site Customer
Customer/User liaisons are team-Customer/User liaisons are team-membersmembers
Available for priorities, Available for priorities, clarifications, to answer detailed clarifications, to answer detailed questionsquestions
Reduces programmer Reduces programmer assumptions about business valueassumptions about business value
Shows stakeholders what they Shows stakeholders what they pay for, and whypay for, and why
10. Sustainable Pace10. Sustainable Pace
Tired programmers make more Tired programmers make more mistakesmistakes
Better to stay fresh, healthy, Better to stay fresh, healthy, positive, and effectivepositive, and effective
XP is for the average programmer, XP is for the average programmer, for the long runfor the long run
11. Metaphor11. Metaphor
Use a “system of names”Use a “system of names” Use a common system Use a common system
descriptiondescription Helps communicate with Helps communicate with
customers, users, stakeholders, customers, users, stakeholders, and programmersand programmers
12. Coding Standards12. Coding Standards
All programmers write the same All programmers write the same wayway
Rules for how things Rules for how things communicate with each othercommunicate with each other
Guidelines for what and how to Guidelines for what and how to documentdocument
XP Practices Support Each XP Practices Support Each OtherOther
On-site Customer Planning game
40 Hour Week
Metaphor
RefactoringSimple Design
Short Releases
TestingPair Programming
Collective Ownership
Coding Standards
Continuous Integration
Source: Beck, Extreme Programming Explained: Embrace Change, 1999
AgendaAgenda
The Development ProblemThe Development Problem Successful Models and Successful Models and
MethodsMethods Agile Project Management Agile Project Management ScrumScrum Extreme ProgrammingExtreme Programming How to Get StartedHow to Get Started
Practices to Start WithPractices to Start With
Talking to, instead of about, people, in Talking to, instead of about, people, in their language, considering their their language, considering their perspectiveperspective Customer, developer, mgmt., Q/A, user, Customer, developer, mgmt., Q/A, user,
finance, marketing, sponsorfinance, marketing, sponsor Frequent Integration (Config. Mgmt., Frequent Integration (Config. Mgmt.,
Check-in > daily)Check-in > daily) Testing (Unit, Integration, System, Testing (Unit, Integration, System,
Feature)Feature) Release Management (build-box, Release Management (build-box,
sandboxes, labeled releases, sandboxes, labeled releases, migrations)migrations)
See www.balancedagility.comSee www.balancedagility.com
How to ExploreHow to Explore
WebWeb Agile Alliance: Agile Alliance:
www.agilealliance.orgwww.agilealliance.org
Scrum: Scrum: www.controlchaos.comwww.controlchaos.com
Don Well’s XP Introduction:Don Well’s XP Introduction:Extreme Programming:Extreme Programming: A Gentle A Gentle IntroductionIntroduction www.extremeprogramming.orgwww.extremeprogramming.org
How Not to Get How Not to Get StartedStarted
1.1. Read someRead some
2.2. Discuss someDiscuss some
3.3. Start an approach without advice from Start an approach without advice from those with previous experiencethose with previous experience
4.4. Draw conclusions from experienceDraw conclusions from experience Can work this way, but its risky Can work this way, but its risky Often fails to define and leverage Often fails to define and leverage
success criteria. Often unrealistic success criteria. Often unrealistic expectations.expectations.
Inexperience decreases chances of Inexperience decreases chances of successsuccess
How Best to Get How Best to Get StartedStarted Get help from experienced people for:Get help from experienced people for:
Readiness assessmentsReadiness assessments Approach selectionApproach selection
Pilot / skunkworks vs. changing existing Pilot / skunkworks vs. changing existing processprocess
Mission-critical vs. stand-aloneMission-critical vs. stand-alone Selective best practices vs. Selective best practices vs.
complementary set vs. all best practicescomplementary set vs. all best practices Measurement and success criteriaMeasurement and success criteria Identifying and delivering targeted training, Identifying and delivering targeted training,
mentoring, coaching, project management / mentoring, coaching, project management / stewardshipstewardship
Agile Best Practice Agile Best Practice AdaptationsAdaptations
How long should iterations and releases How long should iterations and releases be?be?
How does development work with QA?How does development work with QA? How do our stakeholders work with How do our stakeholders work with
multiple customers?multiple customers? How should our teams be structured?How should our teams be structured? How do we work with regulatory agencies?How do we work with regulatory agencies? How does this work with legacy systems?How does this work with legacy systems? How does this work with Use Cases and How does this work with Use Cases and
RUP?RUP? How do we ensure architectural vision and How do we ensure architectural vision and
usage.usage.
Agile SummaryAgile Summary
Agile = try, inspect, adapt, repeatAgile = try, inspect, adapt, repeat Highly focused, empowered teamsHighly focused, empowered teams Collaborate with all stakeholdersCollaborate with all stakeholders Optimize and automate feedbackOptimize and automate feedback Deliver real value early and oftenDeliver real value early and often Use feedback to evaluate, ruthlessly Use feedback to evaluate, ruthlessly
prioritize, and re-planprioritize, and re-plan Delivers high quality, ensures Delivers high quality, ensures
flexibilityflexibility Evaluate business value of Evaluate business value of
everythingeverything
Agile FutureAgile Future
Agile in most dev. orgs, in few IT Agile in most dev. orgs, in few IT orgs.orgs.
Agile is here to stay, past early Agile is here to stay, past early adopters, into early majorityadopters, into early majority
““Agile” is loosing meaningAgile” is loosing meaning XP is developer-focused, now Q/A XP is developer-focused, now Q/A
friendly, needs to become friendly, needs to become customer/user friendlycustomer/user friendly
Scrum is still “pure”, but there are Scrum is still “pure”, but there are now tools… CMM and RUP were now tools… CMM and RUP were “pure” to start…“pure” to start…
All camps need to sell business All camps need to sell business value, in business terms, financial value, in business terms, financial terms, risk termsterms, risk terms