Zum Abschluss des Moduls Softwareengineering im Informatikstudium an der Hochschule Zittau/Görlitz ist ein dreimonatiges Praxisprojekt vorgesehen, in dem Studenten ihre in den vergangenen Lehrveranstaltungen erworbenen Fähigkeiten unter Beweis stellen müssen. Für die Studenten am Hochschulstandort Görlitz ergibt sich der günstige Umstand, dass in der Stadt mehrere kooperationswillige IT-Firmen ansässig sind. So hat sich auch Saxonia Systems (seit 03/2020 ZEISS Digital Innovation) bereiterklärt, eine Gruppe von Studenten bei ihrem Praxisprojekt zu unterstützen.
Mit dem Ziel, den Studenten einen realistischen Einblick in die agile Softwareentwicklung zu gewähren, hat sich Saxonia dazu entschieden, das bewährte Vorgehensmodell Scrum anzuwenden. Dabei werden von einem Entwicklerteam unter Leitung des Scrum-Masters in Iterationen bzw. Sprints Softwareinkremente entwickelt, die dem Kunden von Beginn an einen gewissen Mehrwert bieten. Mit jedem Softwareinkrement werden neue Funktionalitäten entsprechend der Priorisierung des Kunden umgesetzt. Die Aufgaben des IT-Unternehmens bestehen darin, das Thema des Projekts vorzugeben und die Rolle des Product Owners einzunehmen. Somit repräsentiert Saxonia Systems den Kunden, der gegenüber dem Scrum-Team durch den Product Owner in Person von Nico Förster (Softwareentwickler) vertreten wurde. Das Scrum-Team setzte sich hauptsächlich aus den drei Studenten Marco Gotthans (Scrum-Master und Entwickler), Paul Bachmann und Johannes Thies (beide Softwareentwickler) zusammen, welche sich folgender Herausforderung stellten:
Es wird eine Software angefordert, die den Benutzer bei der Auswahl und Bestellung von Pizza unterstützt. Dafür sind die Speisekarten von drei Görlitzer Pizzalieferdiensten im Programm zu hinterlegen und auch Besonderheiten wie Pizzapakete und Rabatte zu berücksichtigen. Der Benutzer hat die Möglichkeit, die Anzahl an Personen und die durchschnittlich verspeiste Pizzamenge anzugeben und erhält anhand dieser Eingaben eine optimale Pizzabestellung (bestes Preis-Leistungsverhältnis) zu jeder der drei Pizzerien ausgegeben. Da diese Bestellung zwar den Pizzabedarf deckt, jedoch unter Umständen wenig abwechslungsreich ist, soll der Benutzer die Möglichkeit haben, das Ergebnis durchzuwürfeln. Dadurch werden zufällig unterschiedliche Pizzen ausgewählt, so dass die Bestellung immer noch den Bedarf deckt, jedoch teurer ausfallen kann. Die Software soll auch einen Maximalbetrag berücksichtigen können, um ein gewisses Budget nicht zu überschreiten. Die letzte Anforderung bestand darin, durchgeführte Bestellungen speichern zu können, um sie später z.B. für Abrechnungszwecke erneut aufrufen zu können. Bei der Auswahl der Technologien wurde den Studenten freie Wahl gelassen, so dass sie sich für eine Spring Applikation mit Webfrontend entschieden. Es wurde folgender Technologiestack verwendet: Java, Spring Boot, Hibernate, H2- und MySQL-Datenbank, Thymeleaf, Lombok, HTML, JavaScript.
Bereits am Ende der ersten Iteration konnte das Team dem Product Owner ein überraschend umfangreiches Softwareprodukt präsentieren. Die Optik des Webfrontends hat direkt überzeugt, da sie sich am Design der Saxonia Webseite orientiert. Nach der Abnahme des Inkrements durch den Product Owner wurden durch selbigen die zu realisierenden Anforderungen für das nächste Softwareinkrement vorgestellt. Aufgetretene Fragen wurden gemeinsam geklärt, Probleme und Vorgehensweisen diskutiert. Bei der im Anschluss stattfindenden Retrospektive erhielt das Scrum-Team wertvolle Unterstützung vom Saxonia Mitarbeiter Michael Klose (Softwareentwickler), welcher durch jahrelange Projekterfahrung und die Vorstellung verschiedener Varianten der Scrum-Retrospektive das Praxisprojekt bereicherte.
Mit jedem Sprint im Zweiwochenrhythmus wuchs der Funktionsumfang der Anwendung zur Zufriedenheit des Product Owners. Bei Test und Probebestellungen wurde deutlich, dass sich der ein oder andere Bug eingeschlichen hatte und das Scrum-Team selbst den Drang nach Refactorings (Verbesserung und Härtung des Programmcodes) verspürte. Fehlende Softwaretest (Unit Tests) erschwerten die Refaktorisierung und hätten bereits präventiv Bugs, vor allem in der Berechnungslogik verhindern können. Michael Klose und ich haben auf Wunsch des Teams auch ein Code-Review durchgeführt, dessen Ergebnisse dankend aufgenommen und entsprechende Verbesserungen vorgenommen wurden.
Das finale Produkt wurde sowohl bei der Abschlusspräsentation in der Hochschule Zittau/Görlitz, als auch im Rahmen eines Meetings am Standort Görlitz der Saxonia Systems vorgestellt. Die Reaktionen waren durchweg positiv und das Team hat zu Recht Lob für die gute Arbeit erhalten. Besonders wichtig ist es, dass den Studenten die Vorteile von bewährten Verfahren der Softwareentwicklung wie Scrum, Test-Driven-Development, Clean Code und Refactorings vermittelt wurden. Die intensive Betreuung durch Saxonia, die deutlich über die Anforderungen der Hochschule an das Unternehmen hinausging, hat sich am Ende bezahlt gemacht. Die Studenten haben wertvolle Praxiserfahrungen sammeln können und Saxonia hat im Gegenzug ein optisch und funktional tolles Produkt erhalten, wie die nachfolgenden Bilder beweisen.
Erfolgreiche Kooperation zwischen Studenten der Hochschule Zittau/Görlitz und Saxonia Systems!!!