Licensed Under Creative Commons by Naresh Jain
eXtreme Programming&
ScrumPractices
Embrace Change
Naresh [email protected]
1
Licensed Under Creative Commons by Naresh Jain
Agile Paradigm
2
Licensed Under Creative Commons by Naresh Jain
Agile Paradigm
Software cannot just be Engineered
2
Licensed Under Creative Commons by Naresh Jain
Agile Paradigm
Software cannot just be Engineered
It’s a craft!
2
Licensed Under Creative Commons by Naresh Jain
Agile Umbrella
Agile
XP
Pragmatic
DSDM
Crystal Lean
Adaptive
Scrum
FDD
3
Licensed Under Creative Commons by Naresh Jain
XP Values
4
Licensed Under Creative Commons by Naresh Jain
XP Values
Communication
4
Licensed Under Creative Commons by Naresh Jain
XP Values
Communication
Feedback
4
Licensed Under Creative Commons by Naresh Jain
XP Values
Communication
Feedback
Simplicity
4
Licensed Under Creative Commons by Naresh Jain
XP Values
Communication
Feedback
Simplicity
Courage
4
Licensed Under Creative Commons by Naresh Jain
XP Values
Communication
Feedback
Simplicity
Courage
Respect
4
Licensed Under Creative Commons by Naresh Jain
A typical XP Project
5
Licensed Under Creative Commons by Naresh Jain
Project 1 year
A typical XP Project
5
Licensed Under Creative Commons by Naresh Jain
Project 1 year
Releases 3 months
A typical XP Project
5
Licensed Under Creative Commons by Naresh Jain
Project 1 year
Iterations 2 weeks
Releases 3 months
A typical XP Project
5
Licensed Under Creative Commons by Naresh Jain
Project 1 year
Iterations 2 weeks
Days 1 day
Releases 3 months
A typical XP Project
5
Licensed Under Creative Commons by Naresh Jain
Project 1 year
Iterations 2 weeks
Days 1 day
Tasks 2 hrs
Releases 3 months
A typical XP Project
5
Licensed Under Creative Commons by Naresh Jain
Project 1 year
Iterations 2 weeks
Days 1 day
Tasks 2 hrs
Test-Code-Refactor Cycles 15 min
Releases 3 months
A typical XP Project
5
Licensed Under Creative Commons by Naresh Jain
Stories are fundamental unit of activity
6
Licensed Under Creative Commons by Naresh Jain
Stories are fundamental unit of activity
As a ____, I want to be able to ____ so that
____
Initial Story List
Might have an initial estimate (perhaps for
both analysis and development), and an expression of technical
and business confidence that this is real and achievable
6
Licensed Under Creative Commons by Naresh Jain
Stories are fundamental unit of activity
As a ____, I want to be able to ____ so that
____
Initial Story List
Might have an initial estimate (perhaps for
both analysis and development), and an expression of technical
and business confidence that this is real and achievable
Release planning
6
Licensed Under Creative Commons by Naresh Jain
Stories are fundamental unit of activity
As a ____, I want to be able to ____ so that
____
Initial Story List
Might have an initial estimate (perhaps for
both analysis and development), and an expression of technical
and business confidence that this is real and achievable
As a ____, I want to be able to ____ so that
____
I will know this is done when _______
Release Story List
More detailed estimate, and a
specific acceptance test – low confidence
stories might be “spiked” or prototyped
Release planning
6
Licensed Under Creative Commons by Naresh Jain
Stories are fundamental unit of activity
As a ____, I want to be able to ____ so that
____
Initial Story List
Might have an initial estimate (perhaps for
both analysis and development), and an expression of technical
and business confidence that this is real and achievable
As a ____, I want to be able to ____ so that
____
I will know this is done when _______
Release Story List
More detailed estimate, and a
specific acceptance test – low confidence
stories might be “spiked” or prototyped
Release planning Iteration planning
6
Licensed Under Creative Commons by Naresh Jain
Stories are fundamental unit of activity
As a ____, I want to be able to ____ so that
____
Initial Story List
Might have an initial estimate (perhaps for
both analysis and development), and an expression of technical
and business confidence that this is real and achievable
As a ____, I want to be able to ____ so that
____
I will know this is done when _______
Release Story List
More detailed estimate, and a
specific acceptance test – low confidence
stories might be “spiked” or prototyped
As a ____, I want to be able to ____ so that
____
I will know this is done when _______
To do this I must:
1) _____2) _____
Iteration Story List
Possible automation of the acceptance
test
Development team breaks out the detail
of work needed to pass test
Release planning Iteration planning
6
Licensed Under Creative Commons by Naresh Jain
XP Practices
7
Licensed Under Creative Commons by Naresh Jain
Planning
PlanningGame
SmallReleases
Stories
XP Practices
7
Licensed Under Creative Commons by Naresh Jain
Designing
Refactoring
SimpleDesign
Metaphor
XP Practices
7
Licensed Under Creative Commons by Naresh Jain
Coding
OnsiteCustomerContinuous
IntegrationPair
Programming
XP Practices
7
Licensed Under Creative Commons by Naresh Jain
TestingAcceptance
Tests
Test First
Automation
XP Practices
7
Licensed Under Creative Commons by Naresh Jain
SustainablePace
CollectiveOwnership Coding
Standards
InformativeWorkspace
Team
XP Practices
7
Licensed Under Creative Commons by Naresh Jain
XPPractices
PlanningGame
OnsiteCustomer
SustainablePace
ContinuousIntegration
CollectiveOwnership
PairProgramming
Refactoring
AcceptanceTests
Test First
IncrementalDesign
Metaphor
SmallReleases
CodingStandards
Stories
InformativeWorkspace
Automation
XP Practices
8
Licensed Under Creative Commons by Naresh Jain
XP - Concluding Thoughts
Very good at accommodating change
Has really strong Engineering practices
Greatly improves Quality
Eliminates a lot of waste from the process
Very heavy focus on KISS and YAGNI
Automation is the key
Brings back the power into the developer’s hand
9
Licensed Under Creative Commons by Naresh Jain
Scrum
10
Licensed Under Creative Commons by Naresh Jain
Controlled Chaos
Scrum emphasizes on project management
De-emphasis command-and-control management approach
There is a strong emphasis on monitoring (features delivered) and adjusting according to the results
The aim is to find a balance between allowing the business to change their mind and the development team to be able to get work done on a stable scope
11
Licensed Under Creative Commons by Naresh Jain
Scrum ValuesCommitment. Be willing to commit to a goal. Scrum provides people all the authority they need to meet their commitments
Focus. Do your job. Focus all of your efforts and skills on doing the work that you have committed to doing. Don’t worry about anything else
Openness. Scrum keeps everything about a project visible to everyone
Respect. Individuals are shaped by their background and their experience. It is important to respect the different people who comprise a team.
Courage. Have the courage to commit, to act, to be open and to expect respect
12
Licensed Under Creative Commons by Naresh Jain
Scrum in a Nutshell
Courtesy of Ken Schwaber
13
Licensed Under Creative Commons by Naresh Jain
Scrum Terminologies
14
Licensed Under Creative Commons by Naresh Jain
Scrum Terminologies
Sprint
14
Licensed Under Creative Commons by Naresh Jain
Scrum Terminologies
Sprint
Scrum Master
14
Licensed Under Creative Commons by Naresh Jain
Scrum Terminologies
Sprint
Scrum Master
Product and Sprint Backlog
14
Licensed Under Creative Commons by Naresh Jain
Scrum Terminologies
Sprint
Scrum Master
Product and Sprint Backlog
Product Owner
14
Licensed Under Creative Commons by Naresh Jain
Scrum Terminologies
Sprint
Scrum Master
Product and Sprint Backlog
Product Owner
Scrum Teams
14
Licensed Under Creative Commons by Naresh Jain
Scrum Terminologies
Sprint
Scrum Master
Product and Sprint Backlog
Product Owner
Scrum Teams
Daily Scrum Meetings
14
Licensed Under Creative Commons by Naresh Jain
Scrum Terminologies
Sprint
Scrum Master
Product and Sprint Backlog
Product Owner
Scrum Teams
Daily Scrum Meetings
Sprint Planning Meetings
14
Licensed Under Creative Commons by Naresh Jain
Scrum Terminologies
Sprint
Scrum Master
Product and Sprint Backlog
Product Owner
Scrum Teams
Daily Scrum Meetings
Sprint Planning Meetings
Sprint Review
14
Licensed Under Creative Commons by Naresh Jain
Scrum Terminologies
Sprint
Scrum Master
Product and Sprint Backlog
Product Owner
Scrum Teams
Daily Scrum Meetings
Sprint Planning Meetings
Sprint Review
14
Licensed Under Creative Commons by Naresh Jain
Thank You!
Questions?
15