Business Analyst mit Qualitätsblick
Die Integration von Qualität in den Softwareentwicklungsprozess sollte von Anfang an Priorität haben. Die Erfahrungen aus dem Testing-Bereich können...
Die Übernahme einer komplexen Software für einen öffentlichen Mobilitätsanbieter stellte das Projektteam vor unerwartete Herausforderungen. Mit einem Ansatz, der statische Analyse, agile Methodik und enge Kundenabstimmung kombinierte, gelang es, das Projekt erfolgreich abzuschließen. Besonders bemerkenswert war die flexible Reaktion auf neue Anforderungen und der Aufbau eines starken Vertrauensverhältnisses zum Kunden. Die dabei gewonnenen Erkenntnisse liefern wertvolle Impulse für ähnliche Vorhaben und bieten praxisnahe Ratschläge für den erfolgreichen Umgang mit komplexen Projekten.
In dieser Episode habe ich Sonja und Helmut zu Gast. Sie sprechen über die Übernahme einer komplexen Software für einen öffentlichen Mobilitätsanbieter, bei der sie auf zahlreiche ungeahnte Probleme stießen. Mit einer Kombination aus statischer Analyse, agiler Methodik und enger Kundenabstimmung konnten sie das Projekt erfolgreich bewältigen. Besonders beeindruckend war ihre Fähigkeit, flexibel auf neue Herausforderungen zu reagieren und das Vertrauen des Kunden zu gewinnen. Ihre wichtigsten Erkenntnisse und Ratschläge bieten wertvolle Einblicke für alle, die sich ähnlichen Projekten stellen.
“Wir haben dann sozusagen im Vorfeld einfach einen Experten und einen Entwickler zur Verfügung gestellt, um mal einen großen groben Blick reinzuwerfen, um einfach mal zu checken, lohnt sich das Ding überhaupt zum Übernehmen oder nicht.” - Helmut Nitsch, Sonja Trimmel
Helmut Nitsch ist seit 2022 Leiter der Abteilung Digital Assurance bei Eviden und verfügt über mehr als 20 Jahre Erfahrung im Bereich Softwaretests. Er begann seine Karriere als Projektmanager und Leiter des Billing-Teams bei UPC Austria, wo er auch mehr als sieben Jahre lang das User Acceptance Test-Team leitete. Er baute auch die Testorganisation beim größten Telekommunikationsanbieter Österreichs (A1) auf und tat dasselbe bei der Österreichischen Post.
Sonja Trimmel ist eine erfahrene Projektmanagerin und Scrum Master mit einer soliden technischen Grundlage in Informatik. In den vergangenen neun Jahren bei Atos/Eviden hat sie zahlreiche Projekte erfolgreich geleitet und dabei ihre Fähigkeit unter Beweis gestellt, komplexe technische Herausforderungen zu meistern und innovative Lösungen zu liefern. Ihr akademischer Hintergrund in Informatik und Data Science hat maßgeblich zu ihrem Erfolg beigetragen.
Ein gelungenes Software-Projekt beginnt mit einer klaren Analyse des Ist-Zustands. In einem Beispielprojekt, das einen Ticketshop für den öffentlichen Nahverkehr umfasste, wurde die Software ohne detaillierte Kenntnis der übernommenen Codebasis eingeführt. Daher war es notwendig, zunächst einen groben Überblick über das System zu gewinnen. Durch die Bereitstellung von Experten zur Analyse der Codebasis konnte festgestellt werden, ob das System überhaupt tragfähig und wartbar war. Dabei traten zahlreiche Überraschungen und Unklarheiten im Code auf, was den Start des Projekts erschwerte.
Automatisierte Werkzeuge wie SonarQube spielten eine zentrale Rolle bei der Analyse der Codequalität. Durch statische Analysen konnten innerhalb kürzester Zeit wertvolle Einblicke in die Wartbarkeit, Robustheit und Sicherheit des Systems gewonnen werden. Diese Tools identifizierten kritische Schwachstellen und lieferten konkrete Verbesserungsvorschläge. So war es möglich, selbst unter hohem Zeitdruck eine fundierte Bewertung des Systems vorzunehmen.
Unzureichende oder nicht vorhandene Dokumentation stellte eine der größten Hürden im Projekt dar. Manche Systemkomponenten wurden erst spät geliefert oder lagen lediglich als Black Boxes vor. Dies erschwerte das Verständnis des gesamten Systems erheblich. Durch enge Zusammenarbeit und klare Kommunikation konnten diese Hürden dennoch gemeistert werden. Die Flexibilität und Anpassungsfähigkeit des Teams erwiesen sich hierbei als entscheidende Faktoren.
Ein agiles Mindset war unerlässlich, um auf unerwartete Herausforderungen schnell reagieren zu können. Flexibilität war sowohl beim Kunden als auch im Team gefordert. Diese Haltung erleichterte es, Lösungen für plötzlich auftretende Probleme zu finden und das Projekt trotz zahlreicher Überraschungen erfolgreich abzuschließen. Auch die Bereitschaft des Kunden, aktiv mitzuwirken und agile Methoden anzuwenden, trug wesentlich zum Erfolg bei.
Ein diversifiziertes Team-Setup ist ein Schlüsselfaktor für erfolgreiche Projekte. Selbst wenn ein Projekt auf den ersten Blick gut planbar erscheint, sollte immer Raum für Anpassungen bleiben. Zudem darf das Testing keinesfalls vernachlässigt werden. Eine umfassende Teststrategie spart langfristig Zeit und Kosten, da sie dazu beiträgt, Schwachstellen frühzeitig zu erkennen und zu beheben. Diese Erkenntnisse sind essenziell für die erfolgreiche Umsetzung zukünftiger Projekte.
Die Softwareanalyse ist ein Prozess in der Softwareentwicklung, bei dem bestehende Systeme untersucht werden, um deren Funktionalität, Struktur und Verhalten zu verstehen. Ziel ist es, Anforderungen zu erheben, Fehler zu identifizieren und Verbesserungsmöglichkeiten aufzudecken.
Zu den gängigen Methoden der Softwareanalyse zählen die statische Analyse, bei der der Quellcode ohne Ausführung untersucht wird, und die dynamische Analyse, bei der das System während der Laufzeit beobachtet wird. Weitere Techniken sind die Anforderungsanalyse, Prozessanalyse und Modellierung.
Die Anforderungsanalyse dient dazu, die Bedürfnisse und Erwartungen der Stakeholder zu identifizieren und zu dokumentieren. Sie bildet die Grundlage für die Entwicklung eines Systems, das den tatsächlichen Anforderungen entspricht und somit die Zufriedenheit der Nutzer sicherstellt.
Die IST-Analyse erfasst den aktuellen Zustand eines Systems oder Prozesses, während die SOLL-Analyse den gewünschten Zielzustand beschreibt. Der Vergleich beider Analysen hilft, Lücken und Optimierungspotenziale zu identifizieren.
Use Cases beschreiben spezifische Anwendungsfälle und Interaktionen zwischen Nutzern und dem System. Sie helfen dabei, funktionale Anforderungen klar zu definieren und dienen als Grundlage für Design und Testen.
Durch Modellierung werden abstrakte Darstellungen eines Systems erstellt, wie z.B. Datenflussdiagramme oder UML-Diagramme. Dies erleichtert das Verständnis komplexer Systeme und unterstützt die Kommunikation zwischen Entwicklern und Stakeholdern.
Zu den Herausforderungen zählen unklare oder sich ändernde Anforderungen, Kommunikationsprobleme zwischen Stakeholdern, begrenzte Ressourcen und die Komplexität moderner Softwaresysteme.
Durch die Identifizierung von Fehlern, Inkonsistenzen und Optimierungspotenzialen in frühen Phasen der Entwicklung hilft die Softwareanalyse, die Qualität des Endprodukts zu verbessern und kostspielige Nacharbeiten zu vermeiden.
Es gibt verschiedene Tools, die je nach Analyseart eingesetzt werden, darunter statische Code-Analyse-Tools, Modellierungswerkzeuge wie UML-Editoren und Anforderungsmanagement-Tools.
Die Softwareanalyse sollte kontinuierlich während des gesamten Entwicklungsprozesses stattfinden, beginnend mit der Anforderungsanalyse über Design und Implementierung bis hin zum Testen und der Wartung, um ein tiefes Verständnis und eine hohe Qualität des Systems sicherzustellen.
Die Integration von Qualität in den Softwareentwicklungsprozess sollte von Anfang an Priorität haben. Die Erfahrungen aus dem Testing-Bereich können...
Formale Methoden sind entscheidend für die Gewährleistung der Softwarekorrektheit. Sie ermöglichen mathematische Beweise für die Fehlerfreiheit in...
Modellbasiertes Testen klingt wie der heilige Gral der Qualitätssicherung: Effizienz, Automatisierung und höchste Präzision. Doch in der Praxis...