Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson...

60
Extreme Programming Extreme Programming and Scrum - Getting and Scrum - Getting Started with Agile Started with Agile Software Software Development Development Kyle R. Larson [email protected] Advanced Technologies Integration, Inc. www.atico.com

Transcript of Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson...

Page 1: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 2: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 3: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 4: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 5: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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)

Page 6: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 7: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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)

Page 8: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 9: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 10: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 11: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 12: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 13: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

Scrum with Extreme Scrum with Extreme ProgrammingProgramming

EXTREMEPROGRAMMINGMostly Technical

Best Practices

SCRUMProject Management

Best Practices

Scrum works well as a wrapper around Extreme Programming

Page 14: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 15: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 16: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

Key PM DifferenceKey PM Difference

Defined Project ManagementDefined Project Managementvs.vs.

Empirical Project ManagementEmpirical Project Management

Page 17: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 18: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 19: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

PM End-GamePM End-Game

Almost all projects eventually revert to Almost all projects eventually revert to empirical PMempirical PM

Page 20: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 21: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 22: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 23: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 24: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 25: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 26: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 27: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 28: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

Scrum Scheduling and Scrum Scheduling and TrackingTracking

Page 29: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

Scrum RolesScrum Roles

Product OwnerProduct Owner

TeamTeam

Scrum MasterScrum Master

Page 30: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 31: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 32: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 33: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 34: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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).

Page 35: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

DevelopersEstimate Cost

DevelopersBuild Value

Customer Defines Value

Customer Chooses Value

24

1

3

XP Circle of LifeXP Circle of Life

Page 36: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

Cost-of-Change CurvesCost-of-Change Curves

Flattening cost of change curve is both enabled by and exploited by Extreme Programming (XP)

Page 37: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 38: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 39: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 40: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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.

Page 41: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 42: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 43: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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)

Page 44: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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.

Page 45: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 46: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 47: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 48: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 49: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 50: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 51: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 52: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 53: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 54: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 55: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 56: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 57: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 58: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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.

Page 59: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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

Page 60: Extreme Programming and Scrum - Getting Started with Agile Software Development Kyle R. Larson klarson@atico.com Advanced Technologies Integration, Inc.

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