Last post I wrote, “Scrum is a simple, team-based framework for solving complex problems.” How does the Scrum framework actually work?
Scrum is modelled on successful patterns for product development. The classic phase-driven approach, or “relay-race model” was found to be less effective than the team-oriented, “rugby model”, in which an interdisciplinary team solves the whole problem together, without explicit phases or formal leadership roles. (See “The New, New Product Development Game” at HBR for the research which inspired Scrum).
The Scrum Framework ensures the core principle of Inspect and Adapt can take place at regular intervals. To achieve this, Scrum introduces a few constraints on the development process:
If you accept and believe in Scrum’s principles and constraints, then doing Scrum will come naturally to you.
“The Scrum Team” refers to an interdisciplinary, self-organizing group of people, who collaborate to define and solve the problem as effectively as possible. Within the Scrum Team, Scrum defines three roles:
Scrum is an iterative, incremental approach to development. So development is broken into a large number of fixed-length “sprints”, each of which produces an increment of “potentially shippable” customer visible value, which is integrated with the previously created increment to create a seamless whole.
All activities in Scrum are time-boxed.
The sprint length must always be the same, and should be short compared to the length of the project. Two weeks is common in software development. The maximum length may be limited by the Product Owner’s ability to hold his/her word not to change the mandate: fast moving businesses generally require shorter Sprints. Four weeks is the maximum allowed by Scrum, because longer sprints have been shown to lower performance.
The Daily Scrum is time-boxed to 15 minutes. This discourages excessive talk and teams from getting too big. The remaining mandatory meetings are time-boxed to 1 hour per week of Sprint (e.g. 2 hours for a 2 week sprint, 4 hours for a 4 week sprint).
Note: the authoritative literature often combines the time-boxes for Sprint Planning 1 and 2 into one time-box of two hours per week of Sprint. I have found that the time-boxes for Sprint Planning 1 and the Sprint Review are critical. If you cannot finish Sprint Planning 1 in the allotted time, you need to invest more effort in Backlog Refinement. If you cannot finish the Sprint Review in the allotted time, your Team is probably finishing most backlog items at the last minute, and/or the items are not really Done.
I don’t like the term ‘Artifact’ very much. To me, this implies objects that were created by people who died thousands of years ago and were dug up by archaeologists. The so-called artifacts in Scrum are living entities to guide and direct the project.
Scrum defines three artifacts: the Product Backlog, the Sprint Backlog, and the Product Increment:
Core Scrum introduced the notion that the Definition of Done is an Agreement, not an Artifact. At first I found this a bit strange, because the DoD was usually posted on our Wiki somewhere. But now I find the notion quite powerful, and believe that Agreements are the basis for many context specific enhancements to Scrum.
Planning in Scrum is commitment based. There is no hierarchical command authority in Scrum. Scrum defines explicitly one agreement, the Definition of Done implies a second agreement, which I call the Sprint Contract, which govern the expectations during a Sprint.
The Sprint Contract is implied by Scrum, but not explicitly named. I have found it useful to give it a name, discuss its conditions, and secure agreement among the concerned parties.
The following is not defined in the authoritative Scrum literature but I have found additional agreements useful in many contexts:
|cookielawinfo-checkbox-advertisement||1 year||Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .|
|cookielawinfo-checkbox-analytics||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".|
|cookielawinfo-checkbox-functional||11 months||The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".|
|cookielawinfo-checkbox-necessary||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".|
|cookielawinfo-checkbox-others||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.|
|cookielawinfo-checkbox-performance||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".|
|mailchimp_landing_site||1 month||The cookie is set by MailChimp to record which page the user first visited.|
|CONSENT||2 years||YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.|
|_ga||2 years||The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors.|
|_gat_gtag_UA_42152348_1||1 minute||Set by Google to distinguish users.|
|_gcl_au||3 months||Provided by Google Tag Manager to experiment advertisement efficiency of websites using their services.|
|_gid||1 day||Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously.|
|NID||6 months||NID cookie, set by Google, is used for advertising purposes; to limit the number of times the user sees an ad, to mute unwanted ads, and to measure the effectiveness of ads.|
|test_cookie||15 minutes||The test_cookie is set by doubleclick.net and is used to determine if the user's browser supports cookies.|
|VISITOR_INFO1_LIVE||5 months 27 days||A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.|
|YSC||session||YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.|
|yt-remote-connected-devices||never||YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.|
|yt-remote-device-id||never||YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.|
|COMPASS||1 hour||No description|
|cookies.js||session||No description available.|
|S||1 hour||No description available.|