Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Scrum Training - English

No description
by

Leonardo Pautasio

on 29 October 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Scrum Training - English

Scrum!
Why Scrum? Why not Waterfall?
Statistics
31% of IT projects are
canceled
53% of IT projects cost
double
of the estimated
Only
16%
are completed on the estimated timeline and cost
¡¡¡40 (cuarenta) años!!!
64% of functionality is
never
or
rarely
used
I think that with Waterfall... we are ok...
of developing
software the same way!
"We better not tell anything
to the client"
Sound familiar...?
Let's hope they don't see this bug...
This will be tested live...
They asked for this, if it doesn't make sense... well...
It doesn't matter if there's a better way.... they want this...
Giant
requirements gathering
phase
Once the design
phase starts, the
client has no clue
about
anything
The next thing the client sees is the
finished app
, ready to be tested...
Expectations
Reality
This is not what I wanted!!!
A Framework that doesn't help
Exhaustive
documentation
Lots of
processes
Lots of
tools
Crazy
roles
Results
Annoyed client
Missing functionality
Incomplete functionality
The ones developed are not convincing
Client wants changes
But most importantly:
Communication only at the
beginning
and the
end
of the project
lot
of demoralizing
This generates a lot... lot...
There must be another way...
Roles
What is Scrum?
Ceremonies
A little of history
So then, what is it?
Lean IT
Lean (origin)
It started at Toyota in the 30's (TPS)
It was later implemented in software development
Philosophy / management discipline of guaranteed efficacy over time
Promotes removing all kinds of waste
It's been proved that it promotes simultaneous improvement of
cost, quality,

velocity
and
agility
7 Lean principles
Understand how the client perceives
value
Remove
waste
from the end-to-end value chains
Flows
cleanly from the beginning to the end
Build what
the client wants
Pursue perfection through continuous
improvement
Agile manifesto
Remove waste
Amplify learning
Empower the team
Encourage integrity
See the
whole picture
Make informed commitments
Deliver
quickly
unnecessary functionality
bad
communication
defects
tasks changes
incomplete
functionality
start testing as soon as possible
constant feedback
knowledge
base
base decisions on facts
wait until the last responsible moment
let the solution emerge
faster feedback
maximize ROI (return on investment)
listen to them
let them take decisions
challenge them
through the implementation of good practices
see the end-to-end chain
apply principles on the value chain
verify the process continuously
On March of
2001,
a group of visionaries convened by Kent Beck, gathered to discuss new ways of developing software, and they created what is called the agile manifesto, described as follows:
Individuals and interactions
over processes and tools
Working software
over comprehensive documentation
Customer collaboration
over contract negotiation
Responding to change
over following plans
Scrum is an
agile
process
It's an
iterative
and
incremental
development
framework
Centered on giving the
highest business value
in the
shortest time
Allows to
quickly
and
repeatedly
inspect development
Business defines priorities
Teams are
self

organized
in order to determine the best way to deliver the highest priority functionality
Every x weeks, anybody can see the real software working and decide if they want to launch it, or keep improving it in the next iteration
What we've seen so far...
Historically, the methodology used for development was
waterfall
These methodologies are
"heavyweight"
These methodologies have created
problems...
For the
"user"
(us, developers),
For the
"client"
, who was unsatisfied
This is why
agile,
a
"lightweight" framework,
is created.
...after
40 years
of not doing
anything differently
Product Owner (PO)
Scrum Master
The Team
Defines product functionality

Prioritizes
considering business value

Handles
dates
and releases
contents

Responsible for product
profitability
(ROI)

Accepts
or
rejects
results
Is a
team facilitator

Responsible for promoting
Scrum values and practices

Removes blocks

Makes sure the team is compleatly
functional
and
productive

Allows close
cooperation
between all
roles
and
functions

Is the team's
shield
against external interferences
Multidisciplinary
(devs, QAs, architects)

small
- Generally, 5 to 9 people

Prioritize
according to business value

Self-organized

Has
autonomy
and
decision power
"That is, while there is value in the items on
the right, we value the items on the
left
more."
Planning
Daily Standup
Demo
Retrospective
Artifacts
Product backlog
Sprint backlog
Burndown chart
List of
requirements
(called user stories) written by the PO
Prioritized
by Business Value
At the beginning of the project, the team
estimates
the backlog
It must include all the client facing
features
It must have a certain level of detail
The bigger Business Value items must be split into smaller ones, that can be
estimated
and
tested
It's the
sprint planning
artifact
The team is committed to deliver the
highest priority
stories of the product backlog
These stories become the sprint backlog
These are the
stories
that the team will work on during the next
sprint
It shows, day by day, the sprint
progress

