Wiki source code of Kompakt: Scrum in Gitlab
Version 6.1 by Marco Grawunder on 2025/09/05 08:52
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | Hinweis: Das folgende wurde (im Wesentlichen) durch ChatGPT erstellt und anschließend noch einmal angepasst. | ||
| 2 | |||
| 3 | |||
| 4 | = **Epics ~= Product Backlog** = | ||
| 5 | |||
| 6 | * ((( | ||
| 7 | Nutze **Epics** für größere Features oder Themen. | ||
| 8 | |||
| 9 | * Beispiel: //„Benutzerverwaltung“//, //„Berichtssystem“//. | ||
| 10 | ))) | ||
| 11 | * Verknüpfe **Issues** (Stories/Bugs) mit dem passenden Epic. | ||
| 12 | * Vorteil: du bekommst eine **Roadmap-Darstellung** im Epic-Bereich. | ||
| 13 | |||
| 14 | ---- | ||
| 15 | |||
| 16 | == **Issues ~= User Stories / Bugs** == | ||
| 17 | |||
| 18 | * Jedes **Issue** repräsentiert eine Story, einen Bug oder Task. | ||
| 19 | * ((( | ||
| 20 | Pflichtfelder in einer Story (per Issue Template): | ||
| 21 | |||
| 22 | * **As a … I want … so that …** | ||
| 23 | * **Akzeptanzkriterien** (Checkliste) | ||
| 24 | * **Story Points (Weight)** | ||
| 25 | ))) | ||
| 26 | |||
| 27 | 👉 Story Points kannst du über das Feld **Weight** pflegen. | ||
| 28 | |||
| 29 | ---- | ||
| 30 | |||
| 31 | == **Sub-Issues ~= Tasks** == | ||
| 32 | |||
| 33 | * ((( | ||
| 34 | Für die technische Umsetzung zerlege eine Story in **Sub-Issues**. | ||
| 35 | |||
| 36 | * ((( | ||
| 37 | Beispiel: Story „Als User möchte ich mich einloggen können“ | ||
| 38 | |||
| 39 | * Sub-Issue: Backend-API implementieren | ||
| 40 | * Sub-Issue: Frontend-Formular bauen | ||
| 41 | * Sub-Issue: Tests schreiben | ||
| 42 | ))) | ||
| 43 | ))) | ||
| 44 | |||
| 45 | ---- | ||
| 46 | |||
| 47 | == **Labels** == | ||
| 48 | |||
| 49 | Definiere globale Labels für Prozess & Priorität: | ||
| 50 | |||
| 51 | * ((( | ||
| 52 | **Prozess-Labels**: | ||
| 53 | |||
| 54 | * Story, Bug, Task, Spike | ||
| 55 | ))) | ||
| 56 | * ((( | ||
| 57 | **Priorität**: | ||
| 58 | |||
| 59 | * P1, P2, P3 | ||
| 60 | ))) | ||
| 61 | * ((( | ||
| 62 | **Status (optional für Filter)**: | ||
| 63 | |||
| 64 | * Ready, Blocked, Needs Review | ||
| 65 | ))) | ||
| 66 | * ((( | ||
| 67 | **Teams/Komponenten**: | ||
| 68 | |||
| 69 | * Frontend, Backend, QA | ||
| 70 | ))) | ||
| 71 | |||
| 72 | ---- | ||
| 73 | |||
| 74 | == **Iterations ~= Sprints** == | ||
| 75 | |||
| 76 | * ((( | ||
| 77 | Lege für jeden Sprint eine **Iteration **an, z. B.: | ||
| 78 | |||
| 79 | * Sprint 2025-09-1 (01.09.–14.09.) | ||
| 80 | ))) | ||
| 81 | * Weise die Stories/Sub-Issues der Iteration zu. | ||
| 82 | * ((( | ||
| 83 | GitLab erstellt automatisch: | ||
| 84 | |||
| 85 | * **Burndown-Chart** | ||
| 86 | * Fortschrittsübersicht | ||
| 87 | ))) | ||
| 88 | |||
| 89 | ---- | ||
| 90 | |||
| 91 | == **Boards ~= Daily Workflow** == | ||
| 92 | |||
| 93 | Erstelle ein **Issue Board** mit Spalten: | ||
| 94 | |||
| 95 | 1. **Backlog** (alle Stories, die noch keinem Sprint zugewiesen sind) | ||
| 96 | 1. **To Do** (Iteration = aktueller Sprint, Status: Ready) | ||
| 97 | 1. **In Progress** | ||
| 98 | 1. **Review / Code Review** | ||
| 99 | 1. **Testing** | ||
| 100 | 1. **Done** | ||
| 101 | |||
| 102 | 👉 Filter für das Board setzen: //nur aktuelle Iteration// → so hast du dein **Sprint Board** wie in Jira. | ||
| 103 | |||
| 104 | ---- | ||
| 105 | |||
| 106 | == **Reviews & Retros** == | ||
| 107 | |||
| 108 | * ((( | ||
| 109 | Am Ende einer Iteration (= Sprint-Ende): | ||
| 110 | |||
| 111 | * **Review**: offene vs. erledigte Issues der Iteration prüfen. | ||
| 112 | * **Retrospektive**: dokumentieren. | ||
| 113 | ))) | ||
| 114 | * Nicht erledigte Issues → ins nächste Iteration verschieben. | ||
| 115 | |||
| 116 | ---- | ||
| 117 | |||
| 118 | == 📊 Visuale Übersicht (Scrum in GitLab Premium) == | ||
| 119 | |||
| 120 | * ((( | ||
| 121 | **Epic** = großes Feature (Backlog-Ebene) | ||
| 122 | |||
| 123 | * ((( | ||
| 124 | Enthält Stories (Issues) | ||
| 125 | |||
| 126 | * Enthalten Tasks (Sub-Issues) | ||
| 127 | ))) | ||
| 128 | ))) | ||
| 129 | * **Iteration** = Sprint | ||
| 130 | * **Weight** = Story Points / Aufwand | ||
| 131 | * **Board** = Sprint Board (To Do → Done) | ||
| 132 | * **Burndown** = Sprint-Fortschritt | ||
| 133 | * | ||
| 134 | |||
| 135 | |||
| 136 | |||
| 137 | = 🛠 Schritt-für-Schritt-Anleitung für Scrum in GitLab Premium = | ||
| 138 | |||
| 139 | ---- | ||
| 140 | |||
| 141 | == 1. **Epics einrichten (Product Backlog-Ebene)** == | ||
| 142 | |||
| 143 | 1. Gehe in deine **Gruppe** → Menü **Epics**. | ||
| 144 | 1. ((( | ||
| 145 | Lege für jedes große Feature ein Epic an, z. B.: | ||
| 146 | |||
| 147 | * Epic: Benutzerverwaltung | ||
| 148 | * Epic: Reportsystem | ||
| 149 | ))) | ||
| 150 | 1. Epics enthalten später die **User Stories (Issues)**. | ||
| 151 | 1. Vorteil: du bekommst eine **Roadmap-Ansicht**. | ||
| 152 | |||
| 153 | ---- | ||
| 154 | |||
| 155 | == 2. **Labels anlegen (globale Klassifizierung)** == | ||
| 156 | |||
| 157 | Unter Group → Labels anlegen: | ||
| 158 | |||
| 159 | === Prozess === | ||
| 160 | |||
| 161 | * Story | ||
| 162 | * Bug | ||
| 163 | * Task | ||
| 164 | * Spike | ||
| 165 | |||
| 166 | === Priorität === | ||
| 167 | |||
| 168 | * P1 (hoch) | ||
| 169 | * P2 (mittel) | ||
| 170 | * P3 (niedrig) | ||
| 171 | |||
| 172 | === Status / Workflow === | ||
| 173 | |||
| 174 | * Ready | ||
| 175 | * Blocked | ||
| 176 | * Needs Review | ||
| 177 | * QA | ||
| 178 | |||
| 179 | === Komponenten / Teams === | ||
| 180 | |||
| 181 | * Frontend | ||
| 182 | * Backend | ||
| 183 | * DevOps | ||
| 184 | |||
| 185 | 👉 Vorteil: du kannst im Board filtern, Berichte ziehen und schnell nach Typ/Team sortieren. | ||
| 186 | |||
| 187 | ---- | ||
| 188 | |||
| 189 | == 3. **Iterations als Sprints** == | ||
| 190 | |||
| 191 | 1. Gehe zu deinem Projekt → **Iterations**. | ||
| 192 | 1. ((( | ||
| 193 | Lege für jeden Sprint eine Iteration an, z. B.: | ||
| 194 | |||
| 195 | * Sprint 2025-09-1 (01.09.–14.09.) | ||
| 196 | * Sprint 2025-09-2 (15.09.–28.09.) | ||
| 197 | ))) | ||
| 198 | 1. Wähle die **Dauer** (meist 2 Wochen). | ||
| 199 | 1. ((( | ||
| 200 | GitLab erzeugt automatisch: | ||
| 201 | |||
| 202 | * **Burndown-Chart** | ||
| 203 | * Fortschrittsübersicht | ||
| 204 | ))) | ||
| 205 | |||
| 206 | ---- | ||
| 207 | |||
| 208 | == 4. **Issue-Template für User Stories** == | ||
| 209 | |||
| 210 | Lege in deinem Repo unter .gitlab/issue_templates/Story.md eine Datei an: | ||
| 211 | |||
| 212 | {{code language="none"}} | ||
| 213 | # User Story | ||
| 214 | |||
| 215 | **Als** [Rolle] | ||
| 216 | **möchte ich** [Funktion/Feature] | ||
| 217 | **um** [Nutzen/Ziel]. | ||
| 218 | |||
| 219 | --- | ||
| 220 | |||
| 221 | ## 🎯 Akzeptanzkriterien | ||
| 222 | - [ ] Kriterium 1 | ||
| 223 | - [ ] Kriterium 2 | ||
| 224 | - [ ] Kriterium 3 | ||
| 225 | |||
| 226 | --- | ||
| 227 | |||
| 228 | ## 📊 Zusatzinfos | ||
| 229 | - **Epic:** <!-- Link zum Epic --> | ||
| 230 | - **Milestone (Sprint):** <!-- Sprint auswählen --> | ||
| 231 | - **Weight (Story Points):** <!-- Zahl eintragen --> | ||
| 232 | - **Labels:** Story, P1/P2/P3, Team | ||
| 233 | |||
| 234 | {{/code}} | ||
| 235 | |||
| 236 | {{{ | ||
| 237 | }}} | ||
| 238 | |||
| 239 | 👉 Damit erzwingst du einheitliche Stories. | ||
| 240 | |||
| 241 | ---- | ||
| 242 | |||
| 243 | == 5. **Sub-Issues für Tasks** == | ||
| 244 | |||
| 245 | * Innerhalb einer Story → Button **Create sub-issue**. | ||
| 246 | * ((( | ||
| 247 | Beispiel: | ||
| 248 | |||
| 249 | * ((( | ||
| 250 | Story: //„Login als Benutzer“// | ||
| 251 | |||
| 252 | * Sub-Issue: Backend-API | ||
| 253 | * Sub-Issue: Frontend-Formular | ||
| 254 | * Sub-Issue: Tests schreiben | ||
| 255 | ))) | ||
| 256 | ))) | ||
| 257 | |||
| 258 | ---- | ||
| 259 | |||
| 260 | == 6. **Board-Setup (Daily Workflow)** == | ||
| 261 | |||
| 262 | Erstelle ein **Issue Board** für dein Projekt: | ||
| 263 | |||
| 264 | Spalten (so Jira-ähnlich wie möglich): | ||
| 265 | |||
| 266 | 1. **Backlog** → Filter: No iteration | ||
| 267 | 1. **To Do** → Filter: Iteration = Aktueller Sprint + Label Ready | ||
| 268 | 1. **In Progress** → Filter: Iteration = Aktueller Sprint + Label In Progress | ||
| 269 | 1. **Review** → Filter: Needs Review | ||
| 270 | 1. **QA** → Filter: QA | ||
| 271 | 1. **Done** → Filter: Closed | ||
| 272 | |||
| 273 | 👉 Du kannst mehrere Boards speichern: | ||
| 274 | |||
| 275 | * **Backlog-Board** (alle Stories ohne Iteration) | ||
| 276 | * **Sprint-Board** (nur aktuelle Iteration) | ||
| 277 | * **QA-Board** (nur Stories im Testing) | ||
| 278 | |||
| 279 | ---- | ||
| 280 | |||
| 281 | == 7. **Sprint-Review & Retro** == | ||
| 282 | |||
| 283 | * ((( | ||
| 284 | Am Ende der Iteration: | ||
| 285 | |||
| 286 | * Offene Stories → ins nächste Iteration verschieben. | ||
| 287 | * Fertige Stories → bleiben als Dokumentation im alter Iteration. | ||
| 288 | ))) | ||
| 289 | * | ||
| 290 | |||
| 291 | ---- | ||
| 292 | |||
| 293 | == 🚀 Dein Scrum-Flow in GitLab Premium == | ||
| 294 | |||
| 295 | * **Epics** = Features | ||
| 296 | * **Issues** = User Stories | ||
| 297 | * **Sub-Issues** = Tasks | ||
| 298 | * **Iterations** = Sprints | ||
| 299 | * **Weight** = Story Points | ||
| 300 | * **Boards** = Daily Workflow | ||
| 301 | * **Burndown** = Sprint Monitoring | ||
| 302 | * **Milestones** = Grobe Projektplanung. Wann soll was fertig sein. |