ScrumGuides training: Agile Software Development With Scrum
-
Upload
alexey-krivitsky -
Category
Business
-
view
11.130 -
download
3
description
Transcript of ScrumGuides training: Agile Software Development With Scrum
Agile Software Development with SCRUM
www.scrumguides.com
13 February 2009
Agile Software Development with SCRUM ©SCRUMguides2
Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM
SCRUM simulation
Extra SCRUM topics
We will be having 10-minute breaks each 60-90 minutes.
Agile Software Development with SCRUM ©SCRUMguides33
About myself
Alexey Krivitsky
Software developer, Agile coach
Certified ScrumMasterCertified Scrum Practitioner
http://www.linkedin.com/in/alexeykrivitsky
email: [email protected]: alexeykrvicq: 436-471-64gsm: +380 50 358 92 12
Currently building up a training centerwww.scrumguides.com
Agile Software Development with SCRUM ©SCRUMguides4
Our presence
Ukrainian Agile communitywww.agileukraine.org
Join our Google discussion group
Ukrainian SCRUM portalwww.scrum.com.ua
Agile Software Development with SCRUM ©SCRUMguides5
Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM
SCRUM simulation
Extra SCRUM topics
Agile Software Development with SCRUM ©SCRUMguides6
Exercise “Continuum”
Agile Software Development with SCRUM ©SCRUMguides8
Project successes/failures
Have you been on a successful project?
Have you been on an unsuccessful project?
Agile Software Development with SCRUM ©SCRUMguides9
Agile might help you, let’s see…
Understanding Agile and SCRUM
Agile Software Development with SCRUM ©SCRUMguides10
The two approaches, two cultures
Predictive approach
Sees projects as predictive processes which results can be foreseen (predicted) with acceptable probability after reasonable planning and study efforts spent.
Adaptive approach
Questions predictability of projects due to their built-in complexity. It puts stress on steering based on observations.
Agile Software Development with SCRUM ©SCRUMguides1111
The predictive approach
Requirements spec
Design spec
Release
Order
CD
R
P P
Actualneed
Agile Software Development with SCRUM ©SCRUMguides1212
The adaptive approach
C
Vision
Actual need
When in the project we 100% know if we on/off the track in terms of the time, scope, costs…?
Agile Software Development with SCRUM ©SCRUMguides13
The two approaches to project management
Predictive approach– Heavy-weight;– Process-oriented;– Plan-driven;– “Waterfall”.
Adaptive approach– Light-weight;– People-oriented;– Value-driven;– “Agile”.
Agile Software Development with SCRUM ©SCRUMguides14
Order and Chaos
Agile Software Development with SCRUM ©SCRUMguides15
The cone of uncertaintySCRUM decreases the chaos by fixing the scope
Agile Software Development with SCRUM ©SCRUMguides16
The two approaches on the time scale
Which advantages/disadvantages of the approaches you see?
Agile Software Development with SCRUM ©SCRUMguides17
Agile and SCRUM
SCRUM – one of the Agile approaches. It is a project framework, or a set of recommendations by following which you can increase the chance of successful ending of your projects.
Agile Software Development with SCRUM ©SCRUMguides18
Agile Manifesto
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and toolsWorking software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Agile Software Development with SCRUM ©SCRUMguides19
Principles of Agile Manifesto
Please see www.agilemanifesto.org for the twelve principles
Agile Software Development with SCRUM ©SCRUMguides20
Main aspects of Agile
Agile Software Development with SCRUM ©SCRUMguides21
The main aspects of Agile
Team Work
Prioritization
Short cycles
Learn and Adapt
Agile Software Development with SCRUM ©SCRUMguides22
The main aspects of Agile: Team work
What is a team?
Agile Software Development with SCRUM ©SCRUMguides23
Team work (cont.)
Exercise “an airplane factory”.
Agile Software Development with SCRUM ©SCRUMguides24
Push vs. Pull systems
SCRUM is a pull system
Agile Software Development with SCRUM ©SCRUMguides25
Team work (cont.)
What is a team?
Are you in a good team?
How to become a greater team?
How to evaluate and motivate people’s work in a team?
Agile Software Development with SCRUM ©SCRUMguides2626
Is here such a thing as “team work”?
Requirements spec
Design spec
Release
Order
CD
R
P P
Actualneed
Agile Software Development with SCRUM ©SCRUMguides27
A SCRUM team is
A cross-functional group of people (5-9 members) responsible for managing itself to develop the product.
Agile Software Development with SCRUM ©SCRUMguides28
The main aspects of Agile
Team Work
Prioritization
Short cycles
Learn and Adapt
Agile Software Development with SCRUM ©SCRUMguides29
Prioritization and Traditional approaches
An alternative tool to backlogs are requirement specifications.
Agile Software Development with SCRUM ©SCRUMguides30
“Gimme all requirements, or ….”
Agile Software Development with SCRUM ©SCRUMguides31
As a result …
As a result all requirements are the “top priority”.
Which is basically the same as not having the priorities at all.
Agile Software Development with SCRUM ©SCRUMguides32
And as a result …
Agile Software Development with SCRUM ©SCRUMguides33
What does it mean to us?
As a consequence: we can cut costs and duration of our projects in 2/3!
Does it mean we (the teams) will earn less money?
Agile Software Development with SCRUM ©SCRUMguides34
What about your projects?
Think about your current (recent) projects.
List 5-10 features that could have been avoided or simplified by keeping the product as good as it was.
What would be your % of rarely/never used features?
Agile Software Development with SCRUM ©SCRUMguides36
Prioritize (cont.)
YAGNI - “You ain’t gonna need it”. A strategy of postponing decisions until the last possible moment.
Product backlogJust-in-time requirements management tool.
Agile Software Development with SCRUM ©SCRUMguides37
The “menu” (Agile) approach
Product backlog is the project’s menu.
“Servants” help to make better decisions.
Agile Software Development with SCRUM ©SCRUMguides38
What saves our projects?
“The features that we manage to de-scope are the savers of our projects” © Kent Beck
Agile Software Development with SCRUM ©SCRUMguides39
Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM till 16:00
Coffee break 16:00 – 16:30
SCRUM simulation 16:30 – 17:30
Extra SCRUM topics 17:30 – 18:00
Agile Software Development with SCRUM ©SCRUMguides40
The main aspects of Agile
Team Work
Prioritization
Short cycles
Learn and Adapt
Agile Software Development with SCRUM ©SCRUMguides41
The main aspects of Agile: Short Cycles
The shorter the cycle the more efficient the process
1. We have more time to “play” with the product that we are developing;
2. The sooner we can catch a defect the easier it is to fix it;
3. The shorter the cycle (the smaller a batch of work) the less need we have in creating intermediate artifacts.
Agile Software Development with SCRUM ©SCRUMguides42
The “Flip Coins project
Agile Software Development with SCRUM ©SCRUMguides43
Short Cycles (cont.)
“Fail fast” (с) Ken Schwaber
Agile Software Development with SCRUM ©SCRUMguides44
Iterative and Incremental approach
- How do you eat an elephant?- One bite at a time!
Agile Software Development with SCRUM ©SCRUMguides45
Shorter Cycles = Faster Feedback
1. Daily meetings2. Code Reviews3. Release to end-users4. Iteration reviews5. Continuous integration6. Feedback from (onsite) clients7. Unit-testing8. (Automated) acceptance testing9. Pair programming
Agile Software Development with SCRUM ©SCRUMguides46
Shorter Cycles = Faster Feedback (ordered)
Pair programming (immediate feedback)Unit-testing (5-10 minutes)Continuous integration (hourly)Feedback from (onsite) clients (daily)Daily meetings (daily)Code Reviews (some days)(Automated) acceptance testing (some days)Iteration reviews (each second week)Release to end-users (some weeks-months)
Agile Software Development with SCRUM ©SCRUMguides47
The main aspects of Agile
Team Work
Prioritization
Short cycles
Learn and Adapt
Agile Software Development with SCRUM ©SCRUMguides48
Exercise “Ball Points”
Agile Software Development with SCRUM ©SCRUMguides49
The main aspects of Agile: Learn and Adapt
As we work we learn lots of new things about the product being developed, technologies being used, our clients, ourselves.
By incorporating this information into daily work we can become better day by day.
Agile Software Development with SCRUM ©SCRUMguides50
Visibility tools
In order to evolve the way we work we need to keep everything visible to ourselves and our clients
Tools that might help:Sprint Burndown ChartTask boardsWikis
Agile Software Development with SCRUM ©SCRUMguides51
The Sprint Burndown Chart
Agile Software Development with SCRUM ©SCRUMguides52
The Task Board - an information radiator
Agile Software Development with SCRUM ©SCRUMguides53
The main aspects of Agile
Team Work
Prioritization
Short cycles
Learn and Adapt
Agile Software Development with SCRUM ©SCRUMguides54
Agile Software Development with SCRUM ©SCRUMguides56
Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM
SCRUM simulation
Extra SCRUM topics
Agile Software Development with SCRUM ©SCRUMguides57
SCRUM in 59 minutes
Agile Software Development with SCRUM ©SCRUMguides58
Game structure
PlanningChoose a product and your PO
Help your PO to build up a PBHelp your PO to prioritize the PB itemsPlan your first sprint
SprintingDay one - 7 minDaily standup - 3 minDay two - 7 minDemonstration - 3 min (per a team)
Agile Software Development with SCRUM ©SCRUMguides59
Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM
SCRUM simulation
Extra SCRUM topics
Agile Software Development with SCRUM ©SCRUMguides60
SCRUM recap
Roles– The Team– ScrumMaster– Product Owner
Artifacts– Product Backlog– Sprint Backlog– Sprint/Release Burndown Chart
Meetings (ceremonies)– Sprint Planning– Daily Scrum (“Stand-Up”)– Sprint Review (Demo)– Retrospective
Agile Software Development with SCRUM ©SCRUMguides61
Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM
SCRUM simulation
Summary of SCRUM concepts
Agile Software Development with SCRUM ©SCRUMguides62
Join our community!
Ukrainian Agile communitywww.agileukraine.org
Join our Google discussion group
Ukrainian SCRUM portalwww.scrum.com.ua