eXtreme Programming (XP) May Be Embedded Inside Scrum Edison Lascano Army Polytechnic School / Ecuador
[email protected]
SSTC-2009 Salt Lake City 04-23-2009
Salt Lake City April/2009
Who knows Agile??? y Who uses agile? y Who uses Scrum? y Who Wh uses XP? y Who uses traditional (waterfall…) y
2
What This Session Is Not
Salt Lake City April/2009
To convince yyou to use Agile g y A deep comparison between Traditional aand Agile g e y A comparison between XP and Scrum y
3
Outline
Salt Lake City April/2009
Software Development p Life Cycle y y Agile Manifesto y Scrum y XP y XP embedded b dd d inside i id Scrum S y Conclusions y
4
Salt Lake City April/2009
SDLC
“Software Development Life Cycle”
5
Agile Manifesto
Salt Lake City April/2009
Source: http://agilemanifesto.org/ 6
Waterfall vs. vs Agile
Salt Lake City April/2009
Traditional
Agile
Detailed plan
Dynamic plan
Sequential phases conducted by documentation Errors may be magnified
Iterative phases conducted by product deliveryy ((byy pprioritizing) g) Errors may be minimized
Functionality at the end One Long period of time
Functionality after each iteration: Increments of the system every thirty days or less Short periods of time
Project Manager
Team self management
Requirements Analysis
Customers working with development team (every iteration)
epo ts ((Docs) ocs) Reports
Communication Co u cat o
7
The State Of Agile g Development p
Salt Lake City April/2009
(VERSIONONE)
Which Agile methodology do you follow most closely?
Source: VERSIONONE http://www.versionone.com/pdf/3rdAnnualStateOfAgile_FullDataReport.pdf 8
Salt Lake City April/2009
Scrum
9
Scrum
Salt Lake City April/2009
Scrum, more a framework than a methodology. y Transparency: a spa e cy: itt allows a ows to inspect spect actual actua working software y Management focus y Working software every two or four weeks y
10
Salt Lake City April/2009
Scrum Life Cycle
-
Daily Scrum < 15 min
-
Product Backlog
Sprint g Backlog
Item 1
-
Item 2
Task 1 -
Item 3
-
-
Task 2
-
-
-
-
-
-
Sprint 2-4 weeks…
-
- Sprint -
-
-
-----------
-
Potentially P i ll Shippable Software
Review
11
Product Backlog
Salt Lake City April/2009
To-do list that shows the result of the product owner’s work. Product Owner(PO): Compiles all the features (story users) Prioritizes them. A Accept t or reject j t results lt Product Backlog Item 1 Item 2
Responsible for ROI Interface between developer and customer
Item 3
12
Salt Lake City April/2009
Sprint Backlog
Before each sprint p begins, g the highest g priority goals are transferred to the p backlog g in a “Sprint p Planning g sprint Meeting”. Scrum Master(SM): Coach, gatekeeper.
Product Backlog
Sprint g Backlog
Feature 2 -
Feature 3
-
In charge of: engineering practices improvement, daily Scrums, Sprint goals, evaluation meetings, sprint reviews, impediments .
Task 1
Guides PO in ROI.
Task 2
Interface between ST and PO
-
13
Salt Lake City April/2009
Sprint
“30 day” y p period focused toward fixed scheduled goals. No changes during a p Sprint Scrum Team(ST): 7±2 members
Product Backlog
-
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
Task implementation
-
Sprint 2-4 weeks…
They decide how to work
-
-
Task 2
14
Salt Lake City April/2009
Daily Sprint Main p purpose p is to eliminate speed p impediments: ped e t bac backlog” og “Impediment
SM + ST + (PO)
-
Daily Scrum
< 15 min
-
Product Backlog
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
•Done? •Do? Impediments? - •Impediments?
-
-
Sprint 2-4 weeks…
-
-
Task 2
15
Salt Lake City April/2009
Sprint Review
Team demonstrates the completed p feature (item) to the PO. Informal, no slides needed, 2-hours, SM + ST + PO + … -
Daily Scrum < 15 min
-
Product Backlog
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
-
-
-
Sprint 2-4 weeks…
-
Task 2
-
- Sprint -
-
-
Review
16
First Shippable software (after 4 weeks)
Salt Lake City April/2009
Shippable software Sprint1
Retrospective
SM + ST + PO + Customer
-
Daily Scrum < 15 min
-
Product Backlog
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
-
-
-
Sprint 2-4 weeks…
-
Task 2
-
- Sprint -
-
-
-----------
-
Potentially P i ll Shippable Software
Review
17
Second prioritized feature 4 more weeks)
Salt Lake City April/2009
Shippable pp software Sprint1
Shippable pp software Sprint 2 Retrospective
SM + ST + PO + Customer
-
Daily Scrum < 15 min
-
Product Backlog
Sprint g Backlog -
Task 1 -
Feature 3
-
-
-
-
-
-
-
Sprint 2-4 weeks…
-
Task 2
-
- Sprint -
-
-
---------------
-
Potentially Shippable pp Software …
Review
18
Final Prioritized feature 4 more weeks Shippable software Sprint1
Salt Lake City April/2009
Shippable software Sprint 2
Shippable software Sprint 3
Retrospective
SM + ST + PO + Customer
-
Daily Scrum < 15 min
-
Sprint g Backlog -
Task 1 -
-
-
-
-
-
-
-
Sprint 2-4 weeks…
-
Task 2
-
- Sprint -
-
-
--------------------
-
Potentially Shippable pp Software … …
Review
19
Final shippable software (after 12 weeks + planning…)
Shippable software Sprint 3
Retrospective
--------------------
Shippable software Sprint1
Shippable software Sprint 2
Salt Lake City April/2009
Potentially Shippable pp Software … …
20
Burndown charts: Sprint and Product
Salt Lake City April/2009
Velocity: hours/day 250 200 150 100 50 0 1
2
3
4
5
6
7
8
9
-50
Hours versus days Velocityy may y help p to determine if the product can be delivered on time or if more resources are needed 21
Scrum Life Cycle
Salt Lake City April/2009
250 200 150 100 50 0 1
2
3
4
5
6
7
8
9
Product Backlog Feature 1 Feature 2 Feature 3
22
Scrum Life Cycle
Salt Lake City April/2009
250 200 150 100 50 0 1
2
3
4
Product Backlog
6
7
8
9
Sprint g Backlog
Feature 2
Task 1 -
Feature 3
5
-
-
Task 2
23
Salt Lake City April/2009
Scrum Life Cycle 250 200 150 100 50 0 1
2
3
4
Product Backlog
5
6
7
8
9
-
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
-
Sprint 2-4 weeks…
-
-
Task 2
24
Salt Lake City April/2009
Scrum Life Cycle 250 200 150 100 50 0 1
2
3
4
5
6
7
8
9
-
Daily Scrum < 15 min
-
Product Backlog
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
-
-
-
Sprint 2-4 weeks…
-
-
Task 2
25
Salt Lake City April/2009
Scrum Life Cycle 250 200 150 100 50 0 1
2
3
4
5
6
7
8
9
-
Product Backlog
-
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
-
-
Sprint 2-4 weeks…
Daily Scrum < 15 min
-
-
-
-
Task 2
26
Salt Lake City April/2009
Scrum Life Cycle 250 200 150 100 50 0 1
2
3
4
Product Backlog
5
6
7
8
9
-
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
-
Sprint 2-4 weeks…
-
Task 2
-
-
-
Daily Scrum < 15 min
-
-
27
Salt Lake City April/2009
Scrum Life Cycle 250 200 150 100 50 0 1
2
3
4
Product Backlog
5
6
7
8
9
-
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
-
Sprint 2-4 weeks…
-
-
Task 2
-
--
Daily Scrum
< 15 min
-
-
28
Salt Lake City April/2009
Scrum Life Cycle 250 200 150 100 50 0 1
2
3
4
Product Backlog
5
6
7
8
9
-
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
-
Sprint 2-4 weeks…
-
-
Task 2
D il Daily Scrum < 15 min
-
-
-
-
29
Salt Lake City April/2009
Scrum Life Cycle 250 200 150 100 50 0 1
2
3
4
Product Backlog
5
6
7
8
9
-
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
-
Sprint 2-4 weeks…
-
Task 2
-
- Sprint -
-
-
Review
30
Salt Lake City April/2009
Scrum Life Cycle Shippable software Sprint1
250 200 150 100 50
Retrospective
0 2
3
4
Product Backlog
5
6
7
8
9
-
Sprint g Backlog -
Feature 2
Task 1 -
Feature 3
-
-
-
-
-
Sprint 2-4 weeks…
-
Task 2
-
- Sprint -
-
-
-----------
1
Potentially P i ll Shippable Software
Review
31
Salt Lake City April/2009
Scrum Life Cycle Shippable software Sprint1
250 200 150
Shippable software Sprint 2
100 Retrospective
50 0 2
3
4
Product Backlog
5
6
7
8
9
-
Sprint g Backlog -
Task 1 -
Feature 3
-
-
-
-
-
Sprint 2-4 weeks…
-
Task 2
-
- Sprint -
-
-
---------------
1
Potentially Shippable pp Software …
Review
32
Salt Lake City April/2009
Scrum Life Cycle 250 200
Shippable software Sprint1
150 100
Shippable software Sprint 2
Shippable software Sprint 3
50 Retrospective
0 2
3
4
5
6
7
8
9
-
Sprint g Backlog -
Task 1 -
-
-
-
-
-
Sprint 2-4 weeks…
-
Task 2
-
- Sprint -
-
-
--------------------
1
Potentially Shippable pp Software … …
Review
33
Scrum Life Cycle
Salt Lake City April/2009
250 200 150 100 50 0 1
2
3
4
5
6
7
8
9
--------------------
-50
Shippable Software … …
34
Scrum values
Salt Lake City April/2009
Commitment y Openness y Focus ocus y Respect y Courage y
35
Scrum Practices Product Backlogg y Sprint Backlog y Sprint (and Sprint Planning Meeting) y Daily Sprint (Daily Scrum Meeting) y Sprint S i Review R i M Meeting i y Retrospective y Scrum Master y Scrum Teams y Product Owner y
36
Scrum has been used by •Microsoft •Yahoo •Google •Electronic Arts •Lockheed Martin •Philips •Siemens •Nokia •IBM •Capital One •BBC
Salt Lake City April/2009
•Intuit •Nielsen Media •First American Real Estate •BMC Software •Ipswitch •John Deere •Lexis Nexis •Sabre •Salesforce.com •Time Warner •Turner Broadcasting •Oce Oce
Source: Mountain Goat Software LLC ( http://www.mountaingoatsoftware.com/scrum-a-presentation ) 37
Salt Lake City April/2009
eXtreme Programming
38
eXtreme Programming y
Salt Lake City April/2009
Discipline p Approach pp to Software Development (Wells, D., “What is Extreme Programming? : http://www.extremeprogramming.org)
y
FFocused d on the th way the th “programmers” “ ” program software.
39
eXtreme Programming y
Salt Lake City April/2009
Someone ggives you y a problem p ◦ What is the most important thing of this problem ◦ We attempt to solve it with the first try
Pair programming p g g y Code review y Unit tests, tests more and more while writing y
◦ They must pass one by one y
R f t i Refactoring 40
Salt Lake City April/2009
eXtreme Programming Life Cycle
Source: Extreme Programming: A gentle Introduction: htt // http://www.extremeprogramming.org/map/project.html t i / / j t ht l 41
Salt Lake City April/2009
eXtreme Programming Life Cycle Based on a set of rules and practices p y It gives more emphasis on designing, codingg and co a testing. test g. y Nevertheless… so much freedom… y
42
Planning
Salt Lake City April/2009
User Stories y Release planning y Project velocity y Iterations y Move M people l around d y Stand-up meeting y
43
Designing
Salt Lake City April/2009
Simplicity p y y System metaphor y CRC cards y Spike solutions y refactoring f i y
44
Coding
Salt Lake City April/2009
Available customer y Follow standards y Unit test first y Pair programmed y Integrates I code d at a time i y Integrate often y Collective code ownership y Optimization p y No overtime y
45
Testing
Salt Lake City April/2009
Unit tests for all code y Pass unit tests before releasing y Any bug generates tests y Acceptance tests y
46
A single iteration in XP
Salt Lake City April/2009
Customer
(Adapted from “The need for Customer-Oriented Software Development” [7]) 47
A single iteration in XP
Customer
Salt Lake City April/2009
User story
(Adapted from “The need for Customer-Oriented Software Development” [7]) 48
A single iteration in XP
Salt Lake City April/2009
Programmer
Customer
User story
Tester
(Adapted from “The need for Customer-Oriented Software Development” [7]) 49
A single iteration in XP
Salt Lake City April/2009
Programmer
Product Customer
User story
Tester
(Adapted from “The need for Customer-Oriented Software Development” [7]) 50
A single iteration in XP
Salt Lake City April/2009
Programmer
Product Customer
User story Refactoring
Tester
(Adapted from “The need for Customer-Oriented Software Development” [7]) 51
XP (main) Values
Salt Lake City April/2009
Communication ((improve p it)) y Simplicity (seek it) y Feedback (get it) y Courage (proceed with) y
52
XP Practices Kent Beck defines 20 practices in his book “Extreme Programming explained explained” ◦ The planning game ◦ Small releases ◦ Metaphor ◦ Simple design ◦ Testing ◦ Refactoring ◦ Pair programming ◦ Collective ownershipp ◦ Continuous integration ◦ 40-hour week ◦ On On-site site customer ◦ Coding standards 53
Salt Lake City April/2009
XP and Scrum
54
XP and Scrum y
“Supporting eXtreme Programming with Scrum, How we do d Scrum” S ” by b Rachel R h l Davies D i Amarinda A i d and d Joseph J h Pelrine (2003).
y
“Scrum and XP from the Trenches “, Henrik Kniberg (2007)
y
“XP @ Scrum “ by ADM www.controlchaos.com (April2009) . . .
y y y
55
Salt Lake City April/2009
Scrum is missing something, isn isn’tt it?
56
Salt Lake City April/2009
Scrum is missing something, isn isn’tt it? How to design? g y How to code? y How to test? y
57
Salt Lake City April/2009
Scrum is good at something, isn isn’tt it? Management g y Transparency y
58
Salt Lake City April/2009
XP is missing something, isn isn’tt it? y
59
Salt Lake City April/2009
XP is missing something, isn isn’tt it? Too open p to be followed y …Organization… y
60
Salt Lake City April/2009
XP is good at something, isn isn’tt it? Good rules and p practices to design g y Good rules and practices to code y Good rules and practices to test y
61
XP and Scrum
Salt Lake City April/2009
62
63
64
65
66
67
68
Salt Lake City April/2009
Scrum Management Practices Product Backlogg y Sprint Backlog y Sprint y Daily Scrum y Product P d Increment I y
69
XP Engineering Practices
Salt Lake City April/2009
Simple p Design g y Testing y Refactoring y Pair programming y Collective C ll i ownership hi y Continuous integration y Standards to code y
70
Salt Lake City April/2009
Advantages from Scrum to XP Better management g y Scalable projects y Complement principles and practices y The Product Owner concept y Visibility Vi ibili (B (Burn-down d charts) h ) y
71
Salt Lake City April/2009
Advantages from XP to Scrum Tells what to do duringg the sprint p y Tells how to program y Tells how to program y Complement principles and practices y Collective C ll i ownership hi y Incremental design y
72
Conclusions Conclusions…
Salt Lake City April/2009
. y. y. y. y. y. y. y
73
Salt Lake City April/2009
Additional Information
74
Some links to learn y
Salt Lake City April/2009
Scrum: An Introduction to Scrum ◦ http://www.mountaingoatsoftware.com/scrum -a-presentation
y
Extreme Programming.org ◦ http://www.extremeprogramming.org/what.ht ml ◦ And many others…
75
Salt Lake City April/2009
Agile Project Management Tools
VersionOne,Vendor Y, XPlanner,Vendor X y Sample: y
◦ VersionOne http://www.versionone.com: five stages to planning and executing projects: x x x x x
Product Planning, Release Planning, Iteration Planning, Iteration Tracking, and Review
76
References
Salt Lake City April/2009
1.
3rd Annual Survey: 2008, “The State of Agile Development”, Conducted: June-July, June July 2008 2008, http://www.versionone.com/pdf/3rdAnnualStateOfAgile_FullData Report.pdf
2 2.
“Manifesto Manifesto for Agile Software Development Development” http://www.agilemanifesto.org/
3.
Gangolly, J. “System Analysis & Design”, ”Methodologies for System Development Development”, October 1997, 1997 http://www.albany.edu/acc/courses/fall97/acc681/ch7.html
4.
“An Introduction to Scrum,” presentation by Mike Cohn, htt // http://www.mountaingoatsoftware.com/scrum-a-presentation t i t ft / t ti
5.
Wells, D., “What is Extreme Programming? “http://www.extremeprogramming.org/what.html
6.
Control Chaos, Scrum It’s About Common Sense, “XP @ Scrum”, http://www.controlchaos.com/about/xp.php Edison Lascano , pg.77
References
Salt Lake City April/2009
7.
Passova S., EBIZQ in action Conference Series, “The need for Customer Oriented Software Development Customer-Oriented Development”, 2005, 2005 http://www.ebizq.net/topics/dev_tools/features/5556.html?&pp=1
8.
Henrik Kniberg, “Scrum and XP from the Trenches, How we do Scrum”, 2007 C4Media Inc Scrum
78
Salt Lake City April 22/2009
You can reuse this file as you need. Modifications or copies are allowed. You can download this file from: htt // http://www.dcc.espe.edu.ec/scrumwithxp/scrumwithxp.ppt d d / ith / ith t And the whole document from: http://www.dcc.espe.edu.ec/scrumwithxp/scrumwithxp.pdf
Edison Lascano Ecuadorian Army Polytechnic School
[email protected] 79