Wiki source code of Anforderungen Gruppen

Last modified by Marco Grawunder on 2026/07/28 16:09

Show last authors
1 [[image:Main.Organisatorisches.WebHome@softwareprojekt_logo_transparent.png||alt="SoftwareprojektLogo.png" data-xwiki-image-style-alignment="end" height="136" width="309"]]
2
3 {{toc/}}
4
5 = Anforderungen Gruppensitzungen =
6
7 Die Gruppensitzungen (im Stud.IP zu erkennen an AG Softwareprojekt (X)) sind die Zeiten, in denen die Teams gemeinsam ihr Produkt entwickeln. Die Sitzungen werden von einem Tutor/einer Tutorin begleitet. Die Gruppentreffen finden i.d.R. in Präsenz statt. Im zweiten Semester braucht es ggf. nur alle zwei Wochen ein Präsenztreffen mit dem Tutor/der Tutorin, der Rest kann dann auch online stattfinden.
8
9 Die Gruppen werden zu Beginn des Semesters (i.d.R. ca. 14 Tage vorher mit Hilfe des Tutorientools) gebildet. Idealerweise haben die Gruppen eine Größe von 8 bis 12 Teilnehmern. Da die Anzahl der Tutoren und damit Tutorien beschränkt ist, kann es in Ausnahmefällen auch zu leicht größeren Gruppen kommen.
10
11 Da wichtige Besprechungen (z.B. die Scrum-Meetings) statt finden, ist es unbedingt notwendig, dass alle Mitglieder regelmäßig da sind. Wenn jemand **drei mal unentschuldigt** fehlt, gibt es ein Gespräch bei mir um zu klären, ob eine weitere Teilnahme möglich ist. Das gleiche gilt für **sechs mal entschuldigt**.
12
13 **Unterteilung in Untergruppen**: Es ist sinnvoll, wechselnde, kleinere Teilgruppen für Teilaufgaben zu bilden. Die Erfahrung zeigt jedoch, dass es **keine gute Idee ist, eine dauerhafte Trennung in Client und Server** vorzunehmen, da es bei Problemen in den einzelnen Bereichen sehr schwierig ist, gegenzusteuern!
14
15 Für den Einstieg ist es sinnvoll, **Pairprogramming** durchzuführen. Wichtig ist es dabei, dass die Commits die Informationen über das Pairprogramming enthalten.
16
17 == Zusatztreffen ==
18
19 Es ist sinnvoll, sich mindestens in Kleingruppen noch einmal außerhalb des Gruppentreffens zusammenzusetzen. Dafür ist es möglich, Räume in der [[Arbi >>url:https://uol.de/informatik/department/arbi]]zu buchen. Dazu bitte an [[Olaf Wendt>>url:https://uol.de/informatik/department/arbi/olaf-wendt]] wenden.
20
21 == Vorschlag für Ablauf ==
22
23 Es ist nicht immer leicht, zu Beginn die Organisation zu handhaben. Aus diesem Grund im Folgenden ein paar Hilfsdiagramme, die ein Student erstellt hat und freundlicherweise zur Verfügung gestellt hat. Wichtig sind dazu auch noch einmal die [[Scrum>>doc:Main.Scrum.WebHome]]-Aspekte, die auch in einem [[Scrum-Workshop>>doc:Main.Scrum.WebHome||anchor="HScrumWorkshop"]] aufbereitet wurde. Wenn es die Mittel zulassen und es eine geeignete Person gibt, wird der [[Scrum-Workshop>>doc:Main.Scrum.WebHome||anchor="HScrumWorkshop"]] angeboten.
24
25 [[image:Arbeitsweise_Weiß.png]]
26
27 [[image:Aufgabenbearbeitung_Weiß.png]]
28
29
30 = Anforderungen: Spielregeln innerhalb der Gruppe =
31
32 * **Allgemeine Regeln innerhalb der Gruppe**
33 ** alle
34 *** sind vorbereitet und nehmen aktiv teil
35 *** erledigen ihre Aufgaben vollständig und pünktlich
36 *** übernehmen aktiv Aufgaben
37 *** beachten Gruppenstandards
38 *** sind bereit, ihre Arbeit auf Fehler untersuchen zu lassen
39 **** Grundsätzliche Kritik bitte zunächst unmittelbar an eine Person, dann Gruppe, dann Tutor, dann Dozent
40 **** Es gibt in jeder Gruppe einen Konfliktbeauftragten (siehe [[Anforderungen Einzelleistungen>>doc:Main.Anforderungen Gruppen.WebHome||anchor="HAnforderungen:EinzelleistungenundEinzelaufgaben"]]) geben
41 *** Diskriminierung wird in keinster Form geduldet! (siehe [[Spielregeln>>doc:Main.Anforderungen Gruppen.WebHome||anchor="HAnforderungen:SpielregelninnerhalbderGruppe"]])
42 *** Konsequenzen bei Nichterfüllung von übertragenen Aufgaben festlegen?
43 ** Jeder übernimmt Teile bei
44 *** Dokumentation und
45 *** Implementierung
46 *** keine „Doku-Sklaven“!
47 * **Kommunikationsregeln innerhalb der Gruppe**
48 ** Es sollte stets ein respektvoller Umgangston herrschen.
49 ** Jedes Gruppenmitglied hat das Recht auf freie Meinungsäußerung und wird in Gesprächen,
50 Diskussionen oder Vorstellungen nicht unterbrochen.
51 ** Gespräche und Diskussionen jeglicher Art finden stets auf einer sachlichen Ebene statt. Beleidigungen
52 jeglicher Form werden nicht toleriert.
53 ** Zwischenmenschliche Probleme werden direkt offen und nicht hinter dem Rücken des betreffenden
54 Gruppenmitgliedes kommuniziert.
55 * **Verhaltensregeln innerhalb der Gruppe**
56 ** Alle Gruppenmitglieder werden stets mit Respekt behandelt.
57 ** Kritik wird stets konstruktiv auf einer sachlichen Ebene geäußert.
58 ** Im Sinne der Projektarbeit kann der Fall eintreten, dass persönliche Ansichten zurückgestellt
59 werden müssen. Es wird somit ein hohes Maß an Kompromissbereitschaft vorausgesetzt.
60 ** Meinungen, welche von den eigenen Ansichten abweichen, werden stets toleriert.
61 ** Bei verursachten Fehlern wird stets die volle Verantwortung für das eigene Handeln übernommen.
62
63 == Keine Tolerierung von Diskriminierung jeglicher Art ==
64
65 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.
66
67 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!
68
69 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.
70
71 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!
72
73 Nachfolgend werden einige Informationen über Diskriminierung & Gewalt, dessen "Alarmglocken", Präventionsmöglichkeiten, Handlungsempfehlungen und die Aufgaben der Erstberatung zur Verfügung gestellt.
74
75 [[Alarmglocken>>attach:Alarmglocken.pdf]]
76
77 [[Aufgaben Erstberatung>>attach:Aufgaben Erstberatung.pdf]]
78
79 [[Handlungsempfehlungen Bystander>>attach:Handlungsempfehlungen Bystander_14.04.23.pdf]]
80
81 [[Prävention>>attach:Prävention.pdf]]
82
83 [[Sexualisierte Diskriminierung und Gewalt>>attach:Sexualisierte Diskriminierung und Gewalt.pdf]]
84
85 **Kontaktmöglichkeiten**
86
87 * Tutor/Tutorin der Gruppe
88 * Dozent der Veranstaltung
89 * Fachschaft Informatik: [[https:~~/~~/fachschaft-informatik.de/>>url:https://fachschaft-informatik.de/]]
90 * Dezentrale Gleichstellungbeauftragte der Informatik: [[https:~~/~~/uol.de/informatik/department/gremien-beauftragte/beauftragte>>url:https://uol.de/informatik/department/gremien-beauftragte/beauftragte]]
91 * Direktor/Direktorin des Departments: [[https:~~/~~/uol.de/informatik>>url:https://uol.de/informatik]]
92 * 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);"]],
93 * conTakt: [[https:~~/~~/uol.de/contakt-beratungsstelle>>url:https://uol.de/contakt-beratungsstelle]]
94
95 = Anforderungen: Einzelleistungen und Einzelaufgaben =
96
97 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. 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.
98
99 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!
100
101 Die Einzelaufgaben sollten **erst beim zweiten Treffen** vergeben werden. Vorher sollte sich jeder darüber informieren, was die Einzelaufgabe beinhaltet.
102
103 == Einzelaufgaben/Rollen (müssen vergeben sein) ==
104
105 Hinweis: Der Aufwand ist relativ zu sehen, d.h. Scrum-Master ist z.B. aufwändiger als Testbeauftragter
106
107 **Scrum-Master:**
108
109 * Sorgt dafür, dass der Scrum-Prozess am Laufen bleibt
110 * 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"]].
111 * Es sollte auf jeden Fall einen Stellvertreter geben, der ggf. die Rolle übernehmen kann (z.B. bei Krankheit oder Beendigung des SWPs).
112 * 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.
113 * Der Scrum-Master kann zu Beginn des Softwareprojekts an einem Workshop teilnehmen (Einladung erfolgt zu Beginn) - die Teilnahme ist empfohlen.
114 * 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.
115 * Aufwand: Sehr hoch
116
117 **GitLab, Projektplanung und Productowner:**
118
119 * 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.
120 * Projektplan/Meilensteinplan erstellen, aktualisieren und überwachen. Dabei ist es nicht notwendig, sowas wie ein Gant-Chart über das komplette Semester zu erstellen.
121 * [[Projekttagebuch>>doc:Main.Anforderungen Gruppen.WebHome||anchor="HProjekttagebuch"]] führen
122 * Stundenzettelpflege überwachen
123 * 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.
124 * Product Owner
125 * 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.
126 * NEU: Die Rolle sorgt dafür, dass in allen Tickets im Sprint Dod (Definition of Done) definiert sind
127 * 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.
128 * Aufwand: Hoch
129
130 **OpenAPI, REST und Spring**
131
132 * Kennt sich mit den entsprechenden Technologien aus und dient als Ansprechpartner
133 * Aufwand: Kann sehr variieren
134 * Hinweis: Es kann Sinn machen (bei mehr als 10 Teilnehmern), diese Rolle in "OpenAPI, REST, WebSockets" und "Spring" aufzuteilen.
135
136 **~ Git/Gitlab und Reviewbeauftragter:**
137
138 * Der Inhaber kennt sich mit Git und Gitlab aus.
139 * Er kann in nicht Standard-Fällen helfen (z.B. wenn ein Mergen zu Konflikten führt)
140 * 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.
141 * Im Laufe der Zeit sollte diese Rolle weniger wichtig werden, da alle den Workflow verinnerlicht haben.
142 * Die Gruppe muss mindestens ein gruppenweites Code-Review durchführen
143 * Der Review-Beauftragte ist dafür zuständig, dieses Review anzuleiten und rechtzeitig zu initiieren.
144 * Zusammen mit dem Codequalitätsbeauftragtem für die sinnvolle Durchführung der Abarbeitung der Merge-Requests zuständig.
145 * Aufwand: Geringer
146 * Aufwand: Mittel.
147
148 **Codequalitätsbeauftragter und Patternbeauftragter:**
149
150 * Überwachung von Codierungsstandards
151 * Kennt sich mit Refactorings aus
152 * Kennt sich mit Code-Smells aus, also, was macht guten und was macht schlechten Code aus
153 * Kennt sich mit Tools wie: FindBugs, Checkstyle und SonarLint/Sonarqube aus.
154 * Soll sich in die wichtigsten Pattern (wie MVP, Observer, Command-Pattern) einarbeiten
155 * Die Gruppe bei der Anwendung der Pattern unterstützen
156 * Den Code darauf hin untersuchen, ob an bestimmten Stellen Pattern besser gewesen wären
157 * Aufwand: Mittel
158
159 **Testbeauftragter:**
160
161 * Der Testbeauftragte ist nicht dafür da, Tests zu schreiben!
162 * Die Person stellt ggf. Mockito und JUnit vor
163 * Testbautragte hilft dabei, Test zu schreiben, d.h. bietet Unterstützung bei Fragen an
164 * 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.
165 * Die Person sorgt dafür, dass Tests, die nicht automatisiert erstellt werden (z.B. Test von Oberflächen) dokumentiert werden.
166 * Aufwand: Mittel
167
168 **Dokumentations- und Backupbeauftragter, Wiki, LaTeX-Beauftragter:**
169
170 * Sorgt dafür, dass die passenden Dokumente erstellt, mitgepflegt und gesichert werden (kein Doku Sklave!)
171 * Erstellung/Anpassung von Vorlagen, Hilfe
172 * Musterdokumente, Standards, Ablagestrategie, Qualitätssicherung, Bereitstellungsstrategie
173 * Die Rolle achtet darauf, dass Dinge die fertig sind, auch bereits dann ausreichend dokumentiert werden.
174 * Aufwand: Mittel
175
176 **Konfliktmanagement:**
177
178 * Es kommt ab und zu vor, dass im SWP gruppeninterne Konflikte auftreten.
179 * 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.
180 * 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.
181 * Aufwand: Hängt massiv von der Gruppe ab ... Kann sehr wenig, kann aber auch sehr komplex werden.
182
183 Falls alle Rollen vergeben sind, können noch folgende ergänzend dazu kommen.
184
185 * Spielregeln
186 * Frontend (z.B. JavaFX oder Web-Frontends)
187 * Spezielle Rolle für REST, WebSockets und OpenAPI und dafür in der obigen Rolle (OpenAPI, REST und Spring) nur noch Spring
188 * Progammierkonzepte
189 ** z.B. Dependency Injection mit Guice
190 * DB-Zugriff:
191 ** Installation/Überwachung der DB
192 * Spezialisten für verschiedene Teilthemen:
193 ** Netzwerkkommunikation
194 ** Regeln des aktuellen Spiels
195 ** Weitere Frameworks
196 ** GUI
197
198 === Projekttagebuch ===
199
200 Im Projekttagebuch werden kurz und knapp die Ergebnisse der Sprints festgehalten und der Ablauf der Projekte als Ganzes dokumentiert.
201
202 Für jeden Sprint wird hier geschrieben,
203
204 * welche Stories umgesetzt wurden.
205 * wie das Review gelaufen ist.
206 * wie die Retrospektive gelaufen ist und welche Maßnahmen ergriffen worden sind, um Probleme im nächsten Sprint zu reduzieren.
207
208 Außerdem:
209
210 * Wann wurden Meilensteine erreicht
211 * Wann wurden Meilensteine verschoben und (ganz wichtig!) was waren die Gründe dafür
212 * Wann wurden andere wichtige Zwischenziele erreicht
213 * Welche besonderen Dinge hat es gegeben, die wesentlichen Einfluss auf das Projekt oder die Gruppe hatten
214
215 == Anforderungen: Wechselnde Aufgaben innerhalb der Gruppe ==
216
217 Diese Aufgaben wechseln wöchentlich:
218
219 * Sitzungsleitung und Moderation
220 ** Leitung der Gruppensitzung (Wichtig!!), Support durch Scrum-Master
221 ** Tagesordnung definieren (vorher)!!
222 ** 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.Anforderungen Gruppen.WebHome||anchor="HAnforderungen:SpielregelninnerhalbderGruppe"]]) halten, jeder Sprechzeit bekommt und eine Kommunikation möglich ist, d.h. im Zweifelsfall auch Diskussionen zu unterbrechen. 
223 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]]
224 * Protokollführung
225 ** Erstellung eines Protokolls der Gruppensitzung
226 ** Hier reicht i.d.R. ein Ergebnisprotokoll
227 ** Protokolle müssen direkt im Wiki abgelegt sein (nicht als PDF, damit sind die einfacher lesbar)
228 * Zu Beginn jeder Gruppensitzung („Daily Scrum“):
229 ** findet ein kurzes „Briefing“ („Blitzlicht“) statt, in der jede/r berichtet, was sie/er in der letzten Woche für das Projekt getan hat.
230 * Am Ende jeder Sitzung neue Aufgabenverteilung
231 ** Tickets (wer macht was)
232 ** Leitung/Protokoll (Liste!)
233 * 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 …)
234
235
236
237 = Gruppenweites Code Review (Team-Review) =
238
239 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**.
240
241 == Ziel des Gruppenreviews ==
242
243 Das gruppenweite Review soll dabei helfen:
244
245 * die **gesamte Codebasis besser zu verstehen**
246 * **Designentscheidungen nachvollziehen und hinterfragen zu können**
247 * voneinander zu lernen (gute Lösungen, typische Probleme)
248 * Wissen im Team zu verteilen (kein „Ein-Personen-Code“)
249
250 Wichtig: Es geht **nicht darum, jemanden zu bewerten**, sondern gemeinsam besseren Code zu entwickeln.
251
252 == Organisation ==
253
254 * Durchführung: **mindestens einmal im Semester**
255 * Dauer: **30–60 Minuten**
256 * Vorstellung von **1–2 ausgewählten Codeausschnitten**
257
258 == Rollen im Review ==
259
260 === Autor:in ===
261
262 * stellt den Code vor
263 * (((
264 erklärt:
265
266 * Ziel und Kontext
267 * wichtige Designentscheidungen
268 * ggf. offene Fragen oder Unsicherheiten
269 )))
270
271 === Gruppe (Reviewer) ===
272
273 * stellt Verständnisfragen
274 * gibt Feedback
275 * diskutiert Alternativen
276
277 === Moderator:in ===
278
279 * achtet auf Zeit und Struktur
280 * sorgt dafür, dass alle beteiligt werden
281 * verhindert Abschweifen
282
283
284
285 == Ablauf eines Gruppenreviews ==
286
287 === 1. Vorbereitung (Autor:in) ===
288
289 * Wählt einen **überschaubaren Codeausschnitt** (keine sehr großen Änderungen)
290 * (((
291 Fokus z. B. auf:
292
293 * interessante Logik
294 * Architekturentscheidungen
295 * schwierige oder unklare Stellen
296 )))
297 * (((
298 Bereitet **2–3 konkrete Fragen** vor, z. B.:
299
300 * „Ist diese Struktur sinnvoll?“
301 * „Wie würdet ihr das testen?“
302 * „Gibt es eine einfachere Lösung?“
303 )))
304
305 === 2. Vorstellung (ca. 5–10 Minuten) ===
306
307 * (((
308 kurzer Überblick:
309
310 * Was macht der Code?
311 * Wo ist er im System eingeordnet?
312 )))
313 * keine detaillierte Zeilen-für-Zeilen-Erklärung
314
315 === 3. Gemeinsames Review (ca. 20–40 Minuten) ===
316
317 Diskussion des Codes anhand folgender Leitfragen:
318
319 ==== Verständlichkeit ====
320
321 * Ist der Code gut nachvollziehbar?
322 * Welche Stellen sind schwer verständlich?
323
324 ==== Design ====
325
326 * Ist die Struktur sinnvoll gewählt?
327 * Gibt es einfachere oder klarere Alternativen?
328
329 ==== Wartbarkeit ====
330
331 * Ist der Code leicht erweiterbar?
332 * Gibt es unnötige Komplexität?
333
334 ==== Testbarkeit ====
335
336 * Wie könnte man den Code testen?
337 * Sind relevante Tests vorhanden oder ableitbar?
338
339 === 4. Fazit (ca. 5 Minuten) ===
340
341 * Was war gut?
342 * Was kann verbessert werden?
343 * Welche Erkenntnisse nehmen wir als Team mit?
344
345 == Geeignete Inhalte für das Gruppenreview ==
346
347 **Gut geeignet:**
348
349 * neue Features mit Designentscheidungen
350 * komplexe Logik oder Algorithmen
351 * Refactorings
352 * Code, bei dem Unsicherheit besteht
353
354 **Weniger geeignet:**
355
356 * sehr kleine oder triviale Änderungen
357 * reine Formatierungsänderungen
358 * sehr große, unstrukturierte Codebereiche
359
360 == Feedback-Regeln ==
361
362 === Gutes Feedback ist: ===
363
364 * konkret („Die Methode ist schwer lesbar, weil …“)
365 * begründet („… dadurch wird der Ablauf schwer nachvollziehbar“)
366 * konstruktiv („Man könnte hier …“)
367
368 === Vermeidet: ===
369
370 * pauschale Aussagen („Das ist schlecht“)
371 * persönliche Kritik
372 * Diskussionen ohne Bezug zum Code
373
374 == Typische Probleme ==
375
376 * **Zu viel Code:** → stärker eingrenzen
377 * **Alle schweigen:** → gezielte Fragen stellen
378 * **Einzelne dominieren:** → Moderator:in steuert aktiv
379 * **Diskussion driftet ab:** → Fokus wieder auf Code lenken
380
381 == Minimal-Regeln ==
382
383 1. Es wird **nur ein überschaubarer Codeausschnitt** betrachtet
384 1. Eine Person stellt den Code vor
385 1. Die Gruppe diskutiert strukturiert
386 1. Am Ende werden **konkrete Erkenntnisse festgehalten**
387
388 == Hinweis ==
389
390 Das Gruppenreview ist eine **Lerngelegenheit**.
391 Bringt gerne auch Code mit, bei dem ihr unsicher seid – genau dort entsteht oft die beste Diskussion.
392
393 Man kann das auch mehrmals machen. Im SWP wird es aber nur einmal verlangt.
394
395 ----