Scrum

April 10, 2013

SCRUM is a way to organize the creation of software so that you can produce your end result of shipping high quality software that meets your “clients” expectations.

At a high level overview I really like scrum because it keeps your team cross-functional (instead of everyone retreating to their silos of familiarity) and because everyone on your team is working on the same project during the sprint it breeds a much better environment for collaboration.

Below is simply a list of my notes about the keywords and ideas that make up scrum. SPRINTS

Are usually 4 weeks but could be as little as 1 week.
No new items can be added.
At the end of the sprint you should have something that is tangible and will be truly “DONE”. The team reviews w/ stakeholders and demo’s application.
Meet together as a team for 15 min every day

DONE

Done means that your software is integrated, fully tested, end-user documented, and potentially shippable. At the end of the sprint if your product isn’t shippable than you probably lack some automation or your team isn’t cross-functional enough. SCRUM ROLES

Product Owner - Maximizes ROI
Team - is cross-functional and self-managing
    There are no fixed specialist titles in a group
    Multi-Learning
    Team size is +/- 7 people
    Team avoids multi-tasking across multiple projects
Scrum Master - helps the product group learn and apply scrum

PRODUCT BACKLOG

A prioritized list of features and does not contain user stories. * Detailed Appropriately - Top priorities are more fine-grain than lower priority items * Estimated * Emergent - The product backlog is regularly refined. Items may be added, removed, modified, split, and changed in priority. * Prioritized - Most bang for your buck, tackle high risks early before the risks attack you. SPRINT PLANNING

You have a meeting that is 1 hour long / week of sprint. Sprint Planning Part 1:

Review the high-priority items
What and Why?
Devise the Sprint Goal

Spring Planning Part 2:

How?
Decide how much work will complete
Sprint backlog
Forecast

NOTE: Only volunteer for one task at a time. DAILY SCRUM

What has been accomplished since the last meeting?
What will be done before the next meeting?
What obstacles are in the way?

NOTE: This is for the benefit of the team and is not a status meeting to report to a manager. TRACKING PROGRESS DURING THE SPRINT

Update estimates in sprint backlog
Spring burndown chart
How much work remains in the future

PRODUCT BACKLOG REFINEMENT

Split big items
Analyze Items
Re-Estimate
Re-Prioritize

TIP: Some % of each sprint should be dedicated by the whole team to refining the product backlog to support future sprints SPRINT REVIEW

Inspection and adaptation related to the product
Only prepare 30 min

SPRINT RETROSPECTIVE

Inspection and adaption related to the process and environment
Timeboxed to 45 min / week of sprint

STARTING THE NEXT SPRINT

Maintain a sustainable pace
Everything is completely finished every sprint
A “Release Sprint” is considered a necessary evil

MANAGING RELEASES

Some releases are date driven
Others require certain features to be built
The Destination is more important than the journey

Summary

Basically scrum keeps your teem from working on multiple projects at the same time, being segregated by defined rolls (which solves the John got it by a bus dilemma and we have no idea how to do what he does), keeps you from making software that isn’t tested or documented, and should help you achieve the end goal of shipping code that will be of a higher quality then if you didn’t use scrum.

Start by reading the Scrum Primer if you want to learn even more about scrum.