Wiki source code of Projektarbeit

Version 2.1 by Marco Grawunder on 2026/08/25 14:44

Hide last authors
Marco Grawunder 1.1 1 = Teilaufgabe 1 - Projektmanagement organisieren =
2
3 * Organisieren Sie Ihr Projekt bzw. Team,
Marco Grawunder 2.1 4 ** verteilen Sie in der zweiten Woche die [[Einzelaufgaben>>doc:Main.Projektarbeit.WebHome||anchor="HAnforderungen:EinzelleistungenundEinzelaufgaben"]],
Marco Grawunder 1.1 5 ** definieren Sie eine Reihenfolge für die Übernahme der Moderation und des Protokolls (z.B. nach Alphabet)
6 ** die Tagesordnung ist vom Moderator mindestens einen Tag vorher zu erstellen (dafür ggf. die Gruppe nach weiteren TOPs fragen)
7 ** definieren Sie Standards für Dokumente (LaTeX, UTF-8, ...)
Marco Grawunder 2.1 8 ** Führen Sie ein [[Projekttagebuch>>doc:Main.Projektarbeit.WebHome||anchor="HProjekttagebuch"]] (im Wiki)
Marco Grawunder 1.1 9 * Dokumentieren Sie immer alle Ergebnisse der Gruppe, wie
10 ** Protokolle,
11 ** Ausarbeitungen,
12 ** Präsentationen,
13 ** Software-Dokumente, etc.
14 * mit einer Zuordnung zu Personen in GitLab. **Verwenden Sie dafür die Wiki-Funktion von Gitlab** ([[https:~~/~~/docs.gitlab.com/user/project/wiki/>>https://docs.gitlab.com/user/project/wiki/]]).
15 * Geben Sie die Einzelaufgaben an
16 * Stellen Sie ein Gruppenbild (mit Namen) ein! Ideal ist es für mich und die Tutoren, wenn in dem Bild die Namen direkt als Text enthalten sind.
17 * Überlegen Sie sich für Ihre Aufgaben eine "Definition of Ready" und eine "Definition of Done", d.h. was muss für eine Aufgabe erledigt sein, bevor sie als erledigt angesehen werden kann. (siehe z.B. [[https:~~/~~/www.scrum-events.de/was-ist-die-definition-of-done-dod.html>>url:https://www.scrum-events.de/was-ist-die-definition-of-done-dod.html]])
18 * Erstellen Sie basierend auf den Vorgaben der Veranstaltung eine Produktvision. (vgl. z.B. [[https:~~/~~/www.wibas.com/scrum/product-vision/de)>>url:https://www.wibas.com/scrum/product-vision/de]]
19
Marco Grawunder 2.1 20 Scrum hat den Nachteil, dass man lange "vor sich hin iterieren" kann. Definieren Sie zusätzliche **Meilensteine **zu denen bestimmte Funktionen fertig sein sollen. Einige sind vorgegeben (vgl. [[Meilensteine>>doc:Main.Softwareentwicklung.WebHome||anchor="HAnforderungen:DievordefiniertenMeilensteine"]]). Verwenden Sie zur Meilensteindefinition nicht nur die Präsentationstermine!
Marco Grawunder 1.1 21
22 = Anforderungen: Spielregeln innerhalb der Gruppe =
23
24 * **Allgemeine Regeln innerhalb der Gruppe**
25 ** alle
26 *** sind vorbereitet und nehmen aktiv teil
27 *** erledigen ihre Aufgaben vollständig und pünktlich
28 *** übernehmen aktiv Aufgaben
29 *** beachten Gruppenstandards
30 *** sind bereit, ihre Arbeit auf Fehler untersuchen zu lassen
31 **** Grundsätzliche Kritik bitte zunächst unmittelbar an eine Person, dann Gruppe, dann Tutor, dann Dozent
Marco Grawunder 2.1 32 **** Es gibt in jeder Gruppe einen Konfliktbeauftragten (siehe [[Anforderungen Einzelleistungen>>doc:Main.Projektarbeit.WebHome||anchor="HAnforderungen:EinzelleistungenundEinzelaufgaben"]]) geben
33 *** Diskriminierung wird in keinster Form geduldet! (siehe [[Spielregeln>>doc:Main.Projektarbeit.WebHome||anchor="HAnforderungen:SpielregelninnerhalbderGruppe"]])
Marco Grawunder 1.1 34 *** Konsequenzen bei Nichterfüllung von übertragenen Aufgaben festlegen?
35 ** Jeder übernimmt Teile bei
36 *** Dokumentation und
37 *** Implementierung
38 *** keine „Doku-Sklaven“!
39 * **Kommunikationsregeln innerhalb der Gruppe**
40 ** Es sollte stets ein respektvoller Umgangston herrschen.
41 ** Jedes Gruppenmitglied hat das Recht auf freie Meinungsäußerung und wird in Gesprächen,
42 Diskussionen oder Vorstellungen nicht unterbrochen.
43 ** Gespräche und Diskussionen jeglicher Art finden stets auf einer sachlichen Ebene statt. Beleidigungen
44 jeglicher Form werden nicht toleriert.
45 ** Zwischenmenschliche Probleme werden direkt offen und nicht hinter dem Rücken des betreffenden
46 Gruppenmitgliedes kommuniziert.
47 * **Verhaltensregeln innerhalb der Gruppe**
48 ** Alle Gruppenmitglieder werden stets mit Respekt behandelt.
49 ** Kritik wird stets konstruktiv auf einer sachlichen Ebene geäußert.
50 ** Im Sinne der Projektarbeit kann der Fall eintreten, dass persönliche Ansichten zurückgestellt
51 werden müssen. Es wird somit ein hohes Maß an Kompromissbereitschaft vorausgesetzt.
52 ** Meinungen, welche von den eigenen Ansichten abweichen, werden stets toleriert.
53 ** Bei verursachten Fehlern wird stets die volle Verantwortung für das eigene Handeln übernommen.
54
55 == Keine Tolerierung von Diskriminierung jeglicher Art ==
56
57 Leider sind wir im Rahmen des „Software Projektes“ auf eine Reihe von Vorfällen aufmerksam geworden, bei denen es um sexualisiertes Verhalten oder Herabwürdigung aufgrund des Geschlechtes geht. Diese Vorfälle reichen von vermeintlich harmlosen „dummen Sprüchen“ bis hin zu direktem unerwünschtem körperlichem Kontakt.
58
59 Ich möchte noch einmal ausdrücklich darauf hinweisen, dass wir als Department für Informatik und natürlich auch als Universität Oldenburg jede Art von Diskriminierung in keiner Weise tolerieren. Ein solches Vorkommnis kann bis zum Ausschluss von der Veranstaltung, in weitergehenden Fällen sogar bis zur Exmatrikulation führen!
60
61 Wir wissen, dass dies in der großen Masse lediglich Einzelfälle sind, und es geht auf keinen Fall darum, das gesamte „Software Projekt“ zu beschuldigen. Wir möchten jedoch jeden Einzelnen und jede Einzelne dafür sensibilisieren, auf solche Situationen zu achten und gegebenenfalls entschärfend einzuwirken.
62
63 Die Betroffenen bitte ich darum, das Thema nicht mit sich herumzutragen, sondern die möglichen Kontaktmöglichkeiten zu nutzen. Nur dann, wenn das Thema offensiv angegangen wird, besteht die Chance, dass die Sensibilität für das Thema steigt!
64
65 Nachfolgend werden einige Informationen über Diskriminierung & Gewalt, dessen "Alarmglocken", Präventionsmöglichkeiten, Handlungsempfehlungen und die Aufgaben der Erstberatung zur Verfügung gestellt.
66
67 [[Alarmglocken>>attach:Alarmglocken.pdf]]
68
69 [[Aufgaben Erstberatung>>attach:Aufgaben Erstberatung.pdf]]
70
71 [[Handlungsempfehlungen Bystander>>attach:Handlungsempfehlungen Bystander_14.04.23.pdf]]
72
73 [[Prävention>>attach:Prävention.pdf]]
74
75 [[Sexualisierte Diskriminierung und Gewalt>>attach:Sexualisierte Diskriminierung und Gewalt.pdf]]
76
77 **Kontaktmöglichkeiten**
78
79 * Tutor/Tutorin der Gruppe
80 * Dozent der Veranstaltung
81 * Fachschaft Informatik: [[https:~~/~~/fachschaft-informatik.de/>>url:https://fachschaft-informatik.de/]]
82 * Dezentrale Gleichstellungbeauftragte der Informatik: [[https:~~/~~/uol.de/informatik/department/gremien-beauftragte/beauftragte>>url:https://uol.de/informatik/department/gremien-beauftragte/beauftragte]]
83 * Direktor/Direktorin des Departments: [[https:~~/~~/uol.de/informatik>>url:https://uol.de/informatik]]
84 * Erstanlaufstelle Antidiskriminierung des AStA: Donnerstags: 10:30 - 13:30 Uhr de/eng/farsi im AStA Trakt, Raum M1-157, [[beratung@asta-uol.de>>mailto:beratung@asta-uol.de||style="background-color: rgb(255, 255, 255);"]],
85 * conTakt: [[https:~~/~~/uol.de/contakt-beratungsstelle>>url:https://uol.de/contakt-beratungsstelle]]
86
87 = Anforderungen: Einzelleistungen und Einzelaufgaben =
88
89 Neben der eigentlichen Softwareentwicklung gibt es spezielle Aufgaben, die von den Teammitglieder als Querschnittsaufgaben übernommen werden müssen. Diese Spezialisten und Verantwortlichen arbeiten sich in das Thema ein, beraten die Mitglieder der Gruppe und sorgen dafür, dass die Anforderungen an diese Aufgabe eingehalten werden. Die Aufgaben können dabei von einzelnen Personen oder auch zu zweit übernommen werden. Die Rollen sind dabei als Serviceleistungen zu verstehen, d.h. wenn es keinen Bedarf gibt, muss die "Rolle" auch nicht krampfhaft versuchen, Inhalt zu finden, mit denen die Rolle gefüllt werden kann, dann lieber auf das Projekt fokussieren oder andere Rollen unterstützen. Die Idee ist i.d.R. eher: Hier gibt es eine Person, die sich für die Aufgabe verantwortlich fühlt und im Zweifelsfall weiterhelfen kann bzw. dafür sorgt, dass die Dinge erfüllt werden (wie beim Scrummaster oder Testbeauftragten). In den Einschätzungen der Tutoren gibt es dafür auch ein Feld, welche die Felder "erfüllt", "nicht erfüllt" oder "war nicht notwendig" enthält.
90
91 Die Vorträge für die Einzelaufgaben des ersten Blocks müssen auf jeden Fall im ersten Semester, am besten innerhalb der ersten 7 Wochen durchgeführt worden sein!
92
93 Die Einzelaufgaben sollten **erst beim zweiten Treffen** vergeben werden. Vorher sollte sich jeder darüber informieren, was die Einzelaufgabe beinhaltet.
94
95 == Einzelaufgaben/Rollen (müssen vergeben sein) ==
96
97 Hinweis: Der Aufwand ist relativ zu sehen, d.h. Scrum-Master ist z.B. aufwändiger als Testbeauftragter
98
99 **Scrum-Master:**
100
101 * Sorgt dafür, dass der Scrum-Prozess am Laufen bleibt
102 * Kurze Zusammenfassung zu [[Scrum>>doc:Main.Scrum.WebHome||anchor="HEinkurzerDCberblick"]], ausführlicher in den Folien der VL und in [[Scrum im Detail>>doc:Main.Scrum.WebHome||anchor="HImDetail"]].
103 * Es sollte auf jeden Fall einen Stellvertreter geben, der ggf. die Rolle übernehmen kann (z.B. bei Krankheit oder Beendigung des SWPs).
104 * Diese Rolle ist mit die wichtigste Rolle im SWP und verlangt durchgehend sehr viel Kapazität. Ein Scrum-Master ist aus diesem Grund typischerweise weniger (aber trotzdem noch) an der Implementierung beteiligt.
105 * Der Scrum-Master kann zu Beginn des Softwareprojekts an einem Workshop teilnehmen (Einladung erfolgt zu Beginn) - die Teilnahme ist empfohlen.
106 * Der Scrum-Master kann während des gesamten Projekts hinweg an einem monatlichen **Scrum-Master-Treffen** teilnehmen (nähere Informationen werden im Workshop mitgeteilt) - die Teilnahme ist empfohlen.
107 * Aufwand: Sehr hoch
108
109 **GitLab, Projektplanung und Productowner:**
110
111 * Scrum hat das Problem, dass man beliebig "herumiterieren" kann. Diese Rolle soll dafür sorgen, dass das "Große und Ganze" nicht aus den Augen verloren geht. Die grundlegend definierten Meilensteine sollten dabei um weitere Meilensteine ergänzt werden. Diese Meilensteine sollen dabei helfen, Sprintziele zu definieren.
112 * Projektplan/Meilensteinplan erstellen, aktualisieren und überwachen. Dabei ist es nicht notwendig, sowas wie ein Gant-Chart über das komplette Semester zu erstellen.
Marco Grawunder 2.1 113 * [[Projekttagebuch>>doc:Main.Projektarbeit.WebHome||anchor="HProjekttagebuch"]] führen
Marco Grawunder 1.1 114 * Stundenzettelpflege überwachen
115 * Weiterhin soll diese Person als Ansprechpartner für GitLab dienen, d.h. sie sollte sich besonders informieren und ggf. bei Fragen und Problemen beratend zur Seite stehen.
116 * Product Owner
117 * NEU: Diese Rolle sollte vorrangig mit dem Tutor die Scrum-Rolle des Productowners übernehmen, d.h. die Person kontrolliert, ob immer genug Tickets im Backlog vorliegen und macht ggf. eine Priorisierung der Tickets.
118 * NEU: Die Rolle sorgt dafür, dass in allen Tickets im Sprint Dod (Definition of Done) definiert sind
119 * NEU: Die Rolle sorgt dafür, dass kleinere Teilgruppen (**Ticket-Task-Force**) dafür sorgen, dass neue Tickets formuliert und Ticketbeschreibungen verbessert werden (Backlogrefinement). Die Teilnehmer der Teilgruppen dürfen nicht über den ganzen Durchgang gleich bleiben sondern muss im Laufe der Zeit wechseln. Sollte die Gruppe sich gegen eine Ticket-Task-Force entscheiden, können die Tickets und Ticketbeschreibungen auch in der gesamten Gruppe gemeinsam erarbeitet werden.
120 * Aufwand: Hoch
121
122 **OpenAPI, REST und Spring**
123
124 * Kennt sich mit den entsprechenden Technologien aus und dient als Ansprechpartner
125 * Aufwand: Kann sehr variieren
126 * Hinweis: Es kann Sinn machen (bei mehr als 10 Teilnehmern), diese Rolle in "OpenAPI, REST, WebSockets" und "Spring" aufzuteilen.
127
128 **~ Git/Gitlab und Reviewbeauftragter:**
129
130 * Der Inhaber kennt sich mit Git und Gitlab aus.
131 * Er kann in nicht Standard-Fällen helfen (z.B. wenn ein Mergen zu Konflikten führt)
132 * Der Inhaber dieser Rolle sollte sich auch darum kümmern, dass der Git-Workflow (Ticket → Branch → PR → Mergen) eingehalten, dass Merge-Requests sinnvoll abgearbeitet werden und nicht zu lange liegen bleiben.
133 * Im Laufe der Zeit sollte diese Rolle weniger wichtig werden, da alle den Workflow verinnerlicht haben.
134 * Die Gruppe muss mindestens ein gruppenweites Code-Review durchführen
135 * Der Review-Beauftragte ist dafür zuständig, dieses Review anzuleiten und rechtzeitig zu initiieren.
136 * Zusammen mit dem Codequalitätsbeauftragtem für die sinnvolle Durchführung der Abarbeitung der Merge-Requests zuständig.
137 * Aufwand: Geringer
138 * Aufwand: Mittel.
139
140 **Codequalitätsbeauftragter und Patternbeauftragter:**
141
142 * Überwachung von Codierungsstandards
143 * Kennt sich mit Refactorings aus
144 * Kennt sich mit Code-Smells aus, also, was macht guten und was macht schlechten Code aus
145 * Kennt sich mit Tools wie: FindBugs, Checkstyle und SonarLint/Sonarqube aus.
146 * Soll sich in die wichtigsten Pattern (wie MVP, Observer, Command-Pattern) einarbeiten
147 * Die Gruppe bei der Anwendung der Pattern unterstützen
148 * Den Code darauf hin untersuchen, ob an bestimmten Stellen Pattern besser gewesen wären
149 * Aufwand: Mittel
150
151 **Testbeauftragter:**
152
153 * Der Testbeauftragte ist nicht dafür da, Tests zu schreiben!
154 * Die Person stellt ggf. Mockito und JUnit vor
155 * Testbautragte hilft dabei, Test zu schreiben, d.h. bietet Unterstützung bei Fragen an
156 * Die Person muss dafür sorgen, dass Tests nicht vernachlässigt werden, hat also regelmäßig einen Blick auf die aktuelle Testabdeckung und weist ggf. Personen darauf hin, dass bestimmte Codeabschnitte noch (besser) durch Tests abgedeckt werden müssen.
157 * Die Person sorgt dafür, dass Tests, die nicht automatisiert erstellt werden (z.B. Test von Oberflächen) dokumentiert werden.
158 * Aufwand: Mittel
159
160 **Dokumentations- und Backupbeauftragter, Wiki, LaTeX-Beauftragter:**
161
162 * Sorgt dafür, dass die passenden Dokumente erstellt, mitgepflegt und gesichert werden (kein Doku Sklave!)
163 * Erstellung/Anpassung von Vorlagen, Hilfe
164 * Musterdokumente, Standards, Ablagestrategie, Qualitätssicherung, Bereitstellungsstrategie
165 * Die Rolle achtet darauf, dass Dinge die fertig sind, auch bereits dann ausreichend dokumentiert werden.
166 * Aufwand: Mittel
167
168 **Konfliktmanagement:**
169
170 * Es kommt ab und zu vor, dass im SWP gruppeninterne Konflikte auftreten.
171 * Diese Rolle soll sich im Vorfeld (also bevor etwas "schief" geht), damit befassen, welche Methoden und Ansätze es gibt, in Gruppen mit solchen Konflikten umzugehen.
172 * Es macht Sinn, dass es jemanden zweiten gibt, der sich als Stellvertreter ebenfalls mit dieser Aufgabe befasst, falls die Person, die diese Rolle eigentlich inne hat, selber der Auslöser eines Konfliktes ist.
173 * Aufwand: Hängt massiv von der Gruppe ab ... Kann sehr wenig, kann aber auch sehr komplex werden.
174
175 Falls alle Rollen vergeben sind, können noch folgende ergänzend dazu kommen.
176
177 * Spielregeln
178 * Frontend (z.B. JavaFX oder Web-Frontends)
179 * Spezielle Rolle für REST, WebSockets und OpenAPI und dafür in der obigen Rolle (OpenAPI, REST und Spring) nur noch Spring
180 * Progammierkonzepte
181 ** z.B. Dependency Injection mit Guice
182 * DB-Zugriff:
183 ** Installation/Überwachung der DB
184 * Spezialisten für verschiedene Teilthemen:
185 ** Netzwerkkommunikation
186 ** Regeln des aktuellen Spiels
187 ** Weitere Frameworks
188 ** GUI
189
190 === Projekttagebuch ===
191
192 Im Projekttagebuch werden kurz und knapp die Ergebnisse der Sprints festgehalten und der Ablauf der Projekte als Ganzes dokumentiert.
193
194 Für jeden Sprint wird hier geschrieben,
195
196 * welche Stories umgesetzt wurden.
197 * wie das Review gelaufen ist.
198 * wie die Retrospektive gelaufen ist und welche Maßnahmen ergriffen worden sind, um Probleme im nächsten Sprint zu reduzieren.
199
200 Außerdem:
201
202 * Wann wurden Meilensteine erreicht
203 * Wann wurden Meilensteine verschoben und (ganz wichtig!) was waren die Gründe dafür
204 * Wann wurden andere wichtige Zwischenziele erreicht
205 * Welche besonderen Dinge hat es gegeben, die wesentlichen Einfluss auf das Projekt oder die Gruppe hatten
206
207 == Anforderungen: Wechselnde Aufgaben innerhalb der Gruppe ==
208
209 Diese Aufgaben wechseln wöchentlich:
210
211 * Sitzungsleitung und Moderation
212 ** Leitung der Gruppensitzung (Wichtig!!), Support durch Scrum-Master
213 ** Tagesordnung definieren (vorher)!!
Marco Grawunder 2.1 214 ** Ein Moderator ist dafür zuständig, dass die Sitzungen geregelt ablaufen, d.h. insbesondere muss ein Moderator darauf achten, dass die Teilnehmer sich an die Regeln (siehe: [[Spielregeln>>doc:Main.Projektarbeit.WebHome||anchor="HAnforderungen:SpielregelninnerhalbderGruppe"]]) halten, jeder Sprechzeit bekommt und eine Kommunikation möglich ist, d.h. im Zweifelsfall auch Diskussionen zu unterbrechen. 
Marco Grawunder 1.1 215 Hier gibt es weitere Hinweise zu der Aufgabe eines Moderators: [[https:~~/~~/www.openpr.de/news/1231293/Was-sind-die-Aufgaben-eines-Moderators.html >>url:https://www.openpr.de/news/1231293/Was-sind-die-Aufgaben-eines-Moderators.html%C2%A0]]
216 * Protokollführung
217 ** Erstellung eines Protokolls der Gruppensitzung
218 ** Hier reicht i.d.R. ein Ergebnisprotokoll
219 ** Protokolle müssen direkt im Wiki abgelegt sein (nicht als PDF, damit sind die einfacher lesbar)
220 * Zu Beginn jeder Gruppensitzung („Daily Scrum“):
221 ** findet ein kurzes „Briefing“ („Blitzlicht“) statt, in der jede/r berichtet, was sie/er in der letzten Woche für das Projekt getan hat.
222 * Am Ende jeder Sitzung neue Aufgabenverteilung
223 ** Tickets (wer macht was)
224 ** Leitung/Protokoll (Liste!)
225 * Tutor ist nur Berater, leitet keine Sitzungen, kann aber um Rat gefragt werden (und greift (zu Beginn mehr und Ende weniger) ein, wenn es zu sehr „aus dem Ruder läuft“, erlaubt aber auch Fehler …)
226
227 = Gruppenweites Code Review (Team-Review) =
228
229 Neben den üblichen Pull-Request-Reviews soll im Projekt mindestens ein **gruppenweites Code Reviews** durchgeführt werden. Dieses dienen nicht primär der Fehlersuche, sondern dem **gemeinsamen Verständnis, der Diskussion von Lösungsansätzen und dem Lernen im Team**.
230
231 == Ziel des Gruppenreviews ==
232
233 Das gruppenweite Review soll dabei helfen:
234
235 * die **gesamte Codebasis besser zu verstehen**
236 * **Designentscheidungen nachvollziehen und hinterfragen zu können**
237 * voneinander zu lernen (gute Lösungen, typische Probleme)
238 * Wissen im Team zu verteilen (kein „Ein-Personen-Code“)
239
240 Wichtig: Es geht **nicht darum, jemanden zu bewerten**, sondern gemeinsam besseren Code zu entwickeln.
241
242 == Organisation ==
243
244 * Durchführung: **mindestens einmal im Semester**
245 * Dauer: **30–60 Minuten**
246 * Vorstellung von **1–2 ausgewählten Codeausschnitten**
247
248 == Rollen im Review ==
249
250 === Autor:in ===
251
252 * stellt den Code vor
253 * (((
254 erklärt:
255
256 * Ziel und Kontext
257 * wichtige Designentscheidungen
258 * ggf. offene Fragen oder Unsicherheiten
259 )))
260
261 === Gruppe (Reviewer) ===
262
263 * stellt Verständnisfragen
264 * gibt Feedback
265 * diskutiert Alternativen
266
267 === Moderator:in ===
268
269 * achtet auf Zeit und Struktur
270 * sorgt dafür, dass alle beteiligt werden
271 * verhindert Abschweifen
272
273
274
275 == Ablauf eines Gruppenreviews ==
276
277 === 1. Vorbereitung (Autor:in) ===
278
279 * Wählt einen **überschaubaren Codeausschnitt** (keine sehr großen Änderungen)
280 * (((
281 Fokus z. B. auf:
282
283 * interessante Logik
284 * Architekturentscheidungen
285 * schwierige oder unklare Stellen
286 )))
287 * (((
288 Bereitet **2–3 konkrete Fragen** vor, z. B.:
289
290 * „Ist diese Struktur sinnvoll?“
291 * „Wie würdet ihr das testen?“
292 * „Gibt es eine einfachere Lösung?“
293 )))
294
295 === 2. Vorstellung (ca. 5–10 Minuten) ===
296
297 * (((
298 kurzer Überblick:
299
300 * Was macht der Code?
301 * Wo ist er im System eingeordnet?
302 )))
303 * keine detaillierte Zeilen-für-Zeilen-Erklärung
304
305 === 3. Gemeinsames Review (ca. 20–40 Minuten) ===
306
307 Diskussion des Codes anhand folgender Leitfragen:
308
309 ==== Verständlichkeit ====
310
311 * Ist der Code gut nachvollziehbar?
312 * Welche Stellen sind schwer verständlich?
313
314 ==== Design ====
315
316 * Ist die Struktur sinnvoll gewählt?
317 * Gibt es einfachere oder klarere Alternativen?
318
319 ==== Wartbarkeit ====
320
321 * Ist der Code leicht erweiterbar?
322 * Gibt es unnötige Komplexität?
323
324 ==== Testbarkeit ====
325
326 * Wie könnte man den Code testen?
327 * Sind relevante Tests vorhanden oder ableitbar?
328
329 === 4. Fazit (ca. 5 Minuten) ===
330
331 * Was war gut?
332 * Was kann verbessert werden?
333 * Welche Erkenntnisse nehmen wir als Team mit?
334
335 == Geeignete Inhalte für das Gruppenreview ==
336
337 **Gut geeignet:**
338
339 * neue Features mit Designentscheidungen
340 * komplexe Logik oder Algorithmen
341 * Refactorings
342 * Code, bei dem Unsicherheit besteht
343
344 **Weniger geeignet:**
345
346 * sehr kleine oder triviale Änderungen
347 * reine Formatierungsänderungen
348 * sehr große, unstrukturierte Codebereiche
349
350 == Feedback-Regeln ==
351
352 === Gutes Feedback ist: ===
353
354 * konkret („Die Methode ist schwer lesbar, weil …“)
355 * begründet („… dadurch wird der Ablauf schwer nachvollziehbar“)
356 * konstruktiv („Man könnte hier …“)
357
358 === Vermeidet: ===
359
360 * pauschale Aussagen („Das ist schlecht“)
361 * persönliche Kritik
362 * Diskussionen ohne Bezug zum Code
363
364 == Typische Probleme ==
365
366 * **Zu viel Code:** → stärker eingrenzen
367 * **Alle schweigen:** → gezielte Fragen stellen
368 * **Einzelne dominieren:** → Moderator:in steuert aktiv
369 * **Diskussion driftet ab:** → Fokus wieder auf Code lenken
370
371 == Minimal-Regeln ==
372
373 1. Es wird **nur ein überschaubarer Codeausschnitt** betrachtet
374 1. Eine Person stellt den Code vor
375 1. Die Gruppe diskutiert strukturiert
376 1. Am Ende werden **konkrete Erkenntnisse festgehalten**
377
378 == Hinweis ==
379
380 Das Gruppenreview ist eine **Lerngelegenheit**.
381 Bringt gerne auch Code mit, bei dem ihr unsicher seid – genau dort entsteht oft die beste Diskussion.
382
383 Man kann das auch mehrmals machen. Im SWP wird es aber nur einmal verlangt.
384
385 ----
386