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 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!
Die Einzelaufgaben sollten erst beim zweiten Treffen vergeben werden. Vorher sollte sich jeder darüber informieren, was die Einzelaufgabe beinhaltet.
Einzelaufgaben/Rollen (müssen vergeben sein)
- Scrum-Master:
- Sorgt dafür, dass der Scrum-Prozess am Laufen bleibt
- Product Owner (etwas anders als in Scrum: Das Team zusammen mit den Tutor). Wenn gewünscht, kann auch ein Mitglied der Gruppe die Rolle des Produkt Owners (zusammen mit dem Tutor) übernehmen.
- Kurze Zusammenfassung zu Scrum, ausführlicher in den Folien der VL.
- Es sollte auf jeden Fall einen Stellvertreter geben, der ggf. die Rolle übernehmen kann (z.B. bei Krankheit oder Beendigung des SWPs).
- 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.
- Aufwand: Sehr hoch
- Jira und Projektplanung:
- 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.
- Projektplan erstellen, aktualisieren
- Meilensteine überwachen
- Projekttagebuch führen
- Stundenzettelpflege überwachen
- Ggf. kann das Jira-Plugin: Portfolie verwendet werden.
- Weiterhin soll diese Person als Ansprechpartner für Jira dienen, d.h. sie sollte sich besondere informieren und ggf. bei Fragen und Problemen beratend zur Seite stehen.
- Aufwand: Mittel
- Konfliktmanagement
- Es kommt häufig vor, dass im SWP gruppeninterne Konflikte auftreten
- 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.
- Es macht Sinn, dass es jemanden zweiten gibt, der sich als Stellvertreter ebenfalls mit diese Aufgabe befasst, falls die Person, die diese Rolle eigentlich inne hat, selber der Auslöser eines Konfliktes ist.
- Aufwand: Hängt massiv von der Gruppe ab ... Kann sehr wenig, kann aber auch sehr komplex werden.
- Git/Bitbucket
- Der Inhaber kennt sich mit git und Bitbucket aus.
- Er kann in nicht Standard-Fällen helfen (z.B. wenn ein Mergen zu Konflikten führt)
- Der Inhaber dieser Rolle sollte sich auch darum kümmern, dass der Git-Workflow (Ticket → Branch → PR → Mergen) eingehalten wird und dass Pull-Requests sinnvoll abgearbeitet werden.
- Im Laufe der Zeit sollte diese Rolle weniger wichtig werden, da alle den Workflow verinnerlicht haben.
- Aufwand: Initial höher, zum Ende hin weniger.
Codequalitätsbeauftragter
Überwachung von Codierungsstandards
Kennt sich mit Refactorings aus
- Kennt sich mit Code-Smells aus, also, was macht guten und was macht schlechten Code aus
- Kennt sich mit Tools wie: FindBugs, Checkstyle und SonarLint/Sonarqube aus.
- Aufwand: Mittel
Reviewbeauftragter
- Die Gruppe muss mindestens ein gruppenweites Code-Review durchführen
- Der Review-Beauftragte ist dafür zuständig, diesese Review anzuleiten und rechtzeitig zu initiieren.
- Zusammen mit dem Git und dem Codequalitätsbeauftragtem für die sinnvolle Durchführung der Abarbeitung der Pull-Requests zuständig.
- Aufwand: Geringer
- Testbeauftragter:
- Erstellung Testplanung, Musterdokumente, Vorlagen, Kontrolle der Tests, JUnit, Mockito
- Nicht dafür da, die Tests zu schreiben!
- Aufwand: Mittel
- Dokumentations- und Backupbeauftragter, Confluence, LaTeX-Beauftragter
- Sorgt dafür, dass die passenden Dokument erstellt, mitgepflegt und gesichert werden (kein Doku Sklave!)
- Erstellung/Anpassung von Vorlagen, Hilfe
- Musterdokumente, Standards, Ablagestrategie, Qualitätssicherung, Bereitstellungsstrategie Die Rolle achtet darauf, dass Dinge die fertig sind, auch bereits dann ausreichend dokumentiert werden.
- Aufwand: Mittel
Patternbeauftragter (ggf. auch zwei)
Diese Rolle soll sich in die wichtigsten Pattern (wie MVP, Observer, Command-Pattern) einarbeiten
und die Gruppe bei der Anwendung der Pattern unterstützen
- Aufwand: Geringer
- Entwicklungsumgebung, Maven, Bamboo und Infrastruktur
- Kümmert sich um die Erweiterung der vorgegeben maven Infrastruktur
- Hilft und Unterstützt bei der Auswahl und Einrichtung der Entwicklungsumgebung
- Kümmert sich um die Builds in Bamboo (Anpassen von Plänen)
- Kümmert sich um die Bereitstellung des Servers in der Arbi
- Aufwand: Mittel
Einzelaufgaben/Rollen (je nach Bedarf)
- Programmierparadigmen
- z.B. Dependency Injection mit Guice
- JavaFX und ControlsFX
- Google Guava
- DB-Zugriff:
- Installation/Überwachung der DB
- JDBC/Hibernate?
- Spezialisten für verschiedene Teilthemen:
- Netzwerkkommunikation
- Regeln
- Weitere Frameworks