Gastvortrag vom CSS Software-Team: Software entwickeln im Schnelldurchlauf aus Entwickler*innen-Sicht

24. August 2023
Alumni kehren an die FH zurück, um Informatik-Studierenden Software-Lösungen zu zeigen.
Am 21.06.2023 kehrten gleich drei Absolvent*innen an die FH Technikum Wien zurück, um Studierenden im vierten Semester des Bachelorstudiengangs Informatik im Rahmen der Lehrveranstaltung Innovation Lab 2 Einblicke in das Entwickeln von individuellen Software-Lösungen zu geben. DI(FH) Sven Schweiger, Geschäftsführer des CSS Software-Team, seine Mitarbeiterin Verena Kopf BSc und sein Mitarbeiter Philipp Schwarzkopf MSc präsentierten Softwareentwicklung als Roadmap, die von einem technischen Kick-off über die Definition von User Stories über Demo Meetings bei den Auftraggebern bis hin zum Systembetrieb und -support alle Projektphasen inkludiert.

Zu Beginn des Vortrages wurde hervorgehoben, dass bei komplexen Projekten – egal welcher Art – ein Vorprojekt besonders wichtig ist, um noch vor dem tatsächlichen Projektstart herauszufinden, welche Probleme tatsächlich vorliegen, die es zu lösen gilt.
Wenn auf Kundenseite keine ausreichend detaillierte Spezifikation der gewünschten Softwarelösung vorliegt, sind Workshops ein besonders gutes Mittel, um mit den Kunden gemeinsam eine Softwarelösung unter Berücksichtigung der individuellen Rahmenbedingungen und mit Fokus auf den maximalen Mehrwert für Ihre Anwender*innen zu erarbeiten. Der Kunde ist Experte fürs Problem und der Lieferant ist der Experte für die Lösung. Vor allem ein ERP-System ist das Kernsystem eines Unternehmens. Der Beratungsanteil ist bei solchen Projekten ist daher sehr groß, da die Digitalisierung der Geschäftsprozesse zumeist auch mit Organisationsentwicklungs-Maßnahmen verbunden ist.
In der Vorprojekt-Phase spielen unter anderem Product Owner eine besonders wichtige Rolle. Sie sind diejenigen, die technische Anforderungen und Kundenziele zusammenbringen – eine Rolle, für die man im CSS Software-Team zusätzlich zum Projektmanagement-Können auch Softwareentwicklung beherrschen muss. An der FH Technikum Wien erhalten Studierende eine solide technische Ausbildung. Darüber hinaus wird in den Curricula der Studiengänge größten Wert auf das Zusammenspiel von technischen mit wirtschaftlichen und persönlichkeitsbildenden Inhalten gelegt. Genau dieses Zusammenspiel spiegelt sich nach Studienabschluss z.B. im Product Owner Jobprofil wider. Auf Basis fundierter technischer Kenntnisse gilt es in der Lage zu sein, durch gezielte Fragestellungen und Einfühlungsvermögen herauszufinden, welche verdeckten Wünsche noch hinter einem Vorhaben schlummern können, wer die tatsächlichen Anwender*innen einer Softwarelösung sind und wie deren Erwartungshaltung ist oder wie die Entscheidungskriterien auf Kundenseite aussehen. Mitarbeiter*innen mit solchen Kenntnissen und Fähigkeiten werden für Softwareentwicklungs-Unternehmen immer wichtiger und sind für erfolgreiche Projekte unersetzlich.
Wenn die Projektziele und Anforderungen an die Software definiert sind, kann das sogenannte Product Backlog erstellt werden – in agilen Softwaeentwicklungs-Projekten wird dieses in Form von User Stories und Tasks formuliert. Besonders bewährt hat sich in der Praxis zu jedem Projekt auch eine Art „Wiki“ anzulegen und dieses als lebendes Dokument zu behandeln, das während der Projektumsetzung wächst und laufend am aktuellsten Stand gehalten wird. Es macht Sinn sich vor bzw. bei Projektstart ausreichend Zeit für eine detaillierte Planung und Spezifikation zu nehmen. Einerseits weil dies zur Entwicklung einer passenden System- und Softwarearchitektur erforderlich ist. Und andererseits, weil man damit vermeidet in die falsche Richtung loszulaufen bzw. schlussendlich immens Zeit und Diskussionen mit dem Kunden sparen kann.
Bei Projektstart geht es auch darum als Team zusammen zu finden und eine gemeinsame Herangehensweise an das Projekt zu erarbeiten. Es gilt die Acceptance Criteria, Coding Style und Naming festzulegen, sowie gemeinsam zu planen, wie getestet und die passende Qualität sichergestellt werden soll.

