64-153 Praktikum Kollaborative Softwareentwicklung
Lehrende:
Dennis Schmitz
Zeit/Ort:
Do 14 - 18, D-118/119
Kommentare/ Inhalte:
Möchtest du lernen wie man in einem größeren Team Software entwickelt?
Interessiert dich, wie große Projekte organisiert werden?
In diesem Praktikum erhältst du die Möglichkeit, den gesamten Softwareentwicklungsstack kennen zu erlernen. Wir analysieren, entwerfen, entwickeln und pflegen eine große Open-Source-Software.
Zu diesem Zweck werden wir die seit 25 Jahren am Fachbereich entwickelte Software Renew und ihre Erweiterungen systematisch behandeln.
Alle Beteiligten werden individuell die eigenen Fähigkeiten, Wissen und Kenntnisse vertiefen.
Dies wird in kooperativer Teamarbeit erfolgen, um das eigenständige Lernen aller Beteiligten optimal zu unterstützen.
Für die Durchführung des Praktikums werden in der Wirtschaft üblicher Weise eingesetzte Werkzeuge benutzt, u.a. Jira, Confluence, Git, Idea, Java, Docker, Kubernetes, Kafka.
Lernziel:
Das primäre Ziel des Praktikums ist, dass alle am Ende des Praktikums ihre eigenen Kenntnisse und Fähigkeiten erweitert und vertieft haben.
Das Ziel wird erreicht durch
a) die Verbesserung der Open-Source-Software Renew und seiner Bestandteile bezüglich der jeweiligen Ziele der Teams und
b) die Verbesserung der Softwareentwicklungsumgebung durch eigene Beiträge.
Konkreter lässt sich dies als Erwerb von Kenntnissen und praktischen Fähigkeiten in der kollaborativen Softwareentwicklung umschreiben, z.B.:
- Verständnis eines kollaborativen Projektteams
- Kollaboration mit rollenbezogenen Aufgaben
- Individueller, eigenständiger Erwerb von Kenntnissen
- Vermittlung von (neu erworbenem) Wissen an das Team
- Vertiefung und Erweiterung der Softwareentwicklung im Kleinen
- Kennenlernen der Softwareentwicklung im Großen
- Entwicklung neuer Bestandteile im Kontext existierender Software
- Behebung und Bereinigung fehlerhafter Software
- Bauen von Software im Rahmen der eigenen individuellen Möglichkeiten
- Erlangen von Einblicken in Softwarequalitätsanforderungen
- Analyse und Reflektion der Softwareentwicklungsprozesse
- Interpretieren der Analyseergebnisse und Belegen von Vermutungen
- Dokumentieren des Vorgehens und der Ergebnisse
- Administration der Rechnerinfrastruktur
- DevOps
Vorgehen:
Das Praktikum erfordert eine Präsenz zur geplanten Zeit des Praktikums.
Weiterhin sind während der Vorlesungszeit oder entsprechend bei Bedarf später in der vorlesungsfreien Zeit gemeinsame Arbeitszeiten in kleineren oder größeren Gruppen sehr hilfreich.
Eingesetzt wird eine komplexe und umfangreiche Softwareentwicklungsumgebung, die einen elaborierten Softwareentwicklungsansatz unmittelbar wie in kommerziellen Umgebungen unterstützt. Dies erfordert einen individuell sehr unterschiedlichen Umfang der Einarbeitung, der zu Beginn des Praktikums je nach bisherigem eigenem Erfahrungsschatz besprochen wird.
Das Praktikum lässt sich grob in die folgenden Phasen aufteilen:
0. Bei Interesse selbständige Einarbeitung in die technische Umgebung VOR Beginn der Vorlesungszeit. (dann bitte bei den Veranstaltern melden).
1. Mit Beginn der Vorlesungszeit: Einarbeitung in die grundlegenden Werkzeuge in kleineren Teams. Dabei gibt es pro agilem Team (4-7 Personen) ein oder mehrere erfahrene Personen, die die Einarbeitung in die Techniken, Methoden und die dafür notwendigen Werkzeuge unterstützen.
Softwareentwicklungsaufgaben umfassen dazu einfache und speziell vorbereitete Anforderungen.
2. Je nach Fortschritt des gesamten Teams werden Methoden, Techniken, Werkzeuge und die Entwicklungsumgebung von den Veranstaltern oder Freiwilligen aus dem Team vorgestellt und sofort praktisch eingesetzt / erprobt.
3. Im Team werden dann spezifische Ziele für das Praktikum festgelegt. Spezielle, im Gesamtteam beschlossene Aufgaben werden dann in agilen Teams bearbeitet.
4. Vorlesungsfreie Zeit: Dort werden abschließende Aufgaben bearbeitet und der Abschlussbericht fertig gestellt.
Ein eigener Rechner für Arbeiten zu Hause ist notwendig, wenn man die Rechner in Stellingen nicht nutzen will.
Dies gilt für die kollaborative Arbeit auch außerhalb der Präsenzzeit. Sind diese Mittel nicht vorhanden, können die Teilnehmenden (so fern möglich) gerne die von der Universität bereitgestellten Computer (PC Räume und Laptops) nutzen. Entsprechende Räume sind für die Präsenzzeiten reserviert. Zudem ist ein Raum am Donnerstag von 12-14h reserviert. Weitere Räume könnten bei Bedarf zur Verfügung gestellt werden.
Sämtliche Bestandteile der genutzen Infrastruktur laufen auf Rechnern des Fachbereichs. Bei Interesse können Aufgaben auch in diesem administrativen / DevOps Bereich übernommen werden.
Für den Ablauf ist es wichtig zu wissen, dass von allen ein kollaboratives, kooperatives, konstruktives Miteinander erwartet wird. Dies zeigt sich insbesondere darin, dass erfahrene Personen anderen helfen (und so die Vermittlung von Wissen im Team erlernen / vertiefen). Hervorzuheben ist, dass auch weitere Personen in das Praktikum eingebunden sind, die schon länger mit der Entwicklungsumgebung arbeiten, so dass mehrere Experten zusätzlich zu den üblichen Teilnehmenden dabei sind.
Literatur:
Literatur kann vorab bei den Veranstaltern erfragt werden und wird zudem in der Veranstaltung bekanntgegeben.
Zusätzliche Hinweise zu Prüfungen:
Das Praktikum eignet sich für alle Bachelorstudiengänge!
Erwartet werden, neben der aktiven Mitarbeit, eine nachhaltige Dokumentation der Arbeitsschritte und Ergebnisse als Bericht sowie die Vorstellung der Ergebnisse/Lösungsansätze.
Diese Veranstaltung ist Bestandteil des semesterübergreifenden Forschungsprojekts "Agentenorientierung" des Labors für agenten- und organisationsorientierte Softwareentwicklung (Laos). Im Rahmen des Forschungsprojektes besteht die Möglichkeit zur Abfassung von Projekt-, Bachelor-, Baccalaureats-, Master- und Diplomarbeiten. Dazu bieten sich u. a. die im Praktikum erstellten Berichte als Grundlage an.
Bei Interesse können die Themen des Praktikums im Rahmen des im WS angebotenen Softwareentwicklungsprojekts oder in individuellen Basecamp-Projekten im freien Wahlbereich weiter vertieft werden.