...

Sprint - Università Degli Studi Di Genova

by user

on
Category:

hotel

83

views

Report

Comments

Transcript

Sprint - Università Degli Studi Di Genova
Università degli
Studi di Genova
An Introduction to Scrum and XP
Prof. Riccardo Berta
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Project management
The waterfall development model originates in
the manufacturing and construction industries;
highly structured physical environments in which
after-the-fact changes are prohibitively costly, if
not impossible.
Software is not a skyscraper!
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Individuals and
interactions
The Agile Manifesto
over
Process and tools
Working software
over
Comprehensive
documentation
Customer
collaboration
over
Contract negotiation
Responding to
change
over
Following a plan
Source: www.agilemanifesto.org
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
SCRUM
A scrum is a way to restart the game after an
interruption, where the forwards of each
side come together in a tight formation and
struggle to gain possession of the ball when
it is tossed in among them
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Values
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Roles
Product owner
ScrumMaster
Team
Artifacts
Product backlog
Sprint backlog
Burndown charts
Scrum (and XP) framework
Ceremonies
Sprint planning
Sprint review
Sprint retrospective
Daily scrum meeting
Practices
XP
Pair Programming
Refactoring
Test Driven Development
Continuous integration
…
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Sprint
SPRINT
Scrum projects make progress in a series of “sprints”
Typical duration is 2–4 weeks
A constant duration leads to a better rhythm
Product is designed, coded, and tested during the sprint
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Scrum
Master
Roles
Responsible for enacting Scrum values and practices
Removes impediments
Ensure that the team is fully functional and productive
Enable close cooperation across all roles and functions
SPRINT
Define the features of the product
Decide on release date and content
Prioritize features
Adjust features and priority every
iteration
Accept or reject work results
Product
owner
Team
Typically 5-9 people
Cross-functional: programmers,
testers, user experience
designers, etc.
Members should be full-time
Teams are self-organizing (no
titles)
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Artifacts
Burndown chart
Depicts the total hours remaining per
day
Shows the estimated amount of time to
release
Ideally should burn down to zero to the
end of the Sprint
Actually is not a straight line
Can bump UP
SPRINT
The requirements
A list of all desired work on the
project
Ideally expressed such that
each item has value to the users
of the product
Prioritized by the product owner
The team takes the Product Backlog and decides
what tasks are necessary
Team self-organizes
Manager doesn’t assign tasks to individuals
Managers don’t make decisions for the team
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Ceremonies
Sprint
retrospective
Daily Scrum
Meeting
Periodically take a look at
what is and is not working
Typically 15–30 minutes
Done after every sprint
Whole team participates
Team
capacity
Daily, 15-minutes, Stand-up
Whole world is invited, but only team
members, Scrum Master and product
owner can talk
Everyone answers 3 questions: What did
SPRINT
you do yesterday? What will you do
today? Is anything in your way?
Sprint planning meeting
Sprint prioritization
Product
backlog
Business
conditions
Current
product
Technology
Analyze and evaluate product backlog
Select stories to be done
Sprint
backlog
Sprint planning
Create sprint backlog (tasks) from
product backlog items (user stories /
features)
Each task is estimated (1-16 hours)
Estimate sprint backlog in hours
Sprint Planning
Meeting
Team presents what it accomplished
during the sprint
Typically takes the form of a demo of
new features
Informal, 2-hour, no slides
Whole team participates
Invite the world
Sprint Review
Meeting
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
The whole picture
Sprint
retrospective
Scrum
Master
Burndown chart
Product
owner
Sprint Planning
Meeting
Team
Sprint Review
Meeting
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Product backlog
Backlog item
Estimate
Allow a guest to make a reservation
3
As a guest, I want to cancel a reservation.
5
As a guest, I want to change the dates of a
reservation.
As a hotel employee, I can run RevPAR
reports (revenue-per-available-room)
3
8
Improve exception handling
8
...
...
30
50
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Tasks
Code the user interface
Code the middle tier
Test the middle tier
Write online help
Write the foo class
Add error logging
Sprint backlog
Mon Tues Wed Thur
Fri
8
4
8
16
12
10
4
8
16
16
11
8
8
8
8
8
8
4
12
8
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Burndown chart
Tasks
Mon Tues Wed Thur
Code the user interface
Code the middle tier
Test the middle tier
Write online help
8
16
8
12
4
12
16
8
10
16
7
11
Fri
8
50
Hours
40
30
20
10
0
Mon
Tue
Wed
Thu
Fri
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Pair Programming
 In XP, programmers work in pairs, sitting together to develop
code
 This helps develop common ownership of code and spreads
knowledge across the team
 It serves as an informal review process as each line of code is
looked at by more than 1 person
 It encourages refactoring as the whole team can benefit from
this
 Measurements suggest that development productivity with
pair programming is similar to that of two people working
independently
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Test driven development
 User involvement in test development and validation
 Automated test harnesses are used to run all component tests
each time that a new release is built
 Writing tests before code clarifies the requirements to be
implemented
 Tests are written as programs rather than data so that they
can be executed automatically. The test includes a check that
it has executed correctly
 All previous and new tests are automatically run when new
functionality is added. Thus checking that the new
functionality has not introduced errors
Scuola Politecnica
Dipartimento DITEN
Università degli
Studi di Genova
Refactoring
 The process of code improvement where code is reorganised
and rewritten to make it more efficient, easier to understand,
etc.
 Refactoring is required because frequent releases mean that
code is developed incrementally and therefore tends to
become messy
 Refactoring should not change the functionality of the system
 Automated testing simplifies refactoring as you can see if the
changed code still runs the tests successfully
Scuola Politecnica
Dipartimento DITEN
Fly UP