Wiki source code of Anforderungen Gruppen
Version 21.1 by mgrawunder on 2025/09/11 14:44
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
18.1 | 1 | [[image:Main.Organisatorisches.WebHome@softwareprojekt_logo_transparent.png||alt="SoftwareprojektLogo.png" data-xwiki-image-style-alignment="end" height="136" width="309"]] |
2 | |||
![]() |
3.1 | 3 | {{toc/}} |
4 | |||
![]() |
12.1 | 5 | = Anforderungen Gruppensitzungen = |
![]() |
3.1 | 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 | |||
![]() |
15.1 | 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. |
![]() |
3.1 | 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 | ||
![]() |
15.1 | 40 | **** Es gibt in jeder Gruppe einen Konfliktbeauftragten (siehe [[Anforderungen Einzelleistungen>>doc:Main.Anforderungen Gruppen.WebHome||anchor="HAnforderungen:EinzelleistungenundEinzelaufgaben"]]) geben |
![]() |
16.1 | 41 | *** Diskriminierung wird in keinster Form geduldet! (siehe [[Spielregeln>>doc:Main.Anforderungen Gruppen.WebHome||anchor="HAnforderungen:SpielregelninnerhalbderGruppe"]]) |
![]() |
3.1 | 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 | |||
![]() |
7.2 | 75 | [[Alarmglocken>>attach:Alarmglocken.pdf]] |
![]() |
4.2 | 76 | |
![]() |
7.2 | 77 | [[Aufgaben Erstberatung>>attach:Aufgaben Erstberatung.pdf]] |
![]() |
3.1 | 78 | |
![]() |
7.2 | 79 | [[Handlungsempfehlungen Bystander>>attach:Handlungsempfehlungen Bystander_14.04.23.pdf]] |
![]() |
3.1 | 80 | |
![]() |
7.2 | 81 | [[Prävention>>attach:Prävention.pdf]] |
![]() |
3.1 | 82 | |
![]() |
8.2 | 83 | [[Sexualisierte Diskriminierung und Gewalt>>attach:Sexualisierte Diskriminierung und Gewalt.pdf]] |
![]() |
7.2 | 84 | |
![]() |
3.1 | 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 | * conTakt: [[https:~~/~~/uol.de/contakt-beratungsstelle>>url:https://uol.de/contakt-beratungsstelle]] | ||
93 | |||
94 | = Anforderungen: Einzelleistungen und Einzelaufgaben = | ||
95 | |||
96 | 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. | ||
97 | |||
98 | 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! | ||
99 | |||
![]() |
20.2 | 100 | Die Einzelaufgaben **außer dem Scrum-Master** sollten **erst beim zweiten Treffen** vergeben werden. Vorher sollte sich jeder darüber informieren, was die Einzelaufgabe beinhaltet. |
![]() |
3.1 | 101 | |
102 | == Einzelaufgaben/Rollen (müssen vergeben sein) == | ||
103 | |||
![]() |
19.1 | 104 | Hinweis: Der Aufwand ist relativ zu sehen, d.h. Scrum-Master ist z.B. aufwändiger als Testbeauftragter |
![]() |
18.2 | 105 | |
![]() |
20.4 | 106 | **Scrum-Master:** |
![]() |
20.1 | 107 | |
![]() |
20.4 | 108 | * Sorgt dafür, dass der Scrum-Prozess am Laufen bleibt |
109 | * 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"]]. | ||
110 | * Es sollte auf jeden Fall einen Stellvertreter geben, der ggf. die Rolle übernehmen kann (z.B. bei Krankheit oder Beendigung des SWPs). | ||
111 | * 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. | ||
112 | * Der Scrum-Master kann zu Beginn des Softwareprojekts an einem Workshop teilnehmen (Einladung erfolgt zu Beginn) - die Teilnahme ist empfohlen. | ||
113 | * 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. | ||
![]() |
21.1 | 114 | * Aufwand: Sehr hoch |
![]() |
20.4 | 115 | |
![]() |
21.1 | 116 | **GitLab, Projektplanung und Productowner:** |
![]() |
3.1 | 117 | |
![]() |
21.1 | 118 | * 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. |
119 | * Projektplan/Meilensteinplan erstellen, aktualisieren und überwachen. Dabei ist es nicht notwendig, sowas wie ein Gant-Chart über das komplette Semester zu erstellen. | ||
120 | * [[Projekttagebuch>>doc:Main.Anforderungen Gruppen.WebHome||anchor="HProjekttagebuch"]] führen | ||
121 | * Stundenzettelpflege überwachen | ||
122 | * 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. | ||
123 | * Product Owner | ||
124 | * 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. | ||
125 | * NEU: Die Rolle sorgt dafür, dass in allen Tickets im Sprint Dod (Definition of Done) definiert sind | ||
126 | * 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. | ||
127 | * Aufwand: Hoch | ||
128 | |||
129 | **OpenAPI, REST und Spring** | ||
130 | |||
131 | * Kennt sich mit den entsprechenden Technologien aus und dient als Ansprechpartner | ||
132 | |||
133 | **~ Git/Gitlab und Reviewbeauftragter:** | ||
134 | |||
135 | * Der Inhaber kennt sich mit Git und Gitlab aus. | ||
136 | * Er kann in nicht Standard-Fällen helfen (z.B. wenn ein Mergen zu Konflikten führt) | ||
137 | * 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. | ||
138 | * Im Laufe der Zeit sollte diese Rolle weniger wichtig werden, da alle den Workflow verinnerlicht haben. | ||
139 | * Die Gruppe muss mindestens ein gruppenweites Code-Review durchführen | ||
140 | * Der Review-Beauftragte ist dafür zuständig, dieses Review anzuleiten und rechtzeitig zu initiieren. | ||
141 | * Zusammen mit dem Codequalitätsbeauftragtem für die sinnvolle Durchführung der Abarbeitung der Merge-Requests zuständig. | ||
142 | * Aufwand: Geringer | ||
143 | * Aufwand: Mittel. | ||
144 | |||
145 | **Codequalitätsbeauftragter und Patternbeauftragter:** | ||
146 | |||
147 | * Überwachung von Codierungsstandards | ||
148 | * Kennt sich mit Refactorings aus | ||
149 | * Kennt sich mit Code-Smells aus, also, was macht guten und was macht schlechten Code aus | ||
150 | * Kennt sich mit Tools wie: FindBugs, Checkstyle und SonarLint/Sonarqube aus. | ||
151 | * Soll sich in die wichtigsten Pattern (wie MVP, Observer, Command-Pattern) einarbeiten | ||
152 | * Die Gruppe bei der Anwendung der Pattern unterstützen | ||
153 | * Den Code darauf hin untersuchen, ob an bestimmten Stellen Pattern besser gewesen wären | ||
154 | * Aufwand: Mittel | ||
155 | |||
156 | **Testbeauftragter:** | ||
157 | |||
158 | * Der Testbeauftragte ist nicht dafür da, Tests zu schreiben! | ||
159 | * Die Person stellt ggf. Mockito und JUnit vor | ||
160 | * Testbautragte hilft dabei, Test zu schreiben, d.h. bietet Unterstützung bei Fragen an | ||
161 | * 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. | ||
162 | * Die Person sorgt dafür, dass Tests, die nicht automatisiert erstellt werden (z.B. Test von Oberflächen) dokumentiert werden. | ||
163 | * Aufwand: Mittel | ||
164 | |||
165 | **Dokumentations- und Backupbeauftragter, Wiki, LaTeX-Beauftragter:** | ||
166 | |||
167 | * Sorgt dafür, dass die passenden Dokumente erstellt, mitgepflegt und gesichert werden (kein Doku Sklave!) | ||
168 | * Erstellung/Anpassung von Vorlagen, Hilfe | ||
169 | * Musterdokumente, Standards, Ablagestrategie, Qualitätssicherung, Bereitstellungsstrategie | ||
170 | * Die Rolle achtet darauf, dass Dinge die fertig sind, auch bereits dann ausreichend dokumentiert werden. | ||
171 | * Aufwand: Mittel | ||
172 | |||
173 | **Konfliktmanagement:** | ||
174 | |||
175 | * Es kommt ab und zu vor, dass im SWP gruppeninterne Konflikte auftreten. | ||
176 | * 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. | ||
177 | * 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. | ||
178 | * Aufwand: Hängt massiv von der Gruppe ab ... Kann sehr wenig, kann aber auch sehr komplex werden. | ||
179 | |||
180 | |||
181 | |||
![]() |
3.1 | 182 | === Projekttagebuch === |
183 | |||
184 | Im Projekttagebuch werden kurz und knapp die Ergebnisse der Sprints festgehalten und der Ablauf der Projekte als Ganzes dokumentiert. | ||
185 | |||
186 | Für jeden Sprint wird hier geschrieben, | ||
187 | |||
188 | * welche Stories umgesetzt wurden. | ||
189 | * wie das Review gelaufen ist. | ||
190 | * wie die Retrospektive gelaufen ist und welche Maßnahmen ergriffen worden sind, um Probleme im nächsten Sprint zu reduzieren. | ||
191 | |||
192 | Außerdem: | ||
193 | |||
194 | * Wann wurden Meilensteine erreicht | ||
195 | * Wann wurden Meilensteine verschoben und (ganz wichtig!) was waren die Gründe dafür | ||
196 | * Wann wurden andere wichtige Zwischenziele erreicht | ||
197 | * Welche besonderen Dinge hat es gegeben, die wesentlichen Einfluss auf das Projekt oder die Gruppe hatten | ||
198 | |||
199 | == Einzelaufgaben/Rollen (je nach Bedarf) == | ||
200 | |||
201 | * Progammierkonzepte | ||
202 | ** z.B. Dependency Injection mit Guice | ||
203 | * DB-Zugriff: | ||
204 | ** Installation/Überwachung der DB | ||
205 | * Spezialisten für verschiedene Teilthemen: | ||
206 | ** Netzwerkkommunikation | ||
207 | ** Regeln des aktuellen Spiels | ||
208 | ** Weitere Frameworks | ||
![]() |
21.1 | 209 | ** GUI |
![]() |
3.1 | 210 | |
211 | = Anforderungen: Wechselnde Aufgaben innerhalb der Gruppe = | ||
212 | |||
213 | Diese Aufgaben wechseln wöchentlich: | ||
214 | |||
215 | * Sitzungsleitung und Moderation | ||
216 | ** Leitung der Gruppensitzung (Wichtig!!), Support durch Scrum-Master | ||
217 | ** Tagesordnung definieren (vorher)!! | ||
![]() |
15.1 | 218 | ** 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. |
![]() |
3.1 | 219 | 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]] |
220 | * Protokollführung | ||
221 | ** Erstellung eines Protokolls der Gruppensitzung | ||
222 | ** Hier reicht i.d.R. ein Ergebnisprotokoll | ||
![]() |
17.1 | 223 | ** Protokolle müssen im Wiki abgelegt sein |
![]() |
3.1 | 224 | * Zu Beginn jeder Gruppensitzung („Daily Scrum“): |
225 | ** findet ein kurzes „Briefing“ („Blitzlicht“) statt, in der jede/r berichtet, was sie/er in der letzten Woche für das Projekt getan hat. | ||
226 | * Am Ende jeder Sitzung neue Aufgabenverteilung | ||
227 | ** Tickets (wer macht was) | ||
228 | ** Leitung/Protokoll (Liste!) | ||
229 | * 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 …) |