Software Engineering Project

Die Software Technology Group der TU Darmstadt bietet jedes Jahr im Wintersemester das Software Engineering Projekt an. Dabei wird Firmen die Möglichkeit gegeben, Projekte an studentische Gruppen zu vergeben und so potenzielle neue Mitarbeiter kennen zu lernen. Studenten bietet es eine Abwechslung zum theoretischen Studienalltag, indem sie in einer realen Aufgabe praktische Erfahrung sammeln können. cosee nimmt seit einigen Jahren daran Teil. Aus einem der Projekte möchte ich einen Erfahrungsbericht geben.

Die Software Engineering Messe ist der Auftakt der Veranstaltung. Auf der Messe präsentieren Firmen ihre Themenvorschläge für studentische Teams. Die Studenten entscheiden, welche Themen sie interessieren und wählen entsprechende Favoriten. Anhand der Wahlergebnisse werden die Projektteams zusammengestellt. Finden sich nicht genügend Studenten für ein Thema, wird es nicht umgesetzt. Es muss also entsprechend „sexy“ sein. 🙂

Ich entschied mich für das Thema von cosee: Ein bestehender, alter Monolith sollte mit einer modernen Microservice-Architektur neu entwickelt werden. Man hatte völlig freie Wahl der Technologien und Frameworks und konnte das System parallel zum bestehenden System ohne Zeitdruck umsetzen. Einziger Schnittpunkt zum Altsystem war die existierende Datenbank. Außer mir fanden sich fünf weitere Studenten, die Interesse an dem Projekt hatten. Zusammen gründeten wir das Team Rubberduck.

gruppe1_-marked

Bei einem ersten Treffen bei cosee mit leckerem Essen wurde das weitere Vorgehen besprochen. Konstantin bot dem Team eine Scrum-Schulung an, da das Team bisher nicht agil gearbeitet hatte. Außerdem wurde ein Termin vereinbart, an dem Andreas eine Einführung in die containerisierte Welt von Docker gab. Dirk übernahm die Rolle des Product Owners. Bevor das Team allerdings mit den 14-tägigen Sprints startete, wurde der initiale Umfang des Projektes noch in mehreren Scoping Workshops erschlossen. Dies wurde vom Team in User Stories festgehalten und für die TU in Form eines Pflichtenheftes (ähnlich eines „agilen Festpreises“) aufbereitet.

scrum

Nach Recherchen und Gesprächen mit Andreas und Dirk zur Wahl des Technologie-Stacks entschied sich das Team für eine Kombination aus Spring Boot im Backend sowie AngularJS im Frontend. Einzig die bestehende Datenbank war vorgegeben und musste beibehalten werden. Bereits kurz vor den Weihnachtsfeiertagen startete die Implementierungsphase mit dem ersten Sprint. Obwohl die Entscheidung nur auf neue Technologien fiel, mit denen das Team bisher nicht gearbeitet hatte, gelang der Start sehr gut. Außerdem standen Dirk und Andreas immer für Fragen zur Verfügung.

In den kommenden Monaten implementierte das Team nach und nach die festgelegten Anforderungen. Dabei baute es eine Demo-Umgebung auf, die zum Sprint-Review genutzt wurde. Neben dem Product Owner testete auch der Kunde von cosee (für den die Entwicklung stattfand) immer wieder das neu entwickelte System. Durch das direkte Feedback und dank der agilen Entwicklung konnten die User Stories in den folgenden Sprints zur Zufriedenheit des Kunden umgesetzt werden. Die kurzen Feedbackrunden machten das Entwickeln sehr angenehm und die ständigen Reviews steigerten die Qualität des Projektes.

Seitens der Universität wurde das Projekt durch offizielle Dokumente wie das Pflichtenheft begleitet. Auf dem weiteren Pflichtprogramm standen Workshops zu unterschiedlichen Themen wie „Design und Qualitätssicherung“ oder „Projektmanagement“. Nach den Workshops berichteten wir dann in Form von Vorträgen, wie wir diese Aspekte in unserem Projekt umgesetzt hatten.

Nach etwa der Hälfte der Projektlaufzeit waren die Kernfunktionalitäten umgesetzt. cosee (und sein Kunde) entschieden sich, weniger wichtige Features zu verwerfen. Stattdessen sollte sich das Team darum kümmern, ein API Gateway und eine Service Discovery für die entstandenen Microservices umzusetzen. Außerdem wurden wichtige Optimierungen zur Beschleunigung der Microservices realisiert.

Beendet wurde das Projekt seitens der TU Darmstadt durch die Software Engineering Messe ein Jahr später. cosee bedankte sich für die Zusammenarbeit mit einer Bierprobe und Pizza.

Noch während des Projektes begann ich bei cosee als Werkstudent zu arbeiten. Außerdem stieß mit Thomas ein weiterer Teamkollege aus dem Software Engineering Projekt nach Abschluss des Projektes zum cosee Team dazu.