The
unit
is chosen by the team (story points, stories, tasks, hours)
It's always present on the
board
It is usually recalculated daily
It allows to
take action
if needed (take more stories or renegotiate the scope)
Objective: to plan the next iteration (
sprint
)
Using the
product backlog
, the team chooses the stories that they are compromised to finish
The stories are taken one by one, until the sprint is "full"
The stories are estimated using some of the techniques (for e.g., "
planning poker
")
The stories are divided into tangible
tasks
Tasks shouldn't take more than one working day
How everything begins?
Once upon a time, there was a client that had an idea
He looked for the best company to develop his idea, and that's how he found us: Solstice Mobile
We had a
meeting
with this client to discover his business needs
In this meeting, we made a "wish list" called
product backlog
The product backlog is exactly that: a list of what the
client wants
, written in a particular way: with
user stories
Once this is done, the product backlog is ordered by the
business value
The client decides what user stories he needs more. Which stories make him
happier
As a
User
,
I want
to search by airline
so that
I only see flights operated by that airline
User story #1
As a
User
,
I want
to search by airport
so that
I only see flights for that airport
User story #2
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
All these stories together are what is called the system's
product backlog
In this particular case,
flights reservations
system
Product backlog
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Business value: __
Estimation: __
Let's take a look at a story that begins like this...
The team estimates this
backlog
in
size
They use generic units, called
story points
This measures the
total size
of the project and the
relative size
of every user story
Based on this analysis, a
proposal
is created for the client (cost, time and people)
We have an agreement
And then we start
As a
User
,
I want
to search by airline
so that
I only see flights operated by that airline
User story #1
As a
User
,
I want
to search by airport
so that
I only see flights for that airport
User story #2
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
Product backlog
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
Business value: 20
Estimation: 8
Business value: 19
Estimation: 5
Business value: 18
Estimation: 8
Business value: 17
Estimation: 13
Business value: 16
Estimation: 21
Business value: 15
Estimation: 3
Business value: 14
Estimation: 1
Business value: 11
Estimation: 3
Business value: 10
Estimation: 5
Business value: 9
Estimation: 1
Business value: 13
Estimation: 5
Business value: 12
Estimation: 3
Business value: 6
Estimation: 13
Business value: 7
Estimation: 21
Business value: 8
Estimation: 2
With the estimated backlog, in business value as well as in size...
We are going to have development cycles, called
sprints
The team takes the user stories, one by one, until they "complete" a
sprint
This new list of stories is called
sprint backlog
The stories are choosed using the business value as the parameter
Every story inside the sprint backlog will have a bigger business value than the next one, and lower than the previous one
As a
User
,
I want
to search by airline
so that
I only see flights operated by that airline
User story #1
As a
User
,
I want
to search by airport
so that
I only see flights for that airport
User story #2
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
Product backlog
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
Business value: 20
Estimation: 8
Business value: 19
Estimation: 5
Business value: 18
Estimation: 8
Business value: 17
Estimation: 13
Business value: 16
Estimation: 21
Business value: 15
Estimation: 3
Business value: 14
Estimation: 1
Business value: 11
Estimation: 3
Business value: 10
Estimation: 5
Business value: 9
Estimation: 1
Business value: 13
Estimation: 5
Business value: 12
Estimation: 3
Business value: 6
Estimation: 13
Business value: 7
Estimation: 21
Business value: 8
Estimation: 2
As a
User
,
I want
to search by airline
so that
I only see flights operated by that airline
User story #1
As a
User
,
I want
to search by airport
so that
I only see flights for that airport
User story #2
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
Sprint backlog
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
As a
[user]
, I want
[functionality]
so that
[business value]
User Story #...
Business value: 20
Estimation: 8
Business value: 19
Estimation: 5
Business value: 18
Estimation: 8
Business value: 17
Estimation: 13
Business value: 16
Estimation: 21
Business value: 15
Estimation: 3
Business value: 14
Estimation: 1
Business value: 11
Estimation: 3
Business value: 10
Estimation: 5
Business value: 9
Estimation: 1
Business value: 13
Estimation: 5
Business value: 12
Estimation: 3
Business value: 6
Estimation: 13
Business value: 7
Estimation: 21
Business value: 8
Estimation: 2
This number represents the business value of the user story
There are several ways of calculating this number
We only need that the user stories have a "
unique
" value
This number represents the user story size
There are also several methods to calculate this number
We want this number to make sense to the team
User story #1
1 story point
User story #2
2 story points
User story #4
4 story points
User story #3
2 story points
This project has
4 stories
The total size is
9 story points
We can say that the story #4 is
double in size
compared to the story #2
Story #4 is, at the same time,
4 times bigger
than story #1
Story #1 is
1/9 of the project
Story #4 is
4/9 (almost half) of the project
Project #1
Origins
After all this, at the end of the project, the client is happy with the value delivered by the team, and it's time to celebrate :D
But before that...
Let's finish formalizing some concepts!
It's a meeting... yes,
daily
:D
It lasts
15 minutes at most
Everyone
stands in front of the board
It is not a
status
meeting
It is not a meeting for solving problems
It's a meeting where every member of the team tell the others:
What he did yesterday
What he plans to do today
If there are any blockers to accomplishing his tasks
It's a meeting where the team shows the client the work done during the sprint
It happens at the
end
of the sprint
Informal
The whole team
participates
Everyone is invited (stakeholders)
At the
end
of every sprint
The entire team
reviews:
What has gone
well
(so they can keep doing that)
What can be
improved
(and how)
Duration will depend on the spring and the type of retrospective (there are lots of techniques)
The team commits to improve "x" tangible things for the next sprint
It is also a moment for group catharsis :)
Questions?
40 years
Full transcript