agile (xp) games
DESCRIPTION
Our slides for the Extreme Programming Game developed by Trix and NayimaTRANSCRIPT
CS8 Sdn Bhd
Asyraf Abdul Rahman
What we’re gonna cover today What is Agile (in this case, Xtreme Programming)
Brief intro to agile for noobies
On to the games!
Retrospect and Review – what we learnt
What is Agile1
Brief history
The agile process flow
Is Agile for you?
Agile and Customer Development Engineering
History – Case study1
Nasa
The Space Shuttle's Operating System for the shuttle
High risk - cannot afford to make mistakes
NASA’s Defect Density1
The last 11 versions of the space shuttle’s 420,000 line system had a total of 17 defects
Industry NASA0
1
2
3
4
5
6
Defect Density (bugs/kLoC)
NASA’s Cost1
Industry NASA0
1
2
3
4
5
6
5
0
Defect Density (bugs/kLoC)
Industry NASA0
100
200
300
400
500
600
700
800
900
$5.00
$850.00
$/LoC
History – Case Study 21
Safeguard Ballistic Missile Defense
System
1969-1975
5407 person years
Hardware designed concurrently as software specs being written
Late changes in requirements not an option
Ballistic Missile Defense System1
Results
Project delivered according to specs
Cost: $25 billion
5407 person years
Operational for 133 Days – Project terminated in 1978
What happened?
‘By the time the 6-year anti-missile system project was completed, the new missiles were faster than the anti-missile missiles’
Why did this happen? 1
Software Engineering and other heavy-weight methodologies:
Work in some instances, but
There are high costs/waste
High risk if used in dynamic environments
Changing/unconfirmed requirements
Changing technology
Mass User Base (e.g. Public Users)
Is Agile the alternative? DEPENDS
So where did Agile come from? The Auto Industry!
The Chrysler Comprehensive Compensation System
Kent Beck and Ward Cunningham
The first time I was asked to lead a team, I asked them to do a little bit of the things I thought were sensible, like testing and reviews. The second time there was a lot more on the line. I thought, "Damn the torpedoes, at least this will make a good article," [and] asked the team to crank up all the knobs to 10 on the things I thought were essential and leave out everything else.
Based on the concept of removing waste
Agile vs waterfall1
So why Agile? Faster time to launch = faster profit, or ROI
Save money!
Flexible to change
New requirements
New technology & obsolescence
Changing team dynamics
Happier customers/bosses
The Agile Process Flow2
Go deeper…2
And deeper…2
And deepest 2
Versions of Agile1
XP | Extreme Programming (Kent Beck)
DSDM | Dynamic System Development Method (Dane Faulkner)
FDD | Feature Driven Development (Jeff DeLuca)
SCRUM (Ken Schwaber)
Crystal (Alistair Cockburn)
Adaptive Software Development (Jim Highsmith)
Lean Software Development (Mary Poppendieck)
Is Agile for my project? Depends
Customer? Do they appreciate agile? Rigid timeline, requirements and cost?
Bosses and colleagues? Are they supportive of agile? Do they tolerate mistakes well?
Business Are you a startup developing a product? Are you working on a large project?
Solution Is it a known solution? Or Are you swimming in uncharted territory?
Agile in Product Development3
On to the Games! We will simulate the XP
Planning Game
We will measure and use Velocity
Everyone gets to play Customer and Developer
Don't worry... implementation is fun!
Estimate User Stories
Plan Iterations
Perform Implementation
Feedback
IterationCustomer writes
stories
Developers estimate stories
Customer plans iteration
Developers implement,
Customer tests
Debriefing & retrospective
Iteration (Cont) Split into groups of 5-6 people
We will play 3 iterations
Earn Business Value by implementing stories
Team with highest Business Value wins
Every Story is worth some Business Value...... but only if Story is implemented fully
Time is limited (180 seconds per iteration!)
User Story4
Iteration 1, step 1 – Customer Writes Stories No need to do anything for this game – all done
Customer writes stories
Developers estimate stories
Customer plans iteration
Developer implements,
Customer tests
Debriefing & retrospective
Iteration 1, step 2 – Developers estimate stories Order all stories by effort
NOTE: ASK ABOUT THE ACCEPTANCE CRITERIA!
User story 1 User story 2> User story 3< User story 4=
Customer writes stories
Developers estimate stories
Customer plans iteration
Developer implements,
Customer tests
Debriefing & retrospective
Iteration 1, step 2 – Developers estimate stories (cont) Easiest story is assigned
an effort of 2 - basis
Estimate other stories relative to each other
If same effort – 2
If less than double – 3
If double effort – 4
User story 1
User story 2
User story 3
User story 4
2
2
3
4
Customer writes stories
Developers estimate stories
Customer plans iteration
Developer implements,
Customer tests
Debriefing & retrospective
Impossible stories If a story requires more than 3 times as much effort
than story with effort 2, then choose impossible
Too big to estimate correctly
Too big to implement quickly
Needs to be broken up into smaller stories
Why?
Short stories are:
Easier to estimate
Gives more flexibility to implement
Less risky to implement
Iteration 1, step 2 – Developers estimate stories (cont) How many stories can we implement in 1 iteration?
Can’t make an accurate estimate yet
Guess!! (based on experience, maybe)
For this game, use 12-15
DONE! – head to customer table/area
Customer writes stories
Developers estimate stories
Customer plans iteration
Developer implements,
Customer tests
Debriefing & retrospective
Iteration 1, step 3 – Customers choose and prioritize stories Order stories by business value/effort ratio
E.g. – business value – 300 / 2 – effort = 150
Select the stories to implement Complexity points must not be more than the no of points set
by ‘developer’ for first iteration But, ‘buy’ as much value as possible
Choose the order of implementation Since it’s the 1st iteration, may not finish all stories, so which
do we want done first to maximize biz value? Highest biz value? Least/most effort? Best ratio?
DONE! – head back to developer table/area!
Customer writes stories
Developers estimate stories
Customer plans iteration
Developer implements,
Customer tests
Debriefing & retrospective
Iteration 1, step 4 – Developers Implement Stories Only implementation time is measured.
Time stops when
A story is done. Acceptance test is carried out by facilitator
At 90 seconds for mid-iteration review
At 180 seconds – time’s up!
Implement only one story at a time
Customer writes stories
Developers estimate stories
Customer plans iteration
Developer implements,
Customer tests
Debriefing & retrospective
Iteration 1, step 4 – Developers Implement Stories Half-time Developers re-estimate points for the iteration
Example: Initial guess = 12
Half-time stories completed = 5
Estimated stories completed by end of iteration = 10
Move to customer table – drop 2 points worth of stories.
Move back to the developer table and continue implementing
If you are ahead at half-time, then how?
Note: If a story takes too much time, you may choose to abandon it.
Customer writes stories
Developers estimate stories
Customer plans iteration
Developer implements,
Customer tests
Debriefing & retrospective
Iteration 1, step 5 - Review Things gone Wrong / Right, Lessons Learnt, Next
Actions
Re-estimate stories
Sort the cards according to experienced complexity
Give them a new 1-6 complexity estimate
Why? Bcoz we’ll use them in iteration 2
Customer writes stories
Developers estimate stories
Customer plans iteration
Developer implements,
Customer tests
Debriefing & retrospective
Iteration 1 - Debrief Questions
How did you estimate how long a task would take?
How did you react when you noticed that 2 stories are the same?
Were the estimates the same for different teams?
Real-life customers: how did you feel making the estimates?
Real-life devs: is estimating in real-life easier or more difficult?
Project Velocity Calculate your teams velocity:
VELOCITY = no. of story points / iteration
What’s our score?
Iteration 2 Same as Iteration 1, but a few differences:
Estimating
New Scoring Rules
Iteration 2 – Estimating Stories Use Iteration 1’s experienced estimation
User story 1
User story 2
User story 3
Iteration 1
User story 1 User story 2
User story 3
Iteration 2
=
= User story 4<
>
2
3
4
2 2
3
3.5
Iteration 2 – New Scoring Rules If team is fast
Unplanned stories that are implemented are only worth half the business value
If team is slow
Half of the business value from planned stories that are not implemented will be deducted
Why?
Marketing!
Iteration 2 – Ready? Go!
Iteration 2 - Debrief If you compare the first and second iteration, are there
any differences? How do you feel?
How accurate was the iteration plan this time? How far off were you?
Did your velocity go up or down?
What’s our score?
Iteration 3 – Get ready No difference, same as iteration 2
Iteration 3 – Ready? Go!
Iteration 3 – last minute story Estimate the new story
Move to customer table/area and replan iteration
Note – only exchange stories if the new story brings more business value
Last Minute Stories The last minute story shows how agile responds to
changes
Increase business value while maintaining the same amount of work.
And the winner is…
Game Debrief What do these things tell you about the performance
of your teams?
Velocity
Business value earned
Did your a)estimates and b) velocity get more precise as the game went on?
Could you apply the planning game to your projects? Why? Why not?
What this game doesn’t simulate Dependencies
Full – team dynamics
Implementation issues
References1. Agile Overview, Balachander Swaminathan,
www.agileindia.org/agilecoimbatore07/presentations/AgileOverview.pdf
2. Agile process diagrams, Don Wells, www.extremeprogramming.org
3. Customer Development Engineering, Eric Ries Haas, http://www.slideshare.net/guest472f47/2008-09-06-eric-ries-haas-columbia-customer-development-engineering-presentation
4. Agile Game, Vera Peeters (Tryx) and Pascal Van Cauwenberghe (Nayima), http://www.xp.be/xpgame.html
We hope you enjoyed the game! If you do, please help by promoting it
Tweet,
Blog,
Slides and pictures will be posted on our company blog: http://www.consoci8.com