Create scrum.html
· 1 year ago
8d33b562ffb7b0a11480facdf7c3ed376c848241
Parent:
d125376ee
1 file changed +1107 −0
- scrum.html +1107 −0
Diff
--- /dev/null +++ b/scrum.html @@ -0,0 +1,1107 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>The Scrum Framework Cheatsheet: Agile Project Management</title> + + <link + rel="icon" + href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🔄</text></svg>" + /> + + <!-- SEO Meta Description --> + <meta + name="description" + content="A comprehensive and interactive cheatsheet for the Scrum framework. Understand Scrum roles, events, artifacts, values, and pillars to enhance your agile project management." + /> + + <!-- Canonical URL (Update this to your actual URL when deployed) --> + <link rel="canonical" href="http://cheatsheets.davidveksler.com/scrum.html" /> + + <!-- Social Media Metadata --> + <meta property="og:title" content="The Scrum Framework Cheatsheet: Agile Project Management" /> + <meta + property="og:description" + content="Visually explore Scrum: Core concepts, roles, events, artifacts, values, and the empirical pillars for effective agile delivery." + /> + <meta property="og:type" content="article" /> + <meta property="og:url" content="http://cheatsheets.davidveksler.com/scrum.html" /> + <meta property="og:site_name" content="Agile Cheatsheets" /> + <!-- Placeholder for og:image --> + <!-- <meta property="og:image" content="http://cheatsheets.davidveksler.com/scrum-cheatsheet-image.jpg" /> --> + + <meta name="twitter:card" content="summary_large_image" /> + <meta name="twitter:title" content="The Scrum Framework Cheatsheet: Agile Project Management" /> + <meta + name="twitter:description" + content="Visually explore Scrum: Core concepts, roles, events, artifacts, values, and the empirical pillars for effective agile delivery." + /> + <!-- Placeholder for twitter:image --> + <!-- <meta name="twitter:image" content="http://cheatsheets.davidveksler.com/scrum-cheatsheet-image.jpg" /> --> + + <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" /> + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css" /> + + <style> + :root { + --bs-body-bg: #f0f2f5; /* Light grey background */ + --bs-primary: #0078d4; /* Energetic Blue */ + --bs-primary-dark: #005a9e; + --bs-primary-light: #e6f2ff; + --bs-secondary: #ffc107; /* Vibrant Yellow/Orange */ + --card-border-color: #cfd8dc; + --card-shadow-color: rgba(0, 120, 212, 0.1); + --text-color-main: #212529; /* Darker text for better readability */ + --text-color-secondary: #495057; + --text-color-highlight: var(--bs-primary-dark); + --blueprint-grid-color: rgba(0, 120, 212, 0.07); + --schema-bg-color: rgba(255, 255, 255, 0.9); /* Slightly more opaque */ + --schema-border-color: #b0bec5; + + /* --- Scrum Category Colors --- */ + --scrum-color-definition: #0078d4; /* Primary Blue */ + --scrum-color-pillars: #20c997; /* Teal */ + --scrum-color-values: #6f42c1; /* Purple */ + --scrum-color-why: #198754; /* Green */ + --scrum-color-team: #fd7e14; /* Orange */ + --scrum-color-events: #6610f2; /* Indigo */ + --scrum-color-artifacts: #d63384; /* Pink */ + --scrum-color-general: #6c757d; /* Grey for general/summary */ + + --scrum-category-color: var(--scrum-color-general); /* Default */ + } + + body { + background-color: var(--bs-body-bg); + background-image: linear-gradient(to right, var(--blueprint-grid-color) 1px, transparent 1px), + linear-gradient(to bottom, var(--blueprint-grid-color) 1px, transparent 1px); + background-size: 80px 80px; /* Slightly larger grid */ + font-family: "Segoe UI", "Roboto", Helvetica, Arial, sans-serif; + padding-bottom: 3rem; + font-size: 16px; + color: var(--text-color-main); + box-sizing: border-box; + } + *, + *::before, + *::after { + box-sizing: inherit; + } + + .page-header { + background: linear-gradient(135deg, var(--bs-primary-light), #e0e0e0); + padding: 3rem 1.5rem; + text-align: center; + border-bottom: 4px solid var(--bs-primary); + margin-bottom: 3rem; + position: relative; + z-index: 10; + box-shadow: 0 5px 20px rgba(0, 120, 212, 0.15); + } + .page-header h1 { + color: var(--bs-primary-dark); + font-weight: 600; /* Bolder */ + letter-spacing: 0.5px; + margin-bottom: 0.75rem; + font-size: 3rem; /* Larger */ + } + .page-header h1 .bi { + font-size: 1em; /* Adjusted for potentially larger main icon */ + vertical-align: -0.05em; + margin-right: 0.5em; + color: var(--bs-secondary); /* Accent color for icon */ + } + .page-header .lead { + color: var(--text-color-secondary); + font-size: 1.25rem; /* Larger lead */ + max-width: 850px; + margin: auto; + font-weight: 300; + } + + .schema-container { + background-color: var(--schema-bg-color); + border: 2px solid var(--schema-border-color); + border-radius: 10px; + padding: 1.5rem 1.5rem 0.5rem 1.5rem; + margin-bottom: 3rem; + box-shadow: 0 6px 15px rgba(0, 120, 212, 0.08); + backdrop-filter: blur(4px); + position: relative; + } + + .section-title { + color: #fff; + background-color: var(--scrum-category-color); /* Uses the specific section color */ + margin: -2.8rem 0 1.8rem 0; /* Adjusted for aesthetics */ + font-weight: 700; /* Bolder */ + text-transform: uppercase; + letter-spacing: 0.1em; + font-size: 1.2rem; /* Slightly larger */ + border-bottom: none; + padding: 0.6rem 1.2rem; + display: inline-block; + position: relative; + left: 1.2rem; /* Adjusted */ + z-index: 15; + border: 2px solid var(--schema-border-color); + border-bottom: none; + border-radius: 8px 8px 0 0; + box-shadow: 0 -3px 8px rgba(0, 0, 0, 0.05); + } + + .info-card { + background: #fff; + border: 1px solid var(--card-border-color); + border-radius: 8px; /* Softer radius */ + box-shadow: 0 4px 10px var(--card-shadow-color); + height: 100%; + display: flex; + flex-direction: column; + transition: box-shadow 0.25s ease, transform 0.25s ease; + position: relative; + z-index: 5; + } + + .info-card:hover { + box-shadow: 0 7px 18px rgba(0, 120, 212, 0.22); /* Enhanced shadow on hover */ + transform: translateY(-4px); /* More lift */ + z-index: 20; + } + + .info-card .card-body { + padding: 0; + flex-grow: 1; + display: flex; + flex-direction: column; + } + .info-card h5 { + color: #fff; + background-color: var(--scrum-category-color); /* Uses the specific section/card color */ + font-size: 1.15rem; /* Bolder card titles */ + text-align: center; + margin: 0; + padding: 1rem 0.8rem; /* More padding */ + font-weight: 700; /* Bolder */ + display: flex; + justify-content: center; + align-items: center; + gap: 0.7rem; + font-family: "Segoe UI Semibold", "Roboto Condensed", Consolas, Menlo, Monaco, "Courier New", monospace; + border-bottom: 1px solid var(--card-border-color); + border-radius: 7px 7px 0 0; /* Match card radius */ + } + .info-card h5 .bi { + font-size: 1.4em; /* Larger icons in card titles */ + color: #fff; + opacity: 0.95; + } + .card-content-wrapper { + padding: 1.5rem; /* More padding */ + flex-grow: 1; + display: flex; + flex-direction: column; + } + .info-card p.summary { + font-size: 0.98rem; /* Slightly larger summary */ + color: var(--text-color-secondary); + margin-bottom: 1.2rem; + flex-grow: 1; + line-height: 1.7; + } + + .collapse-content { + font-size: 0.95rem; /* Slightly larger detail text */ + border-top: 1px solid #e0e0e0; + padding: 1.5rem; /* More padding */ + margin-top: 1rem; /* Keep some space */ + color: var(--text-color-main); + background-color: #fcfdff; /* Very light background for contrast */ + border-radius: 0 0 7px 7px; + } + .collapse-content h6 { + font-weight: 700; + color: var(--text-color-highlight); + margin-top: 1.2rem; + margin-bottom: 0.5rem; + font-size: 1.05rem; + } + .collapse-content ul { + padding-left: 0.5rem; + margin-bottom: 1.2rem; + list-style: none; + } + .collapse-content li { + margin-bottom: 0.8rem; + padding-bottom: 0.8rem; + font-size: 0.92rem; + line-height: 1.6; + border-bottom: 1px dashed #ced4da; + position: relative; + padding-left: 2rem; /* More space for icon */ + } + .collapse-content li:last-child { + border-bottom: none; + margin-bottom: 0; + } + .collapse-content li::before { + content: "\F282"; /* Bootstrap icon check2 - can customize per list type */ + font-family: "bootstrap-icons"; + position: absolute; + left: 0; + top: 4px; + color: var(--scrum-category-color); /* Use category color */ + opacity: 0.85; + font-size: 1.2em; + } + .collapse-content li strong { + color: var(--text-color-highlight); + display: block; + margin-bottom: 0.3rem; + font-weight: 600; + } + .collapse-content p { + font-size: 0.95rem; + margin-bottom: 0.8rem; + line-height: 1.65; + } + .collapse-content code, + .term { + font-size: 0.9rem; + color: var(--bs-primary-dark); + background-color: var(--bs-primary-light); + padding: 0.2em 0.5em; + border-radius: 4px; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-weight: 600; + } + + .row > * { + margin-bottom: 2.8rem; /* Increased spacing between cards */ + } + footer { + padding-top: 3.5rem; /* More padding */ + font-size: 0.95em; + color: #5a6872; /* Slightly darker footer text */ + position: relative; + z-index: 10; + text-align: center; + } + footer a { + color: var(--bs-primary); + } + footer a:hover { + color: var(--bs-primary-dark); + } + + .details-toggle { + font-size: 0.9rem; /* Slightly larger */ + margin-top: auto; + align-self: flex-start; + padding: 0.45rem 0.9rem; /* More padding */ + color: var(--scrum-category-color); + border: 2px solid var(--scrum-category-color); /* Bolder border */ + background-color: transparent; + transition: background-color 0.2s ease, color 0.2s ease, transform 0.1s ease; + display: inline-flex; + align-items: center; + gap: 0.5em; + border-radius: 5px; + font-weight: 600; /* Bolder */ + } + .details-toggle:hover { + background-color: var(--scrum-category-color); + color: white; + transform: scale(1.03); /* Slight scale on hover */ + } + .details-toggle .bi { + transition: transform 0.2s ease-in-out; + } + .details-toggle[aria-expanded="true"] .bi { + transform: rotate(180deg); + } + + a { + color: var(--bs-primary); + text-decoration: none; + font-weight: 500; + } + a:hover { + color: var(--bs-primary-dark); + text-decoration: underline; + } + + /* --- Scrum Category Color Styling --- */ + .section-definition, + .card-definition { + --scrum-category-color: var(--scrum-color-definition); + } + .section-pillars, + .card-pillars { + --scrum-category-color: var(--scrum-color-pillars); + } + .section-values, + .card-values { + --scrum-category-color: var(--scrum-color-values); + } + .section-why, + .card-why { + --scrum-category-color: var(--scrum-color-why); + } + .section-team, + .card-team { + --scrum-category-color: var(--scrum-color-team); + } + .section-events, + .card-events { + --scrum-category-color: var(--scrum-color-events); + } + .section-artifacts, + .card-artifacts { + --scrum-category-color: var(--scrum-color-artifacts); + } + </style> + </head> + <body> + <header class="page-header"> + <h1><i class="bi bi-recycle"></i> The Scrum Framework Cheatsheet</h1> + <p class="lead"> + An interactive guide to Scrum's core principles, roles, events, and artifacts for delivering value through agile + practices. + </p> + </header> + <div class="container" id="main-container"> + <!-- I. WHAT IS SCRUM? --> + <div class="schema-container section-definition" data-section-id="section-what-is-scrum"> + <h2 class="section-title" id="section-what-is-scrum-title">What is Scrum?</h2> + <div class="row"> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-definition" id="card-scrum-definition"> + <div class="card-body"> + <h5><i class="bi bi-patch-question-fill"></i> Definition</h5> + <div class="card-content-wrapper"> + <p class="summary"> + Scrum is a lightweight framework that helps people, teams, and organizations generate value through + <span class="term">adaptive solutions</span> for <span class="term">complex problems</span>. It's an + iterative and incremental approach. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseScrumDefinition" + aria-expanded="false" + aria-controls="collapseScrumDefinition" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseScrumDefinition"> + <p> + Scrum is founded on empiricism and lean thinking. Empiricism asserts that knowledge comes from + experience and making decisions based on what is observed. Lean thinking reduces waste and focuses on + the essentials. + </p> + <p> + Scrum combines four formal events for inspection and adaptation within a containing event, the Sprint. + These events work because they implement the empirical Scrum pillars of transparency, inspection, and + adaptation. + </p> + </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-pillars" id="card-scrum-pillars"> + <div class="card-body"> + <h5><i class="bi bi-columns-gap"></i> Empirical Pillars</h5> + <div class="card-content-wrapper"> + <p class="summary"> + Scrum is based on <span class="term">Transparency</span>, <span class="term">Inspection</span>, and + <span class="term">Adaptation</span> to navigate complexity and manage risk. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseScrumPillars" + aria-expanded="false" + aria-controls="collapseScrumPillars" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseScrumPillars"> + <h6>The Three Pillars:</h6> + <ul> + <li> + <strong>Transparency:</strong> The emergent process and work must be visible to those performing the + work as well as those receiving the work. With Scrum, important decisions are based on the perceived + state of its three formal artifacts. Artifacts that have low transparency can lead to decisions that + diminish value and increase risk. + </li> + <li> + <strong>Inspection:</strong> The Scrum artifacts and the progress toward agreed goals must be + inspected frequently and diligently to detect potentially undesirable variances or problems. To help + with inspection, Scrum provides cadence in the form of its five events. + </li> + <li> + <strong>Adaptation:</strong> If any aspects of a process deviate outside acceptable limits or if the + resulting product is unacceptable, the process being applied or the materials being produced must be + adjusted. Adaptation becomes more difficult when the people involved are not empowered or + self-managing. + </li> + </ul> + </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-values" id="card-scrum-values"> + <div class="card-body"> + <h5><i class="bi bi-heart-fill"></i> Scrum Values</h5> + <div class="card-content-wrapper"> + <p class="summary"> + Successful use of Scrum depends on people becoming more proficient in living five values: + <span class="term">Commitment</span>, <span class="term">Focus</span>, + <span class="term">Openness</span>, <span class="term">Respect</span>, and + <span class="term">Courage</span>. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseScrumValues" + aria-expanded="false" + aria-controls="collapseScrumValues" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseScrumValues"> + <h6>The Five Values:</h6> + <ul> + <li> + <strong>Commitment:</strong> The Scrum Team commits to achieving its goals and to supporting each + other. + </li> + <li> + <strong>Focus:</strong> Their primary focus is on the work of the Sprint to make the best possible + progress toward these goals. + </li> + <li> + <strong>Openness:</strong> The Scrum Team and its stakeholders are open about the work and the + challenges. + </li> + <li> + <strong>Respect:</strong> Scrum Team members respect each other to be capable, independent people, + and are respected as such by the people with whom they work. + </li> + <li> + <strong>Courage:</strong> The Scrum Team members have the courage to do the right thing, to work on + tough problems. + </li> + </ul> + </div> + </div> + </div> + </div> + </div> + + <!-- II. WHY USE SCRUM? --> + <div class="schema-container section-why" data-section-id="section-why-scrum"> + <h2 class="section-title" id="section-why-scrum-title">Why Use Scrum?</h2> + <div class="row"> + <div class="col-lg-6 col-md-6"> + <!-- Adjusted to col-lg-6 for two cards --> + <div class="info-card card-why" id="card-scrum-benefits"> + <div class="card-body"> + <h5><i class="bi bi-graph-up-arrow"></i> Key Benefits</h5> + <div class="card-content-wrapper"> + <p class="summary"> + Scrum enables <span class="term">faster value delivery</span>, increased quality, enhanced + productivity, better stakeholder satisfaction, adaptability, and improved team morale. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseScrumBenefits" + aria-expanded="false" + aria-controls="collapseScrumBenefits" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseScrumBenefits"> + <ul> + <li> + <strong>Faster Value Delivery:</strong> Delivers usable product increments rapidly and frequently. + </li> + <li> + <strong>Increased Quality:</strong> Focus on "Definition of Done" and continuous improvement ensures + higher quality. + </li> + <li> + <strong>Enhanced Productivity:</strong> Clear roles, events, and time-boxing drive focus and + efficiency. + </li> + <li> + <strong>Adaptability & Flexibility:</strong> Embraces changing requirements throughout the + lifecycle. + </li> + <li> + <strong>Risk Management:</strong> Iterative nature allows early identification and mitigation of + risks. + </li> + <li> + <strong>Stakeholder Satisfaction:</strong> Regular feedback loops and visible progress keep + stakeholders engaged. + </li> + <li> + <strong>Improved Team Morale:</strong> Empowers teams, fosters collaboration and a sense of + ownership. + </li> + </ul> + </div> + </div> + </div> + <div class="col-lg-6 col-md-6"> + <!-- Adjusted to col-lg-6 for two cards --> + <div class="info-card card-why" id="card-scrum-when-effective"> + <div class="card-body"> + <h5><i class="bi bi-lightbulb-fill"></i> When Scrum Shines</h5> + <div class="card-content-wrapper"> + <p class="summary"> + Scrum is particularly effective for <span class="term">complex projects</span> where requirements + evolve, frequent feedback is crucial, and cross-functional collaboration is needed. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseScrumWhenEffective" + aria-expanded="false" + aria-controls="collapseScrumWhenEffective" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseScrumWhenEffective"> + <p>Scrum is best suited for:</p> + <ul> + <li>Projects with unclear or evolving requirements.</li> + <li>Environments requiring rapid adaptation to change.</li> + <li>Developing new products or releasing features iteratively.</li> + <li>Situations where innovation and creativity are key.</li> + <li>Work that benefits from close collaboration among a self-managing team.</li> + </ul> + </div> + </div> + </div> + </div> + </div> + + <!-- III. THE SCRUM TEAM --> + <div class="schema-container section-team" data-section-id="section-scrum-team"> + <h2 class="section-title" id="section-scrum-team-title">The Scrum Team</h2> + <div class="row"> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-team" id="card-product-owner"> + <div class="card-body"> + <h5><i class="bi bi-person-badge-fill"></i> Product Owner</h5> + <div class="card-content-wrapper"> + <p class="summary"> + Accountable for <span class="term">maximizing product value</span> resulting from the Scrum Team's + work. Manages the Product Backlog. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseProductOwner" + aria-expanded="false" + aria-controls="collapseProductOwner" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseProductOwner"> + <h6>Key Responsibilities:</h6> + <ul> + <li>Developing and explicitly communicating the Product Goal.</li> + <li>Creating and clearly communicating Product Backlog items.</li> + <li>Ordering Product Backlog items.</li> + <li>Ensuring the Product Backlog is transparent, visible, and understood.</li> + </ul> + <p> + The Product Owner is one person, not a committee, and may represent the needs of many stakeholders in + the Product Backlog. + </p> + </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-team" id="card-scrum-master"> + <div class="card-body"> + <h5><i class="bi bi-person-gear"></i> Scrum Master</h5> + <div class="card-content-wrapper"> + <p class="summary"> + Accountable for establishing Scrum and the <span class="term">Scrum Team’s effectiveness</span>. A + true leader who serves the team and organization. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseScrumMaster" + aria-expanded="false" + aria-controls="collapseScrumMaster" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseScrumMaster"> + <h6>Key Responsibilities:</h6> + <ul> + <li>Coaching team members in self-management and cross-functionality.</li> + <li> + Helping the Scrum Team focus on creating high-value Increments that meet the Definition of Done. + </li> + <li>Causing the removal of impediments to the Scrum Team’s progress.</li> + <li>Ensuring all Scrum events are positive, productive, and kept within the timebox.</li> + <li>Leading, training, and coaching the organization in its Scrum adoption.</li> + </ul> + </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-team" id="card-developers"> + <div class="card-body"> + <h5><i class="bi bi-people-workspace"></i> Developers</h5> + <div class="card-content-wrapper"> + <p class="summary"> + The people committed to creating any aspect of a <span class="term">usable Increment</span> each + Sprint. A cross-functional group. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseDevelopers" + aria-expanded="false" + aria-controls="collapseDevelopers" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseDevelopers"> + <p> + The Scrum Team is a small team of typically 10 or fewer people. This includes one Scrum Master, one + Product Owner, and Developers. + </p> + <h6>Key Responsibilities:</h6> + <ul> + <li>Creating a plan for the Sprint, the Sprint Backlog.</li> + <li>Instilling quality by adhering to a Definition of Done.</li> + <li>Adapting their plan each day toward the Sprint Goal.</li> + <li>Holding each other accountable as professionals.</li> + </ul> + <p>They are self-managing, meaning they internally decide who does what, when, and how.</p> + </div> + </div> + </div> + </div> + </div> + + <!-- IV. SCRUM EVENTS --> + <div class="schema-container section-events" data-section-id="section-scrum-events"> + <h2 class="section-title" id="section-scrum-events-title">Scrum Events</h2> + <div class="row"> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-events" id="card-sprint"> + <div class="card-body"> + <h5><i class="bi bi-arrow-repeat"></i> The Sprint</h5> + <div class="card-content-wrapper"> + <p class="summary"> + The <span class="term">heartbeat of Scrum</span>. A fixed-length event of one month or less where + ideas are turned into value. All other events happen within Sprints. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseSprint" + aria-expanded="false" + aria-controls="collapseSprint" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseSprint"> + <p> + Sprints enable predictability by ensuring inspection and adaptation of progress toward a Product Goal + at least every calendar month. When a Sprint’s horizon is too long the Sprint Goal may become invalid, + complexity may rise, and risk may increase. + </p> + <h6>Key Aspects:</h6> + <ul> + <li>Time-boxed to one month or less.</li> + <li>A new Sprint starts immediately after the conclusion of the previous Sprint.</li> + <li>No changes are made that would endanger the Sprint Goal.</li> + <li>Quality does not decrease.</li> + <li>The Product Backlog is refined as needed.</li> + </ul> + </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-events" id="card-sprint-planning"> + <div class="card-body"> + <h5><i class="bi bi-calendar2-plus-fill"></i> Sprint Planning</h5> + <div class="card-content-wrapper"> + <p class="summary"> + Initiates the Sprint by laying out the work to be performed. Addresses + <span class="term">Why</span>, <span class="term">What</span>, and <span class="term">How</span>. + Output: Sprint Goal & Sprint Backlog. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseSprintPlanning" + aria-expanded="false" + aria-controls="collapseSprintPlanning" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseSprintPlanning"> + <p>Time-box: Max 8 hours for a one-month Sprint.</p> + <h6>Topics Addressed:</h6> + <ul> + <li> + <strong>Topic One (Why):</strong> Why is this Sprint valuable? The Product Owner proposes how the + product could increase its value and utility in the current Sprint. The whole Scrum Team then + collaborates to define a Sprint Goal. + </li> + <li> + <strong>Topic Two (What):</strong> What can be Done this Sprint? Through discussion with the Product + Owner, the Developers select items from the Product Backlog to include in the current Sprint. + </li> + <li> + <strong>Topic Three (How):</strong> How will the chosen work get done? For each selected Product + Backlog item, the Developers plan the work necessary to create an Increment that meets the + Definition of Done. + </li> + </ul> + </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-events" id="card-daily-scrum"> + <div class="card-body"> + <h5><i class="bi bi-clock-history"></i> Daily Scrum</h5> + <div class="card-content-wrapper"> + <p class="summary"> + A <span class="term">15-minute event</span> for Developers to inspect progress toward the Sprint + Goal and adapt the Sprint Backlog. Improves communication and identifies impediments. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseDailyScrum" + aria-expanded="false" + aria-controls="collapseDailyScrum" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseDailyScrum"> + <p> + Held daily at the same time and place to reduce complexity. It is for the Developers, by the + Developers. If the Product Owner or Scrum Master are actively working on items in the Sprint Backlog, + they participate as Developers. + </p> + <p> + The Daily Scrum is not the only time Developers are allowed to adjust their plan. They often meet + throughout the day for more detailed discussions about adapting or re-planning the rest of the + Sprint’s work. + </p> + </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-events" id="card-sprint-review"> + <div class="card-body"> + <h5><i class="bi bi-clipboard2-check-fill"></i> Sprint Review</h5> + <div class="card-content-wrapper"> + <p class="summary"> + Inspects the <span class="term">outcome of the Sprint</span> (the Increment) and determines future + adaptations. Stakeholders provide feedback. Product Backlog may be adjusted. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseSprintReview" + aria-expanded="false" + aria-controls="collapseSprintReview" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseSprintReview"> + <p>Time-box: Max 4 hours for a one-month Sprint. Held at the end of the Sprint.</p> + <p> + The Scrum Team presents the results of their work to key stakeholders and progress toward the Product + Goal is discussed. During the Sprint Review, the Scrum Team and stakeholders review what was + accomplished in the Sprint and what has changed in their environment. Based on this information, + attendees collaborate on what to do next. + </p> + </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-events" id="card-sprint-retrospective"> + <div class="card-body"> + <h5><i class="bi bi-arrow-clockwise"></i> Sprint Retrospective</h5> + <div class="card-content-wrapper"> + <p class="summary"> + The Scrum Team inspects itself and creates a plan for <span class="term">improvements</span> to be + enacted during the next Sprint. Focuses on quality and effectiveness. + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseSprintRetrospective" + aria-expanded="false" + aria-controls="collapseSprintRetrospective" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseSprintRetrospective"> + <p> + Time-box: Max 3 hours for a one-month Sprint. Occurs after the Sprint Review and before the next + Sprint Planning. + </p> + <p> + The Scrum Team discusses what went well during the Sprint, what problems it encountered, and how those + problems were (or were not) solved. The Scrum Team identifies the most helpful changes to improve its + effectiveness. The most impactful improvements are addressed as soon as possible and may even be added + to the Sprint Backlog for the next Sprint. + </p> + </div> + </div> + </div> + </div> + </div> + + <!-- V. SCRUM ARTIFACTS --> + <div class="schema-container section-artifacts" data-section-id="section-scrum-artifacts"> + <h2 class="section-title" id="section-scrum-artifacts-title">Scrum Artifacts & Commitments</h2> + <div class="row"> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-artifacts" id="card-product-backlog"> + <div class="card-body"> + <h5><i class="bi bi-list-stars"></i> Product Backlog</h5> + <div class="card-content-wrapper"> + <p class="summary"> + An emergent, ordered list of what is needed to improve the product. Single source of work. + <br /><strong>Commitment:</strong> <span class="term">Product Goal</span> (long-term objective). + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseProductBacklog" + aria-expanded="false" + aria-controls="collapseProductBacklog" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseProductBacklog"> + <p> + The Product Backlog is the single source of truth for all work undertaken by the Scrum Team. The + Product Owner is accountable for the Product Backlog, including its content, availability, and + ordering. + </p> + <h6>Product Goal (Commitment)</h6> + <p> + The Product Goal describes a future state of the product which can serve as a target for the Scrum + Team to plan against. It is in the Product Backlog. The Product Goal is the long-term objective for + the Scrum Team. They must fulfill (or abandon) one objective before taking on the next. + </p> + </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-artifacts" id="card-sprint-backlog"> + <div class="card-body"> + <h5><i class="bi bi-list-task"></i> Sprint Backlog</h5> + <div class="card-content-wrapper"> + <p class="summary"> + Plan by and for Developers. Composed of the Sprint Goal, selected Product Backlog items, and an + actionable plan. <br /><strong>Commitment:</strong> <span class="term">Sprint Goal</span> (objective + for the Sprint). + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseSprintBacklog" + aria-expanded="false" + aria-controls="collapseSprintBacklog" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseSprintBacklog"> + <p> + The Sprint Backlog is a highly visible, real-time picture of the work that the Developers plan to + accomplish during the Sprint in order to achieve the Sprint Goal. It is updated throughout the Sprint + as more is learned. It should have enough detail that they can inspect their progress in the Daily + Scrum. + </p> + <h6>Sprint Goal (Commitment)</h6> + <p> + The Sprint Goal is the single objective for the Sprint. Although the Sprint Goal is a commitment by + the Developers, it provides flexibility in terms of the exact work needed to achieve it. The Sprint + Goal also creates coherence and focus, encouraging the Scrum Team to work together rather than on + separate initiatives. + </p> + </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card card-artifacts" id="card-increment"> + <div class="card-body"> + <h5><i class="bi bi-box-arrow-up-right"></i> Increment</h5> + <div class="card-content-wrapper"> + <p class="summary"> + A concrete <span class="term">stepping stone toward the Product Goal</span>. Each Increment is + additive and must be usable. <br /><strong>Commitment:</strong> + <span class="term">Definition of Done</span> (formal description of quality). + </p> + <button + class="btn btn-sm details-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#collapseIncrement" + aria-expanded="false" + aria-controls="collapseIncrement" + > + Details <i class="bi bi-chevron-down"></i> + </button> + </div> + </div> + <div class="collapse collapse-content" id="collapseIncrement"> + <p> + An Increment is a concrete stepping stone toward the Product Goal. Each Increment is additive to all + prior Increments and thoroughly verified, ensuring that all Increments work together. In order to + provide value, the Increment must be usable. Multiple Increments may be created within a Sprint. + </p> + <h6>Definition of Done (Commitment)</h6> + <p> + The Definition of Done is a formal description of the state of the Increment when it meets the quality + measures required for the product. The moment a Product Backlog item meets the Definition of Done, an + Increment is born. If the Definition of Done for an increment is part of the standards of the + organization, all Scrum Teams must follow it as a minimum. If it is not an organizational standard, + the Scrum Team must create a Definition of Done appropriate for the product. + </p> + </div> + </div> + </div> + </div> + </div> + </div> + + <footer class="container text-center pb-3"> + <p class="mb-2"> + © <span id="currentYear"></span> Agile Cheatsheet Contributor. Content inspired by the Scrum Guide™. + </p> + <div> + <a + href="https://scrumguides.org/" + title="The Official Scrum Guide" + target="_blank" + rel="noopener noreferrer" + class="mx-2 link-secondary" + > + <i class="bi bi-book-fill"></i> Official Scrum Guide + </a> + <a + href="https://www.scrum.org/" + title="Scrum.org" + target="_blank" + rel="noopener noreferrer" + class="mx-2 link-secondary" + > + <i class="bi bi-shield-check"></i> Scrum.org + </a> + <a + href="https://www.atlassian.com/agile/scrum" + title="Atlassian Agile Scrum" + target="_blank" + rel="noopener noreferrer" + class="mx-2 link-secondary" + > + <i class="bi bi-box-arrow-up-right"></i> Atlassian on Scrum + </a> + </div> + </footer> + + <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> + <script> + document.addEventListener("DOMContentLoaded", () => { + const collapseElements = document.querySelectorAll(".collapse"); + collapseElements.forEach((collapseEl) => { + const button = document.querySelector(`.details-toggle[data-bs-target="#${collapseEl.id}"]`); + const icon = button ? button.querySelector(".bi") : null; + if (button && icon) { + const updateIconAndButton = (isShown) => { + if (isShown) { + icon.classList.remove("bi-chevron-down"); + icon.classList.add("bi-chevron-up"); + button.setAttribute("aria-expanded", "true"); + } else { + icon.classList.remove("bi-chevron-up"); + icon.classList.add("bi-chevron-down"); + button.setAttribute("aria-expanded", "false"); + } + }; + + updateIconAndButton(collapseEl.classList.contains("show")); + + collapseEl.addEventListener("show.bs.collapse", () => { + updateIconAndButton(true); + }); + collapseEl.addEventListener("hide.bs.collapse", () => { + updateIconAndButton(false); + }); + } + }); + + document.getElementById("currentYear").textContent = new Date().getFullYear(); + }); + </script> + </body> +</html>