Ich habe in diesem Projekt an einer SaaS-Lösung für das Quality and Safety Management (QSMS) mitentwickelt und betreut. Diese betreute Software unterstützt Unternehmen – primär aus der Luftfahrt – dabei, gesetzliche Vorgaben, Qualitätskontrollen und Sicherheitsregeln zentral digital zu verwalten.
Für folgende Kernmodule war das System in der internationalen Luftfahrt bekannt:
- Reporting: Mitarbeiter melden Vorfälle oder Gefahren direkt per App. Dies ersetzt papierbasierte Prozesse und erfüllt die strengen, weltweit gesetzlich vorgeschriebenen Meldepflichten der Luftfahrt inklusive des ECCAIRS-Standards.
- Riskmanagement: Gemeldete Probleme werden systematisch erfasst, kategorisiert und nach Risikostufe bewertet. Die Software steuert korrigierende Maßnahmen (CAPA) und überwacht deren Umsetzung, um Unfälle proaktiv zu verhindern.
- Qualitymanagement: Das System strukturiert die Planung sowie Durchführung regelmäßiger Qualitätsprüfungen. Es deckt dabei alle rechtlichen Anforderungen für Audits nach IATA- und EASA-Standards lückenlos ab.
Erhalt und Erweiterung des Altsystems
Ursprünglich war geplant, dass ich direkt an der Neuentwicklung einer modernen Software mitwirke, um das Altsystem abzulösen, den hohen Wartungsaufwand zu senken und die Wettbewerbsfähigkeit langfristig zu sichern. Aufgrund strategischer Priorisierungen verzögerte sich der Projektstart der neuen Software jedoch um zwei Jahre. Diese Zeit nutzte ich, um mich tief in das bestehende Altsystem einzuarbeiten. Ich übernahm dessen kontinuierliche Weiterentwicklung sowie diverse Wartungsaufgaben, die ich über den gesamten Projektverlauf hinweg, auch nach dem Start der Neuentwicklung, fortführte. Zu meinen Kernaktivitäten im Altsystem gehörten dabei:
- Erfolgreiche Migration und Refactoring der Codebasis bei Major-PHP-Versionsupdates (PHP 5 auf 7 und 8) zur Steigerung der Systemperformance und Zukunftssicherheit.
- Federführende Implementierung und technische Kundenbetreuung bei Single Sign-On (SSO) Anbindungen an die Software, sowie der Unterstützung von Kunden bei der Einrichtung von Microsoft Azure Accounts.
- Konfiguration und Verwaltung einer lokale Microsoft Azure Instanz auf Windows Server 2019
- Konzeption und Bereitstellung sicherer API-Endpunkte (RESTful und JSON:API-Endpunkte) zur nahtlosen Datenabfrage und flexiblen Weiterverarbeitung in Kundensystemen.
- Konzeption und Implementierung eines OAuth2-Login-Adapters zur Gewährleistung moderner Authentifizierungsprozesse.
- Integration von ClamAV zur automatisierten Überprüfung von Dateiuploads auf Schadsoftware zur Erhöhung der Plattformsicherheit.
- Wartung und Erweiterung der internen Benutzeroberfläche zur serverweiten Steuerung und Konfiguration von Kundensystemen.
- Behebung von Softwarefehlern (Bugfixing) über alle Systemmodule hinweg sowie kontinuierliche Dokumentation von Funktionen und Features.
- Diverse Neuentwicklungen oder Oberflächenanpassungen im Frontend (Javascript, jQuery, CoffeeScript, HTML, CSS) gleichermaßen wie im Backend (Smarty, PHP, MariaDB, XML)
Der Wendepunkt nach 2 Jahren
Das Altsystem wuchs über viele Jahre hinweg organisch und ohne grundlegende Architekturstrategie, wodurch es zunehmend komplex und wartungsintensiv wurde. Mit der stetig steigenden Nutzerzahl überstieg der laufende Wartungsaufwand schließlich eine kritische Schwelle. Dies gab den offiziellen Startschuss für die Konzeption und Entwicklung des Neusystems.
Anfang & Planung
Um gezielt aus den Fehlern des Altsystems zu lernen, wurde zunächst dessen IST-Zustand präzise ermittelt. Darauf aufbauend wurden umfangreiche User Stories für das Neusystem definiert, die sowohl bestehende Kernfunktionen als auch neue Features abbildeten. Da die neue Software parallel zum Altsystem in den Live-Betrieb gehen sollte, wurden zudem dedizierte Migrationsstrategien für geschäftskritische Legacy-Funktionen ausgearbeitet. Zur Evaluierung der neuen Anforderungen wurden verschiedene moderne Code-Frameworks anhand von Beispielen und Präsentationen analysiert.
In dieser strategischen Anfangsphase war ich maßgeblich in folgenden Bereichen involviert:
- Prototyping & Technologieauswahl: Umsetzung und anschließende Präsentation eines Kleinprojekts zur Evaluierung von Vue.js als zukünftige Frontend-Technologie.
- Datenbank-Modellierung: Erfassung der bestehenden Datenstrukturen spezifischer Altmodule sowie Konzeption der neuen Datenbankarchitektur mittels Entity-Relationship-Diagrammen (ERD).
- Analyse & Anforderungsdefinition: Eigenverantwortliche IST-Aufnahme aller Login-Funktionalitäten inklusive bestehender SSO-Anbindungen sowie Erstellung der User Stories für die vollständige Integration in das Neusystem.
- Architekturplanung: Aktive Mitgestaltung der Code- und Modularchitektur durch den Einsatz von Eventstorming und Domain-Driven Design (DDD).
Umsetzung der neuen Software
Für die technische Umsetzung wurden lokale Docker-Entwicklungsumgebungen eingerichtet und der Quellcode konsequent über Git versioniert. Um die Code-Qualität nachhaltig zu sichern und Fehler frühzeitig zu minimieren, wurden Code-Änderungen ausschließlich über ein Merge-Request-Verfahren freigegeben. Neben der lokalen Entwicklung standen zwei dedizierte Serverumgebungen (Staging/Testing) zur Verfügung, auf denen Neuentwicklungen und Bugfixes umfassend manuell und automatisiert geprüft wurden, bevor das Deployment in die Produktivumgebung erfolgte.
Im Rahmen der Implementierung, bei der im Frontend schließlich Angular und Tailwind zum Einsatz kamen, umfasste mein Aufgabengebiet folgende Schwerpunkte:
- Full-Stack-Entwicklung: Konzeption und Umsetzung neuer Funktionen, Benutzeroberflächen und Module im Frontend (Angular, Tailwind) sowie im Backend (Laravel, MariaDB, SQLite).
- API-Design & Dokumentation: Erstellung und Pflege präziser Schnittstellenbeschreibungen mittels OpenAPI (Swagger) sowie kontinuierliche technische Dokumentation der Systemfunktionen.
- Qualitätssicherung: Entwicklung und Implementierung automatisierter Test-Suiten, einschließlich Unit-, Feature-, Acceptance- und End-to-End-Tests (E2E).
- DevOps & CI/CD: Konzeption und Bereitstellung von Hintergrundprozessen (Workers) sowie Definition von Deployment-Pipelines für den CI/CD-Prozess.
Rückblick & Lessons Learned
Rückblickend betrachtet, war dieses Projekt eine ganz besondere Zeit in meiner beruflichen Laufbahn. Der Einstieg in dieses Projekt bot mir ein fachlich hochspannendes Umfeld, das mir optimalen Raum für meine berufliche Weiterentwicklung gab. Meine wertvollsten Erfahrungen, die ich dabei mitgenommen habe und die sich heute zu großen Teilen auch in meiner Arbeitsweise und Philosophie widerspiegeln:
- Ganzheitliches Software-Lifecycle Verständnis: Durch die fast sechsjährige Begleitung dieses Enterprise-Projekts konnte ich nahezu jede Phase des Software-Lebenszyklus aktiv mitgestalten – von der Full-Stack-Entwicklung über DevOps-Infrastrukturen bis hin zur technischen B2B-Kundenbetreuung.
- Kommunikation als kritischer Erfolgsfaktor: Die wichtigste Erfahrung außerhalb des Codes war die Erkenntnis, dass die interdisziplinäre Kommunikation zwischen Abteilungen das Fundament jedes Projekts bildet. Unabgestimmte Deadlines oder Feature-Verkäufe ohne vorherigen IT-Check führten im Altsystem zu massiven Zeitengpässen und technischer Schuld (Technical Debt).
- Resilienz & Agentur-Qualität: Die tiefen Einblicke in Fehlentscheidungen und organisatorische Engpässe haben mein Risikobewusstsein geschärft. Diese Erfahrungen befähigen mich heute, Software in Agentur-Qualität zu konzipieren und umzusetzen, die sowohl technisch als auch prozessual stabil bleibt.
- Teamgeist in Großprojekten: Ein solches Mammutprojekt steht und fällt mit den Menschen. Die enge, lösungsorientierte Zusammenarbeit mit einem großartigen Team war eine der bereicherndsten Erfahrungen dieser sechs Jahre.