xp and scrum tools and practices for making your organization agile cory foy [[email protected]...

55
XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [[email protected] | cornetdesign.com]

Upload: osborn-hensley

Post on 17-Dec-2015

220 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

XP and ScrumTools and Practices for Making Your Organization Agile

Cory Foy [[email protected] | cornetdesign.com]

Page 2: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Agenda

Straws are flexible…?Adopting Agile PracticesExamining Agile PracticesApplying the PracticesSummary

Page 3: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Straws Are Flexible?

Page 4: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Straws are Flexible?

Page 5: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Straws Are Flexible?

Page 6: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Straws are Flexible?

Page 7: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Agile Manifesto

Individuals and Interactions over Processes and Tools

Working Software over Comprehensive Documentation

Customer Collaboration over Contract Negotiation

Responding to Change over Following a Plan

Craftsmanship over Crap

Page 8: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

The Missing Letter Theory

Page 9: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Retrospectives

Original Definition: A ritual held at the end of a project to learn from the experience and to plan changes for the next effort

In Practice: A chance to realign the team on core beliefs

Agile Retrospectives by Diana Larsen and Esther Derby

Page 10: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Retrospectives

Check-InFocus On / Focus OffTimelineColor Code DotsPatterns and ShiftsLearning MatrixStart/Stop/KeepRetrospective

Page 11: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Adopting Agile

Adoption RolesInnovator [2.5%]Early Adopter [13.5%]Early Majority [34%]Late Majority [34%]Laggards [16%]

Page 12: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Adopting Agile

Dreyfus Model of Skills Acquisition Novice - Needs to be told exactly what to do.

Very little context to base decisions off of. Advanced beginner - Has more context for

decisions, but still needs rigid guidelines to follow.

Competent - Begins to question the reasoning behind the tasks, and can see longer term consequences.

Proficient - Still relies on rules, but able to separate what is most important.

Expert - Works mainly on intuition, except in circumstances where problems occur

Page 13: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Examining Practices: Scrum

Three RolesProduct Owner, ScrumMaster, self-

organizing teamThree Ceremonies

Planning Meeting, Stand-Up, Review Meeting

Three ArtifactsProduct Backlog, Sprint Backlog,

Burndown Chart

Page 14: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Examining Practices: XP

Page 15: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Trouble Spots

Planning and EstimationCode QualityHeroic Releases

Page 16: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Planning

20 Hour StoryDay 1 – 3 hoursDay 2 – 3 hoursDay 3 - 1 hourDay 4 - 2 hoursDay 5 - 0 hoursDay 6 - 5 hoursDay 7 - 3 hoursDay 8 - 2 hoursDay 9 - 1 hour

Page 17: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Planning

20 hour story20 hours development / 9 days9 hours QA / 3 days1 hour Integration / 1 day

30 hours of effort13 days of effortCounting weekends – 17 days

Page 18: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Planning

Story PointsMeasure of difficultyRelative to other storiesUses Powers of 2 (1,2,4,8), or Fibonacci

Scale (1,2,3,5,8)How many stories you complete in an

iteration is your velocityTeam uses Yesterday’s Weather to

know what to sign up for

Page 19: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Planning

Defining DoneNot just Code CompleteSome level of QA testingSome level of Business VerificationMust be integrated with the code base

Page 22: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Planning

IterationsTimeboxedFixed ScopeConsistent Length

At end of iteration, features are potentially shippable

Page 23: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Planning

Planning GameOccurs once per iterationTeam commits to what they are going to

completeCustomer is involved for team to ask

questions

Page 24: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Planning

Planning PokerUsed to estimate stories and tasksEach team member has a set of cardsThe story is discussedEach team member selects their card

and shows it at the same timeThe two extremes discuss whyRedraw as necessary

Page 25: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Planning

Other Tools and ArtifactsIndex CardsBig Visible WallBurndown ChartStand-Up Meeting

Page 26: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Page 27: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Test-Driven DevelopmentNo Production Code written without a

failing testRed-Green-Refactor

Write a failing testWrite just enough code to make it passRefactor Duplication

ToolsJUnit, NUnit, xUnit.NET, MbUnit, Visual

Studio, etc

Page 28: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Test-Driven DevelopmentDemonstration

Page 29: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Pair ProgrammingTwo Minds are better than oneDoes *not* cut productivity in half –

actually shown to increase itPing Pong Coding

One person writes a failing testThe other makes it pass, and writes the

next failing test

Page 30: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Page 31: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Customer TestsWritten in language customers can

understandFunctional / Integration Level TestsGives an example for the developers

ToolsFIT/FitnesseDSLs

Page 32: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Customer TestsDemonstration of Fitnesse

Page 33: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Continuous Integration“But it works on my machine!”

Page 34: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Continuous IntegrationCombination of Process and ToolsCheck in frequently (at least once a day)On each check in, the code is checked

out on a clean machine and builtA set of automated tests are run (smoke

tests)

Page 35: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Continuous IntegrationNightly or weekly a full set of regression

tests could be runProblems are detected very rapidly

ToolsCruiseControl/CruiseControl.NETTeam Foundation ServerAnt/NAnt/Maven/MSBuildOne Click to Build your Software

Page 36: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Code Quality

Other ToolsOnsite CustomerStand-Ups (tricky!)Code/Technical Debt CardsCode Reviews

Page 37: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Page 38: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Page 39: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Page 40: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Heroic Releases are not a normal part of software development

Even if it only happens at the endSustainable Pace

Page 41: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

How do we overcome this?Communication!

Define DoneEstimated Backlog / VelocitiesStand-Up MeetingsInvolvement of Business

Page 42: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Define DoneCome to a shared understanding of what

it means to complete a storyShould have most everything you would

need to ship the storyPotentially Shippable Feature

Page 43: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Estimated Backlog / VelocitiesBy having a fully estimated backlog,

business decisions can be made to prioritize the items on business value

By having velocity estimates, the focus shifts to delivering value

Beware of comparing the velocity of different teams – or of individuals.

Page 44: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Stand-Up MeetingsNot Just Standing Up!Purpose

Share CommitmentCommunicate Daily Status, Progress and

PlansIdentify ObstaclesSet Direction and FocusBuild a Team

Page 45: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Stand-Up MeetingsThree Questions

Yesterday | Today | ObstaclesFourth Question

How confident do you feel we are going to succeed?

Focus on the Backlog (or not)

Page 46: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Stand-Up MeetingsWhen do we hold them?

Morning? (Start the Day)Mid-Morning? (Don’t Start the Day)Afternoon? (End the Day)

Who Should Attend?Keeping the Energy Level Up

Stand Up, 15 Minutes, Signal the End, Take it Offline

Page 47: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Stand-Up Meetings only work if you’ve overcome some team dysfunctionsAbsence of TrustFear of ConflictLack of CommitmentAvoidance of AccountabilityInattention to Results

Page 48: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Heroic Releases

Involvement of BusinessThe priorities should be decided by the

businessThe team works during the planning

game to commit to the highest priority, most valuable items

The business has to stay involved in verifying the stories

Page 49: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Other Factors

Sustainable PaceAlso called 40-hour week, Energized

WorkWhat about overtime?

Page 50: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Other Factors

Whole Team / Collective OwnershipWe’re all in this together Courage as a team

Page 51: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Other Factors

Your RoleScrumMasterAgile CoachManagerTeam MemberEvangelist

Find the things in the way – and get them out of the way

Page 52: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Applying Practices: Other Tools

Project Planning ToolsVersionOneRallyProjectCardsxPlannerScrumWorks

These are just tools to help once you are good at the people stuff

Page 53: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Summary

Becoming more agile is about the people

Be sure to understand those needs (Chasm/Dreyfus/Dysfunctions)

Understand Why you are adopting a practice

People are resistant to change if it is just dictated to them

Tools aren’t necessarily the answer

Page 54: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Other Resources

BooksFearless ChangeAgile Estimating and Planning / User

Stories Applied Extreme Programming ExplainedAgile Software Development with

Scrum / Agile Project Management with Scrum

Mailing ListsXP, TDD, ScrumDevelopment,

LeanAgileScrum (Yahoo! Groups)

Page 55: XP and Scrum Tools and Practices for Making Your Organization Agile Cory Foy [foyc@cornetdesign.com | cornetdesign.com]foyc@cornetdesign.com

Contact Information

Cory FoySite: http://www.cornetdesign.comEmail: [email protected] will be posted on my site by

tomorrow