Paylogic, what if we go Scrum?
Paylogic, what if we go Scrum?
Òscar Vilaplana
Paylogic
October 26 2011
@grimborg
http://oscarvilaplana.cat
dev@oscarvilaplana.cat
Paylogic, what if we go Scrum?
Why Scrum Works
Why Scrum works
Why Scrum works for others, what it can do for us and why it will
work for us.
Paylogic, what if we go Scrum?
Why Scrum Works
Better control
On complex systems, centralized control breaks down.
Scrum makes the Teams self-managed.
Scrum shortens the feedback loop.
Paylogic, what if we go Scrum?
Why Scrum Works
Increment of business value
The Product Owner defines "high-priority business value".
The Team decides what it can do in a sprint to deliver it.
Test often the value of the system being developed.
Paylogic, what if we go Scrum?
Why Scrum Works
Scrum turns small teams into their own managers.
Use many minds to solve a problem
Every member is encouraged to participate.
Their ideas are taken into account.
They share a common purpose: they will figure out how to
achieve it.
Paylogic, what if we go Scrum?
Honesty
Honesty
We are not always honest (but we have always good intentions).
When are we not honest, why, and how should we do it?
Paylogic, what if we go Scrum?
Honesty
Self acknowledgement
We must be honestly account for our abilities.
We must be honestly account for the project that we are
working on.
We must be honestly account for the tasks that we have to do.
Paylogic, what if we go Scrum?
Honesty
Honest planning
Not all tasks that we work on are planned honestly.
We often need more time to discuss, review, help others.
We are surprised by unsurprising events, e.g. staging issues.
Paylogic, what if we go Scrum?
The Heart of Scrum
The Heart of Scrum
How Scrum works, in a nutshell.
Paylogic, what if we go Scrum?
The Heart of Scrum
Requirements
Teams understand and commit to delivering business value
Teams are free to figure out how to perform tasks
Teams are given the resources they need.
Paylogic, what if we go Scrum?
The Heart of Scrum
Teams are free to figure out how to perform tasks
Once the Sprint has started, the Sprint Backlog cannot be
changed from the outside.
Every day, the Team has a short meeting to synchronize and
pick their tasks for the day.
Paylogic, what if we go Scrum?
The Heart of Scrum
Teams are given the resources they need.
The ScrumMaster’s role is to help the Teams.
Paylogic, what if we go Scrum?
Bringing Order from Chaos
Bringing Order from Chaos
Scrum and non-Scrum ideas to bring order to a chaotic workflow.
Paylogic, what if we go Scrum?
Bringing Order from Chaos
The team must own its work.
Collective commitment.
Self-organization.
Paylogic, what if we go Scrum?
Bringing Order from Chaos
Tracer bullet
When shooting in the dark, add luminiscensce to every 50th
bullet.
Build limited functionality through the system to demonstrate
the path for all other functionality.
Paylogic, what if we go Scrum?
Bringing Order from Chaos
Sashimi
Slice of raw fish.
Complete on itself.
Has a complete taste similar to the way every other slice
tastes.
Every slice of functionality created by the developers must be
complete.
All that constitutes a complete product must be completed in
the Sprint.
Requirements gathering.
Design.
Coding.
Testing.
Paylogic, what if we go Scrum?
Ready and Done
Ready and Done
“Ready” and “Done” are two important words, yet they are
frequently misused.
Paylogic, what if we go Scrum?
Ready and Done
Definition of Ready
Tasks fully specified to the needs of the developers.
Not because it’s nice to have, but because undetermined
requirements can’t be worked on yet and slow down the team.
Tasks estimated before the Sprint Planning meeting.
If a task is not ready, it goes out of the Product Backlog.
Paylogic, what if we go Scrum?
Ready and Done
Definition of Done.
It is feature complete: the code provides all agreed features.
It is code complete.
There are no known defects.
It has been approved by the Product Owner.
It is Production ready
Paylogic, what if we go Scrum?
Ready and Done
Definition of code complete:
It is covered by unit tests.
It adheres to coding standards.
It has ben refactored any duplicate or ill-structured code.
It contains no clever programming tricks.
It is easy to read and understand.
It is documented (docstrings and documentation).
It has all database changelogs, migration scripts, deployment
instructions. . .
Paylogic, what if we go Scrum?
Artifacts
Artifacts
What are the artifacts that Scrum adds? Who creates them? How
do they work?
Paylogic, what if we go Scrum?
Artifacts
Product Backlog
List of functional and non-functional requirements that, when
turned into functionality, will deliver the Product Owner’s
vision.
Requirements, not tasks.
Prioritized so that the items most likely to generate value are
top priority
Divided into proposed releases
Paylogic, what if we go Scrum?
Artifacts
Sprint Backlog
Tasks that a Team defines for turning the Product Backlog for
that Sprint into an increment of functionality.
The tasks should take between 4h and 16h.
Tasks longer than 16h are considered placeholders for tasks
that haven’t been yet appropriately defined.
Real-time picture of the work that the Team plats to
accomplish during the Sprint.
Every day, the task estimates are updated with the remaining
estimated time.
Paylogic, what if we go Scrum?
Artifacts
Burndown chart
Shows the amount of work remaining across time.
Visualizes the correlation between the amount of work
remaining and the progress of the Team in reducing this work.
Paylogic, what if we go Scrum?
Artifacts
Defect Backlog
Bugs in the tasks of the Sprint Backlog
Paylogic, what if we go Scrum?
Artifacts
Changes report
Differences between two last Product Backlogs.
What happened during the Sprint.
What adaptations have been made to the project in response
to the inspection at the Sprint review.
Paylogic, what if we go Scrum?
Artifacts
Example of Changes report
Why have future Sprints been reformulated?
Why was the release date or content reformulated?
Why did the team complete fewer requirementns than
anticipated during the Sprint?
Where was the incomplete work repriotitized in the Product
Backlog?
Why was the team less or more productive than it had
anticipated?
Paylogic, what if we go Scrum?
Artifacts, in Paylogic
Burndown chart
The Team will update it during the Daily Meeting.
Paylogic, what if we go Scrum?
Artifacts, in Paylogic
Burndown chart example
Paylogic, what if we go Scrum?
Artifacts, in Paylogic
Scrum dashboard example
Paylogic, what if we go Scrum?
Artifacts, in Paylogic
Scrum dashboard example
Paylogic, what if we go Scrum?
Artifacts, in Paylogic
Scrum dashboard example
Paylogic, what if we go Scrum?
Artifacts, in Paylogic
Defect Backlog
The Team will add tasks to it during the Sprint.
Paylogic, what if we go Scrum?
Artifacts, in Paylogic
Changes Report
The Team will make it on the Sprint retrospective meeting.
Paylogic, what if we go Scrum?
The Scrum flow
The Scrum flow
What does it mean, exactly, to “do Scrum”?
Paylogic, what if we go Scrum?
The Scrum flow
Basic Scrum flow
Produt Owner produces a plan (Product Backlog).
The Team commits on some of the tasks on the plan.
The Team synchronizes frequently.
At the end of the Sprint, the Team presents the results and
re-evaluates.
Paylogic, what if we go Scrum?
The Scrum flow
Detailed Scrum flow
Product Owner produces a plan for the project that includes
the Product Backlog.
Work is done in Sprints.
Sprints start with a Sprint planning meeting
Product Owner and Team get together to collaborate about
what will be done for the next Sprint.
Paylogic, what if we go Scrum?
The Scrum flow
Sprint planning meeting: Build the Sprint backlog.
Product Owner tells the Team what is desired.
Identify everyone’s most urgent needs. Focus on the
immediate future.
Team tells the Product Owner how much of that it can turn into
functionality over the next Sprint.
Cannot last longer than 8h.
Team plans out the Sprint: Sprint Backlog.
Two parts:
Choose the tasks that will go into the Sprint backlog.
Timeboxed to 4h.
Figure out how it will turn it into an increment of potentially
shippable product functionality. Timeboxed to 4h.
Paylogic, what if we go Scrum?
The Scrum flow
Deciding tasks for the Scrum backlog
The Team can make suggestions, but the decision of what
Product Backlog can constitute Sprint is the responsibility of
the Product Owner.
The Team is responsible for determining how much of the
Product Backlog that the Product Owner wants worked on the
Team will attempt to do during the Sprint.
It is up to the Team, acting solely on its own and without any
direction from outside the Team, to figure out how it will turn
the Scrum backlog into an increment of potentially shippable
product functionality.
Paylogic, what if we go Scrum?
The Scrum flow
Daily Scrum meeting
Every day, the team gets together for a 15-minute weeting:
Daily Scrum.
Purpose:
Synchronize the work of all Team members daily
Schedule any meeting that the Team needs to forwards its
progress.
Everybody must attend. If a member cannot attend in person,
he must be either on the the phone or have another member
report on his status.
Be on time.
Only pigs talk.
Chickens are not alowed to talk with Team members after the
meeting for clarification or to provide advice or instructions.
Paylogic, what if we go Scrum?
The Scrum flow
Questions to answer on the Daily Scrum
What have you done on this project since the last Daily Scrum
meeting?
What do you plan on doing on this project between now ath
the next Daily Scrum meeting?
What impediments stand in the way of you meeting your
commitments to this Sprint and this project?
Reporting has to be specific: commitments are only real if
they can be assessed.
The purpose is for the Team members to synchronize with
each other, not report to the ScrumMaster.
When adjustment is necessary, the purpose is not to blame
anyone.
Paylogic, what if we go Scrum?
The Scrum flow
When reporting on the Daily Scrum
Do not digress.
Report briskly.
Only the person who is reporting talks. The rest listen.
Don’t engage in side conversations.
If you need to tackle something in detail, set up a meeting
after the Daily Scrum.
Chickens, if present, are not allowed to talk or affect the Daily
Scrum.
Paylogic, what if we go Scrum?
The Scrum flow
Multi-team projects: Scrum of Scrums
Daily Scrum with one member from each team in a multi-team
project.
Coordination.
Resolve dependencies between teams.
Paylogic, what if we go Scrum?
The Scrum flow
Sprint
The Team can seek outside advice.
The Team is utterly self managing.
No one can provide advice, instructions, commentary or
direction to the Team during the Sprint.
No one is allowed to change the Product Backlog during the
Sprint.
If the Sprint proves to be not viable, the ScrumMaster can
terminate the Sprint and set up a new Sprint planning
meeting.
If the Team feels itself unable to complete all of the committed
tasks, it can consult with the Product Owner which items to
remove.
If the Team determines that it can address more Product
Backlog, it can consult with the Product Owner which items to
Paylogic, what if we go Scrum?
The Scrum flow
Responsibilities of the Team members
Attend the Daily Scrum meeting.
Keep the Sprint Backlog up to date and publicly visible
(including the estimates).
Paylogic, what if we go Scrum?
The Scrum flow
At the end of the Sprint: Sprint review meeting.
4-hour time-boxed.
The Team presents what was developed to the Product
Owner.
They decide what the Team should do next.
Paylogic, what if we go Scrum?
The Scrum flow
Before Sprint Planning: Sprint retrospective
Between ScrumMaster and Team
3h time-boxed
ScrumMaster encourages Team to revise its development
process to make it more effective and enjoyable for the next
Sprint.
Paylogic, what if we go Scrum?
The ScrumMaster
The ScrumMaster
What is a ScrumMaster? What does he do? What are his
responsibilities? What authority does he have?
Paylogic, what if we go Scrum?
The ScrumMaster
What does the ScrumMaster Do?
Has to make a personal commitment to his teams.
The team needs to sense that someone is deeply invested in
its work and will protect and help it no matter what.
His attitude should reflect the importance of the project.
It’s a role without authority.
It’s not delegating: it’s being personally responsible.
Earns the team’s respect because he fulfills the duties of the
role and not simply because he was assigned the role.
Key duty: find the biggest, nastiest problem that the team has
and solve it within a day or two of the first Sprint meeting.
Enforce the meaning of Ready and Done.
Prevent waterfall.
Paylogic, what if we go Scrum?
The ScrumMaster
Roles of the ScrumMaster
Remove the barriers between development and Product
Owner: Product Owner drives development.
Teach the Product Owner how to maximize ROI and meet his
objectives through Scrum.
Improve the lives of the development team by facilitating
creativity and empowerment.
Improve the productivity of the development team in any way
possible.
Improve the engineering practices and tools so that each
ingrement of functionality is potentially shippable.
Keep information about the team’s progress up-to-date and
visible to all parties.
Paylogic, what if we go Scrum?
The ScrumMaster
Trust and openness
The ScrumMaster must promote trust and openness.
Honestity brings conflict.
When facilitated well, conflict brings an agreement.
When an agreement has been reached, people can commit
and results are achieved.
Paylogic, what if we go Scrum?
Sprint
Sprint
For how long should we Sprint? What should we do in it? Who
gets to decide what?
Paylogic, what if we go Scrum?
Sprint
What length to choose?
A good length is 2 weeks.
However: it’s good to have more than one sprint per release.
Paylogic, what if we go Scrum?
Sprint
2-week Sprint
It gives enough time to finish the longer tasks.
It’s widely used.
It has less planning overhead.
Paylogic, what if we go Scrum?
Sprint
1-week Sprint
It gives more fine grained control.
It ensures more quality: at the end of week 1, the tasks of the
First Sprint must be done (Potentially Shippable).
The Product Owner can see finished functionality 1 week
before it’s released.
Addresses the difference between Potentially Shippable and
Shippable.
It has one oportunity to correct the course.
It can adapt to changes
If a task is not Ready, it may still be doable in this Release.
It’s the same as the support schedule (see later).
We don’t add or remove people in the middle of a Sprint.
Paylogic, what if we go Scrum?
Sprint
Proposed Sprint length
I propose 1-week Sprint.
Key pros:
Fine grained.
More quality.
Can correct course.
Review:
After 2 releases we evaluate it.
If we see that 2-week release would be better, we change.
Paylogic, what if we go Scrum?
Sprint
First Sprint
Build the core of the features.
Produce the first Potentially Shippable results.
If a task for the release was not Ready, the Product Owner
takes care that it will be for the next Sprint.
At the end, the Product Owner examines them and gives
feedback.
Paylogic, what if we go Scrum?
Sprint
Second Sprint
Add any necessary changes from the Product Owner’s
reaction.
Re-adjust, e.g:
If we were slower due to emergencies.
If we were faster and we can take more tasks.
Paylogic, what if we go Scrum?
Sprint
Sprint planning and retrospective meetings
The Sprint planning and retrospective meetings take a
significant amount of overhead.
After the Team is used to Scrum (about 8 Sprints), they can be
collapsed into a single, shorter meeting of about 90 minutes.
Paylogic, what if we go Scrum?
Sprint
Working during a Sprint
Commit and push frequently. Push at least once per day.
But don’t break the tests: add any necessary code.
You can break your own tests and mark them as xskip. But not
others’.
Run tests frequently so you don’t have to fix everything at the
end of the day.
Work must be done in priority order.
No multi-tasking.
A Team member cannot work on a new task until his current
task is Done.