! Introduction to Scrum The Waterfall model!

advertisement
Introduction to Scrum!
September 1, 2011!
!
David Broman!
Department of Computer and Information Science!
Linköping University, Sweden!
davbr@ida.liu.se!
2
The Waterfall model!
! 
! 
Requirements
David Broman
davbr@ida.liu.se!
One of the first life-cycle models (Royce, 1970)!
Very common, very criticized!
System Design
Program Design
Finish each phase
before continue
to next.!
Why is the waterfall model
!
so criticized? !
Implementation
Which are the problems?!
Can it be useful sometimes?!
Integration
Testing
System Testing
Milestone and deliverable at !
Acceptance Test
each step. (Artifacts such as Design
document, Req. Specification. etc.).!
Maintenance
!
Time
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
The Waterfall model - some arguments!
3
David Broman
davbr@ida.liu.se!
Pros!
! 
Simple, manageable and easy to understand !
! 
Fits to common project management practices
(milestones, deliverables etc.)!
! 
Focus on requirements and design at beginning, save money and time at the end !
! 
Can be suitable for short projects (some
weeks)!
! 
Can be suitable for "stable" projects, where
requirements do not change!
! 
Focus on documents, saves knowledge which
can be reused by other people.!
! 
Widely used, e.g. US Department of Defense!
! 
Can be suitable for fixed-price contracts !
!
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
The Waterfall model - some arguments!
Cons!
! 
Software requirements change, hard to sign-off on a SRS.!
! 
Early commitment. Changes at the end, large
impact.!
! 
Feedback is needed to understand a phase.
E.g. implementation is needed to understand
some design.!
! 
Difficult to estimate time and cost for the
phases.!
! 
Handling risks are not part of the model.
Pushes the risks forward.!
! 
Software "is not" developed in such a way. It
evolves when problems are more understood.
Little room for problem solving.!
!
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
4
David Broman
davbr@ida.liu.se!
5
Can we improve the model?!
David Broman
davbr@ida.liu.se!
Iteration back to previous phase!
!
Requirements
System Design
Program Design
Implementation
Integration
Testing
System Testing
Acceptance Test
Danger! E.g. a performance
problem can result in a
major requirements change.
Very expensive rollback...!
Part II!
!
!
Part I!
Processes and models in Software Engineering!
Maintenance
SCRUM!
6
Do it twice?!
David Broman
davbr@ida.liu.se!
Second round, do it right.!
!
Requirements
The original paper is actually!
misunderstood! !
System Design
(Royce, 1970) includes!
!  Iteration of phases!
!  "Do it twice" prototype!
Program Design
First round, a
prototype!
!
Implementation
Integration
Testing
System Testing
Acceptance Test
!
Part I!
Processes and models in Software Engineering!
Input to the phases
in the second
round !
!
Part II!
SCRUM!
Maintenance
7
Is overlapping phases a solution?!
David Broman
davbr@ida.liu.se!
When do we "sign-off", !
e.g. when do we have all requirements?!
!
What if a major design flaw is
discovered at the testing
phase?!
!
requirements!
design!
Release!!
implementation!
test!
Time!
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
8
Is overlapping phases a solution?!
David Broman
davbr@ida.liu.se!
What kind of structure have we actually
achieved? No sign-off. How does this
help us?!
!
requirements!
design!
Release!!
implementation!
test!
deployment!
Time!
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
9
What should be built?!
David Broman
davbr@ida.liu.se!
The hardest single part of building a software
system is deciding precisely what to build !
(Frederick P. Brooks)!
!
How? By delivering
several releases?!
!
design!
Release!!
implementation!
test!
deployment!
Time!
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
10
Iterative Development!
When should the releases take
place?!
Time-boxing - The time period is
fixed for each iteration. !
!
Customer Feedback!
David Broman
davbr@ida.liu.se!
What should be included in the
release?!
Prioritized functionality - Do the
most important parts first.!
Customer Feedback!
R1!
R2!
design!
implementation!
Iteration 1!
Iteration 2! test! Iteration 3!
deployment!
Time!
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
Final Release!!
11
We are using an iterative process!!
Define a plan with 1..N iterations. We do not have to
care about plans... !
Now, let's hack! !
David Broman
davbr@ida.liu.se!
Harry!
the hacker!
Time!
Is this a good iterative process?!
!
Of course not. We need some structure!!
!
Methodologies
and defined
Process frameworks
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
Agile Approaches - Agile Alliance !
12
David Broman
davbr@ida.liu.se!
Lightweight approaches to satisfy the customers with !
"early and continuous delivery of valuable software"!
Manifesto for Agile Software development!
Favor!
! 
Individuals and interactions over processes and tools!
! 
Working software over comprehensive documentation!
! 
Customer collaboration over contract negotiation!
! 
Responding to change over following a plan!
!
(http://agilemanifesto.org, 2001)!
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
13
Scrum!
David Broman
davbr@ida.liu.se!
Approach public in 1995 at OOPSLA!
"Scrum" strategy used in rugby for getting!
an out-of-play ball back into play.!
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
14
Intro!
!
Part I!
Processes and models in Software Engineering!
David Broman
davbr@ida.liu.se!
Part II!
SCRUM!
15
Scrum Overview!
David Broman
davbr@ida.liu.se!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
16
The Sprint (1)!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
David Broman
davbr@ida.liu.se!
•  An iteration
•  Time-boxed
•  30 days or less
•  No time between sprints
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
•  40 hours week
•  Open and visible
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
17
The Team!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
David Broman
davbr@ida.liu.se!
•  Cross functional
•  No titles
•  Self-organized
•  7 plus/minus two
•  Develops, tests, documents etc.
in iterations = sprints
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
18
Product Owner!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
David Broman
davbr@ida.liu.se!
•  One and only one person
•  Prioritize and manage
the product backlog
•  Manage ROI
•  The customer ”interface”
The product owner may not
•  act as a project manager
•  tell when and what something should
be done
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
19
Scrum Master!
David Broman
davbr@ida.liu.se!
Roles
•  Team
•  Product Owner
•  Scrum master
•  Make sure the scrum team adheres
Scrum values, practices and rules
•  Run meetings
•  Protects the team from disturbance
•  Collects and removes obstacles
(Impediment list)
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
The scrum master may not
•  Mange the scrum team the scrum team is self-organized
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
Scrum master cannot be product owner
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
20
Pigs and Chickens!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
David Broman
davbr@ida.liu.se!
•  Scrum team members are ”pigs”
•  Everyone else is a ”chicken”
•  Chickens cannot tell ”pigs” how to do
their work
”A chicken and a pig are together when the
chicken says ”Let’s start a restaurant!”. The pig
thinks it over and says ”What would we call this
restaurant?” The chicken says ”Ham n’ Eggs!” The
pig says ”No thanks, I’d be committed, but you would
only be involved!”
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
21
David Broman
davbr@ida.liu.se!
Exercise
Project leading and selforganization
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
22
Product Backlog (2)!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
David Broman
davbr@ida.liu.se!
•  List of product backlog items (PBI)
(approx. List of potential requirements)
•  Prioritized
•  Available
•  Never complete
•  Features, bug fixes,
documentation, tests etc.
•  Value (PO) and estimates (Team)
•  PO responsible, everyone can add
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
Release planning meeting (3)!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
23
David Broman
davbr@ida.liu.se!
•  Initial meeting – create initial backlog
•  Short meetings, end of each sprint
- Update and prioritize product backlog
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
Sprint planning, Part 1, what (4)!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Part 1 – ”What” (4)
•  Break down top items
•  Estimate product backlog
•  Select PBIs for a sprint
•  Time-boxed 4h
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
Optional: Sprint GOAL
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
24
David Broman
davbr@ida.liu.se!
25
Prioritization of requirements!
David Broman
davbr@ida.liu.se!
Customer !
Value!
High!
Sweet Spot
Low!
Avoid
Low!
High!
Development Effort!
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
Effort Estimation… a good approach?!
26
David Broman
davbr@ida.liu.se!
No idea. I
have never
done this
before... I
wonder if it is
even
possible.
How long time does it take for you to
implement the encryption layer?
8 months +- 2 months
Sam!
the seller!
!
Part I!
Processes and models in Software Engineering!
Harry!
the hacker!
Part II!
SCRUM!
27
Planning Poker ® - Exercise!
Customer value estimation !
! 
Talk to the customer!!
David Broman
davbr@ida.liu.se!
1. List things to be done to make my party great!!
Effort estimation (Planning poker®)!
! 
! 
! 
Variant of the Delphi approach!
Speed-up estimations!
Everyone participate!
2. Prioritize the list in regards to customer value !
3. Base line e.g., “Cook food” is 2.
Relative estimation.!
Choices: ? 0 ½ 1 2 3 5 8 13 20!
40 100 infinity!
4. Effort estimation for each item!
- Read and discuss item (short) !
- Make a decision (privately)!
- Show cards at the same time!
- Highest and lowest argue!
- Repeat until consensus!
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
Sprint planning, Part 2, how Sprint Backlog(6) !
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
Part 2 - ”How” (5)
•  Design
•  Identify tasks
•  Estimate tasks (hours)
•  Output: Sprint backlog
Sprint backlog
•  Consists of tasks
•  Less than 2 day (preferable hours)
•  Not ordered
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
28
David Broman
davbr@ida.liu.se!
29
Task Board (6)!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
David Broman
davbr@ida.liu.se!
Task Board
•  Not defined by Scrum
•  Use non high-tech
•  Example of columns
•  PBI
•  Todo
•  In Process
•  To Verify
•  Done
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
30
Sample Task Board!
!
Part I!
Processes and models in Software Engineering!
David Broman
davbr@ida.liu.se!
Part II!
SCRUM!
31
Done!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
David Broman
davbr@ida.liu.se!
•  When are we done?
•  “No more remaining work”
•  Includes testing, documentation etc.
•  Possible to ship after each sprint
•  Everybody – understand what
done means
Tools to support done
•  Version handling (SCM)
•  Automated build
•  Automated tests
(Continuous integration)
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
32
Burn-down Chart (7)!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
David Broman
davbr@ida.liu.se!
Burn-down chart
•  Only track hours remaining,
not hours worked
•  X – days (in Sprint)
•  Y – hours remaining
• Remove meeting time, vacation etc.
from total available hours
•  Update only when PBIs are DONE
•  Slope – the team velocity.
•  When not done – Undone PBIs
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
33
Daily Scrum (8)!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
David Broman
davbr@ida.liu.se!
•  Stand-up meeting
•  Scrum master runs the meeting
•  Every morning
•  Time-boxed 15min
•  1 minute each person
•  Do NOT solve problems!
•  Chickens are not allowed to talk
Questions
•  What did you do yesterday?
•  What will you do today?
•  What impediments stand in your way?
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
34
David Broman
davbr@ida.liu.se!
Exercise
Daily Scrum - Theater
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
35
Impediment List!
Roles
•  Team
•  Product Owner
•  Scrum master
David Broman
davbr@ida.liu.se!
•  List of obstacles
•  Scrum Master’s backlog
•  Daily update
•  Open, visible and honest
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
36
Sprint review (9)!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
David Broman
davbr@ida.liu.se!
•  Time-boxed 4h
•  End of sprint
•  Team + Scrum Master + Product owner
(potentially also customer)
•  Informal meeting – what has been done
•  Demonstrate – no power points
•  Show working functionality – get feedback
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
37
Sprint retrospective (10)!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
David Broman
davbr@ida.liu.se!
•  3h, time-boxed
•  Inspect the last sprint, regarding
•  People
•  Relationships
•  Processes
•  Tools
•  How to make things better
– process improvements
•  What was good?
•  What was not so good?
•  How can we improve?
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
38
SCRUM!
David Broman
davbr@ida.liu.se!
Roles
•  Team
•  Product Owner
•  Scrum master
Lists
•  Product backlog
•  Sprint backlog
•  Impediment list
Meetings
•  Release planning
•  Sprint planning
•  Daily Scrum
•  Sprint review
•  Sprint retrospective
Thanks for listening!
Sprint, Task board, Burn-down chart, Done, Velocity
!
Part I!
Processes and models in Software Engineering!
Part II!
SCRUM!
Download