Create scrum.html

D David Veksler · 1 year ago 8d33b562ffb7b0a11480facdf7c3ed376c848241
Parent: d125376ee

1 file changed +1107 −0

Diff

diff --git a/scrum.html b/scrum.html
new file mode 100644
index 0000000..c2d9e33
--- /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>