Title: XP and Scrum
1XP and Scrum
- Tools and Practices for Making Your Organization
Agile
Cory Foy foyc_at_cornetdesign.com
cornetdesign.com
2Agenda
- Straws are flexible?
- Adopting Agile Practices
- Examining Agile Practices
- Applying the Practices
- Summary
3Straws Are Flexible?
4Straws are Flexible?
5Straws Are Flexible?
6Straws are Flexible?
7Agile 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
8The Missing Letter Theory
9Retrospectives
- 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
10Retrospectives
- Check-In
- Focus On / Focus Off
- Timeline
- Color Code Dots
- Patterns and Shifts
- Learning Matrix
- Start/Stop/Keep
- Retrospective
11Adopting Agile
- Adoption Roles
- Innovator 2.5
- Early Adopter 13.5
- Early Majority 34
- Late Majority 34
- Laggards 16
12Adopting 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
13Examining Practices Scrum
- Three Roles
- Product Owner, ScrumMaster, self-organizing team
- Three Ceremonies
- Planning Meeting, Stand-Up, Review Meeting
- Three Artifacts
- Product Backlog, Sprint Backlog, Burndown Chart
14Examining Practices XP
15Applying Practices Trouble Spots
- Planning and Estimation
- Code Quality
- Heroic Releases
16Applying Practices Planning
- 20 Hour Story
- Day 1 3 hours
- Day 2 3 hours
- Day 3 - 1 hour
- Day 4 - 2 hours
- Day 5 - 0 hours
- Day 6 - 5 hours
- Day 7 - 3 hours
- Day 8 - 2 hours
- Day 9 - 1 hour
17Applying Practices Planning
- 20 hour story
- 20 hours development / 9 days
- 9 hours QA / 3 days
- 1 hour Integration / 1 day
- 30 hours of effort
- 13 days of effort
- Counting weekends 17 days
18Applying Practices Planning
- Story Points
- Measure of difficulty
- Relative to other stories
- Uses 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 velocity - Team uses Yesterdays Weather to know what to
sign up for
19Applying Practices Planning
- Defining Done
- Not just Code Complete
- Some level of QA testing
- Some level of Business Verification
- Must be integrated with the code base
20Applying Practices Planning
21Applying Practices Planning
22Applying Practices Planning
- Iterations
- Timeboxed
- Fixed Scope
- Consistent Length
- At end of iteration, features are potentially
shippable
23Applying Practices Planning
- Planning Game
- Occurs once per iteration
- Team commits to what they are going to complete
- Customer is involved for team to ask questions
24Applying Practices Planning
- Planning Poker
- Used to estimate stories and tasks
- Each team member has a set of cards
- The story is discussed
- Each team member selects their card and shows it
at the same time - The two extremes discuss why
- Redraw as necessary
25Applying Practices Planning
- Other Tools and Artifacts
- Index Cards
- Big Visible Wall
- Burndown Chart
- Stand-Up Meeting
26Applying Practices Code Quality
27Applying Practices Code Quality
- Test-Driven Development
- No Production Code written without a failing test
- Red-Green-Refactor
- Write a failing test
- Write just enough code to make it pass
- Refactor Duplication
- Tools
- JUnit, NUnit, xUnit.NET, MbUnit, Visual Studio,
etc
28Applying Practices Code Quality
- Test-Driven Development
- Demonstration
29Applying Practices Code Quality
- Pair Programming
- Two Minds are better than one
- Does not cut productivity in half actually
shown to increase it - Ping Pong Coding
- One person writes a failing test
- The other makes it pass, and writes the next
failing test
30Applying Practices Code Quality
31Applying Practices Code Quality
- Customer Tests
- Written in language customers can understand
- Functional / Integration Level Tests
- Gives an example for the developers
- Tools
- FIT/Fitnesse
- DSLs
32Applying Practices Code Quality
- Customer Tests
- Demonstration of Fitnesse
33Applying Practices Code Quality
- Continuous Integration
- But it works on my machine!
34Applying Practices Code Quality
- Continuous Integration
- Combination of Process and Tools
- Check in frequently (at least once a day)
- On each check in, the code is checked out on a
clean machine and built - A set of automated tests are run (smoke tests)
35Applying Practices Code Quality
- Continuous Integration
- Nightly or weekly a full set of regression tests
could be run - Problems are detected very rapidly
- Tools
- CruiseControl/CruiseControl.NET
- Team Foundation Server
- Ant/NAnt/Maven/MSBuild
- One Click to Build your Software
36Applying Practices Code Quality
- Other Tools
- Onsite Customer
- Stand-Ups (tricky!)
- Code/Technical Debt Cards
- Code Reviews
37Applying Practices Heroic Releases
38Applying Practices Heroic Releases
39Applying Practices Heroic Releases
40Applying Practices Heroic Releases
- Heroic Releases are not a normal part of software
development - Even if it only happens at the end
- Sustainable Pace
41Applying Practices Heroic Releases
- How do we overcome this?
- Communication!
- Define Done
- Estimated Backlog / Velocities
- Stand-Up Meetings
- Involvement of Business
42Applying Practices Heroic Releases
- Define Done
- Come to a shared understanding of what it means
to complete a story - Should have most everything you would need to
ship the story - Potentially Shippable Feature
43Applying Practices Heroic Releases
- Estimated Backlog / Velocities
- By 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.
44Applying Practices Heroic Releases
- Stand-Up Meetings
- Not Just Standing Up!
- Purpose
- Share Commitment
- Communicate Daily Status, Progress and Plans
- Identify Obstacles
- Set Direction and Focus
- Build a Team
45Applying Practices Heroic Releases
- Stand-Up Meetings
- Three Questions
- Yesterday Today Obstacles
- Fourth Question
- How confident do you feel we are going to
succeed? - Focus on the Backlog (or not)
46Applying Practices Heroic Releases
- Stand-Up Meetings
- When do we hold them?
- Morning? (Start the Day)
- Mid-Morning? (Dont 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
47Applying Practices Heroic Releases
- Stand-Up Meetings only work if youve overcome
some team dysfunctions - Absence of Trust
- Fear of Conflict
- Lack of Commitment
- Avoidance of Accountability
- Inattention to Results
48Applying Practices Heroic Releases
- Involvement of Business
- The priorities should be decided by the business
- The 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
49Applying Practices Other Factors
- Sustainable Pace
- Also called 40-hour week, Energized Work
- What about overtime?
50Applying Practices Other Factors
- Whole Team / Collective Ownership
- Were all in this together
- Courage as a team
51Applying Practices Other Factors
- Your Role
- ScrumMaster
- Agile Coach
- Manager
- Team Member
- Evangelist
- Find the things in the way and get them out of
the way
52Applying Practices Other Tools
- Project Planning Tools
- VersionOne
- Rally
- ProjectCards
- xPlanner
- ScrumWorks
- These are just tools to help once you are good at
the people stuff
53Summary
- 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 arent necessarily the answer
54Other Resources
- Books
- Fearless Change
- Agile Estimating and Planning / User Stories
Applied - Extreme Programming Explained
- Agile Software Development with Scrum / Agile
Project Management with Scrum - Mailing Lists
- XP, TDD, ScrumDevelopment, LeanAgileScrum (Yahoo!
Groups)
55Contact Information
- Cory Foy
- Site http//www.cornetdesign.com
- Email foyc_at_cornetdesign.com
- Slides will be posted on my site by tomorrow