Alle Software-Developer müssen darauf vorbereitet sein im Berufsleben auch mit unerwarteten Schwierigkeiten umgehen zu können und neue Lösungswege zu finden. Hier kann es besonders helfen das Gespräch mit Kolleg*innen zu suchen, die mehr Berufserfahrung haben oder an ganz anderen Projekten arbeiten und so einen neuen Blickwinkel auf ein Problem haben. Fehlersuche und Problemlösung funktionieren am besten als Team.
Weitere wertvolle Tipps aus der Praxis waren, dass zu jeder Änderung auch eine Anforderung auffindbar sein muss, um Nachvollziehbarkeit zu gewährleisten und bei Projekten mit besonders hohen Qualitätsanforderungen sogar immer feststellen zu können, welche Zeile im Source Code zu welcher Zeile in den Requirements gehört. Das Vier-Augen-Prinzip hilft eine hohe Codequalität zu gewährleisten (z.B. mittels Pull Requests, Code Reviews,…). Wenn man ein Feature selbst entwickelt hat, neigt man dazu dieselben Denkfehler immer wieder zu machen. Der neutrale Blick einer anderen Person kann daher sehr hilfreich sein. Testing ist enorm wichtig in der Praxis, hierbei kommen in der modernen Softwareentwicklung integrierte Development Pipelines zur Automatisierung von Tests, Builds bis hin zu Deployments zum Einsatz. Hierdurch sollte auch jedes Teammitglied jeden Release sicher und mit hoher Qualität durchführen können.
In der Praxis hat sich bewährt Auftraggebern so schnell wie möglich etwas Visuelles und Interaktives zu präsentieren. Daher haben Demo Meetings eine besonders hohe Bedeutung, bei der fertiggestellte Features bzw. bereits testbare digitale Geschäftsprozesse mit künftigen Anwender*innen simuliert oder realitätsnahe durchgespielt werden können. Oft stellt sich erst durch die Präsentation einer Demo heraus, wie eine Software in der Praxis durch die Anwender*innen benutzt werden soll. Es ist daher ratsam nicht erst zwei Wochen vor der Projektfertigstellung das erste Demo Meeting zu machen, sondern solche Demo Meetings regelmäßig während der gesamten Projektlaufzeit anzusetzen und quasi wie beim Hausbau jeden größeren Projektfortschritt zu präsentieren und sicherzustellen, dass man am richtigen Weg ist und die Erwartungen der Auftraggeberseite bzw. der Anwender*innen im Detail verstanden hat. So ist es auch einfacher auf veränderte Kundenwünsche während der Projektlaufzeit einzugehen, falsch verstandene Funktionen mit wenig Zusatzaufwand zu korrigieren und das angestrebte Projektabschlussdatum letztendlich trotzdem zu halten.
Am Ende der SW-Development Roadmap stehen Projekt-Retrospektiven. In diesen Meetings wird Vergangenes betrachtet, um etwas für das Handeln in der Zukunft zu lernen. Grundlagen hierfür sind eine gute Feedbackkultur, lösungsorientiertes Teamwork und eine gute Kommunikationsbasis zwischen allen Teilnehmenden. Feedback bezüglich Verbesserungen muss immer Anlass-, Verhaltens und Kontext bezogen sein. Wenn Fehler schnell gefunden werden, hat das einen immensen Mehrwert für alle beteiligten Parteien. Es lohnt sich auch den Kunden in dieses Feedback einzubeziehen, um eine nachhaltige und offene Gesprächsbasis für die Betriebsphase der Software aufzubauen. Schließlich sollen große Softwarelösungen viele Jahre lang funktionieren und müssen in dieser Zeit laufend gewartet und weiterentwickelt werden.
Während des Vortrages wurde immer wieder betont, wie schnelllebig die IT-Branche ist und wie essenziell es daher ist, dass Studierende und Absolvent*innen über ein fundiertes Grundlagenwissen verfügen, aber auch in der Lage sind sich selbst schnell neue Kenntnisse anzueignen.
Das Curriculum des Bachelorstudiengangs Informatik ist so aufgebaut, dass die Studierenden zum einen umfassendes Wissen über Grundlagen aufbauen und zum anderen Kompetenzen entwickeln, um sich selbständig und rasch neues Wissen aneignen zu können.
In den vergangenen Jahren haben immer wieder Studierende aus dem Bachelorstudiengang Informatik ihr Pflichtpraktikum im CSS Software-Team gemacht und manche haben nach erfolgreichem Studienabschluss ihre Karriere in diesem Unternehmen gestartet. Seit 2023 ist CSS auch Ausbildungspartner im Dualen Informatikstudium.