Software-Qualität ganzheitlich steigern: Stakeholder und Verantwortlichkeiten
Stellen Sie sich vor, Sie haben das beste Testteam der Welt, und dennoch kommt es immer noch zu Fehlern in der Software. Warum? Weil Qualität nicht nur eine Frage des Testens ist. Und weil Qualität nur entsteht, wenn alle Beteiligten – von den Entwickler:innen bis zum Management – an einem Strang ziehen. Denn Qualität ist das Ergebnis klarer Rollen und Prozesse sowie einer effektiven Zusammenarbeit. Entscheidende Rollen spielen dabei verschiedene Stakeholder und Verantwortliche. In diesem Beitrag beleuchten wir die wichtigsten davon – und zeigen, wie sie zur Steigerung der gesamten Software-Qualität beitragen.
Verantwortlichkeiten zur Sicherung der Software-Qualität
Testmanagement und Testing-Team
Zentrale Rollen in der Software-Qualitätssicherung spielen das Testmanagement und das Testing-Team. Gemeinsam sind sie dafür verantwortlich, Fehler so frühzeitig wie möglich zu entdecken. Eine frühzeitige Fehleridentifikation reduziert einerseits die Wahrscheinlichkeit, eine neue Software-Version mit Fehlern zu veröffentlichen (was die Unzufriedenheit oder gar den Verlust von Kunden nach sich ziehen kann). Anderseits erspart es dem Unternehmen weitere Fehlerbehebungs- bzw. Testing-Kosten und stellt sicher, dass es zu keinen schwerwiegenden Folgen wie rechtlichen Problemen oder Image-Schäden kommt.
Basierend auf den Projektrahmenbedingungen und dem Entwicklungsprozess entwickelt das Testmanagement dafür eine Test- und Automatisierungs-Strategie, stimmt diese mit den Projekt-Stakeholdern ab, führt sie in das Projekt ein und stellt sicher, dass die Prozesse diesen Strategien entsprechend eingehalten und gelebt werden.
Projektmanagement
Das Projektmanagement trägt die übergeordnete Verantwortung für das Erreichen der Projektziele unter Berücksichtigung von Zeit, Kosten und Qualität. Es definiert Qualitätsstandards und stellt sicher, dass diese überwacht und eingehalten werden. Dabei trägt es dazu bei, dass das Thema Qualität nicht erst nachträglich auf der Agenda erscheint. Stattdessen fördert es das hohe Qualitätsbewusstsein des Teams von der Anforderungsanalyse bis zur Implementierung.
Das Projektmanagement sorgt also dafür, dass alle Projektressourcen effektiv genutzt werden, und dass die Kommunikation und die Zusammenarbeit zwischen allen Projektbeteiligten reibungslos funktioniert. Dies verhindert Engpässe, Überlastungen und inneffiziente Arbeitsweisen, die sich negativ auf die Gesamtqualität auswirken können. Zudem stellt es sicher, dass die Zeitpläne eingehalten werden. Denn Verzögerungen können zu überstürzten Arbeitsschritten führen, was sich wiederum negativ auf die Softwarequalität auswirken kann.
Ein gutes Projektmanagement kümmert sich zudem darum, dass alle Phasen des Projekts termingerecht abgeschlossen werden, ohne die Qualität zu beeinträchtigen. Durch proaktives Risikomanagement gewährleistet das es auch, dass potenzielle Probleme frühzeitig erkannt und adressiert werden, bevor sie sich negativ auf die Qualität des Endprodukts auswirken.
Anforderungsmanagement
Das Anforderungsmanagement stellt sicher, dass sämtliche Anforderungen an ein Software-Entwicklungsprojekt klar, vollständig, und eindeutig definiert sind. Dabei sorgt es dafür, dass die Erwartungen der Stakeholder verstanden, dokumentiert und während des gesamten Projektverlaufs korrekt umgesetzt werden. Durch die präzise Definition der Anforderungen können potenzielle Probleme bereits frühzeitig erkannt und behoben werden – also bevor sie sich auf die Entwicklung, die Testphasen und somit auf die Gesamtqualität auswirken. Außerdem verhindern gut definierte Anforderungen unkontrollierte Änderungen, die den Projektumfang sprengen und auf diese Weise Qualitätseinbußen verursachen.
IT-Architekt:innen
Die IT-Architekt:innen verantworten das Design und die Planung von IT-Systemen bzw. IT-Infrastrukturen, welche die technischen Anforderungen eines Projekts erfüllen. Eine gut durchdachte Architektur stellt dabei sicher, dass eine Lösung effizient und flexibel genug ist, um auch künftige Anforderungen zu bewältigen. Zudem integrieren IT-Architekt:innen Sicherheitsstandards direkt in das Design. Dies trägt dazu bei, Sicherheitslücken und mögliche Risiken frühzeitig zu minimieren. Darüber hinaus sorgen sie dafür, dass die gewählten Technologien miteinander kompatibel sind und langfristig tragfähig bleiben, um so die Wartbarkeit und Weiterentwicklung der Software zu erleichtern. Die Anwendung von Standards und Best Practices verhindert dabei spätere Probleme in der Entwicklung oder im Betrieb.
Software-Entwicklung
In der Verantwortung der Software-Entwicklung liegt es, die definierten Anforderungen in eine funktionierende Software umzusetzen. In diesem Rahmen stellt sie sicher, dass der Code gut strukturiert und dokumentiert ist. So lässt sich die Anzahl potenzieller Fehler reduzieren und die Weiterentwicklung sowie die Wartung der Software erleichtern. Um Fehler frühzeitig zu entdecken, nutzt die Software-Entwicklung Best Practices wie Pair Programming, Code Reviews, das Schreiben von automatisierten Testfällen (Unit und Integrationstests) und die Integration der Testfälle in CI/CD–Pipelines (siehe dazu auch weiter unten).
IT-Strategieberatung
Die IT-Strategieberatung kümmert sich darum, dass das Projekt mit der langfristigen IT-Strategie des Unternehmens übereinstimmt. Auch dies wirkt sich auf die Nachhaltigkeit und die Qualität einer Lösung aus. So lässt sich etwa vermeiden, dass ein Projekt von den Geschäftsanforderungen abweicht oder unpassende Technologien eingesetzt werden. Die IT-Strategieberatung trägt auch dazu bei, Risiken im Entwicklungsprozess frühzeitig zu erkennen und zu reduzieren – etwa durch die Einführung von Sicherheits- oder Compliance-Maßnahmen. Nicht zuletzt stellt die strategische Planung auch die Weichen für die langfristige Wartbarkeit und die Erweiterbarkeit einer Software.
IT-Sicherheit
Die Aufgabe der IT-Sicherheit ist es, dass eine Software sicher entwickelt und betrieben wird. Damit liefert sie einen wesentlichen Bestandteil der Systemqualität. So sorgt sie etwa dafür, dass Sicherheitspakete frühzeitig in den Entwicklungsprozess integriert werden. Dies reduziert das Risiko, dass Sicherheitslücken erst nach der Fertigstellung entdeckt werden. Außerdem kümmert sie sich darum, dass ein Projekt alle relevanten regulatorischen Anforderungen erfüllt. Entscheidend ist das insbesondere bei der Verarbeitung personenbezogener Daten. Zum Verantwortungsbereich der IT-Sicherheit gehört es zudem, Sicherheitsüberprüfungen durchzuführen (z.B. Penetration-Tests), um potenzielle Schwachstellen rechtzeitig zu identifizieren.
Datenschutzberatung
Die Datenschutzberatung trägt dazu bei, dass eine Software alle gesetzlichen Datenschutzanforderungen (z.B. DSGVO) erfüllt. So werden mögliche rechtliche Konsequenzen vermieden, die ein Unternehmen schwerwiegend belasten könnten. Außerdem können Datenschutzverletzungen das Vertrauen der Kund:innen massiv erschüttern. Die frühzeitige Implementierung von Datenschutzmaßnahmen verhindert dabei, dass teure und zeitaufwendige Nachbesserungen nötig werden.
Operations-Team (DevOps)
Das Operations-Team (DevOps) stellt sicher, dass eine Software effizient und stabil betrieben wird. Maßnahmen wie Monitoring, Logging und automatische Skalierung tragen hier dazu bei, eine durchgängig hohe Performance im Live-Betrieb zu gewährleisten.
User und Kund:innen
Auch die künftigen User und Kund:innen sollten frühzeitig in den Entwicklungsprozess eingebunden werden. Mit Hilfe ihres Feedbacks lässt sich sicherstellen, dass eine Software den tatsächlichen Bedürfnissen entspricht.
Weitere Rollen in agilen Projekten
In Projekten die mit agilen Frameworks wie SAFe (Scaled Agile Framework) oder Scrum arbeiten, kommen noch weitere Rollen hinzu. Dazu gehören z. B. das Program Management, der Product Owner und der Scrum Master.
Das Program Management verantwortet die übergeordnete Steuerung mehrerer Projekte innerhalb eines Programms, koordiniert Abhängigkeiten, Ressourcen und strategische Ziele. Es trägt zur Qualität bei, indem es sicherstellt, dass alle Projekte auf die Unternehmensziele ausgerichtet sind und Synergien effizient genutzt werden.
Der Product Owner kümmert sich um die Priorisierung des Product Backlogs, die Definition der Anforderungen und das Sammeln von Feedback. Sein Beitrag zur Software-Qualität besteht darin, sicherzustellen, dass das Team an den wertvollsten und wichtigsten Features arbeitet, die den Bedürfnissen der User entsprechen.
Der Scrum Master sorgt für die Einhaltung der Scrum-Prinzipien, beseitigt Hindernisse und fördert einen effizienten Arbeitsprozess. Indem er das Team unterstützt, sich auf kontinuierliche Verbesserung und effektive Zusammenarbeit zu konzentrieren, leistet auch er einen Beitrag zur Gesamtqualität im Projekt.
Agile Methoden und Best Practises
Um die Qualität im Projekt zu fördern, reicht die klare Definition der Rollen und Verantwortlichkeiten nicht aus. Zur Gewährleistung einer übergreifenden Qualität müssen auch bestimmte Methoden und Prozesse eingeführt werden. Dafür werden verschiedene Best Practices bewertet und den Projektanforderungen entsprechend eingesetzt. Aus unserer Sicht sind folgende Vorgehensweisen in jedem Fall erforderlich:
Agile Methoden und iterative Prozesse
Agile Frameworks wie Scrum ermöglichen es Teams, in kurzen Sprints (z. B. in zweiwöchigen Iterationen) zu arbeiten. So lässt sich eine hohe Flexibilität und schnelles Feedback sicherstellen. Kanban bietet hier eine kontinuierliche Sicht auf den Arbeitsfluss und hilft dabei, Engpässe sichtbar zu machen. Retrospektiven nach jedem Sprint oder jedem Release ermöglichen es, den Prozess zu reflektieren und kontinuierlich zu verbessern.
Cross-funktionale Zusammenarbeit
Teams sollten so zusammengesetzt sein, dass alle erforderlichen Fachkenntnisse in einem Team vorhanden sind. Dies fördert einen schnellen Wissensaustausch und ermöglicht es dem Team, eigenständig Entscheidungen zu treffen. Alle Beteiligten teilen die Verantwortung für das Endergebnis. Dies stärkt das Teamgefühl und fördert die Qualität des Endprodukts.
Transparente und regelmäßige Kommunikation
Tägliche Stand-ups stellen sicher, dass alle Beteiligten auf dem gleichen Stand sind, Fortschritte kommuniziert werden und sich Blockaden frühzeitig identifizieren und lösen lassen.
Kommunikations- und Kollaborations-Tools
Der Einsatz von Tools wie Jira und Confluence (zur Aufgabenverwaltung) sowie von Slack oder Microsoft Teams (für die Kommunikation) fördert den regelmäßigen Austausch und die Übersicht über den Fortschritt des Projekts. In Jira können zudem Workflows eingebunden werden. Dies sorgt für Struktur, Transparenz und Automatisierung. So lassen sich Fehler minimieren, Prozesse standardisieren und die Zusammenarbeit verbessern. Teams können sich auf diese Weise besser organisieren, Verantwortlichkeiten lassen sich klären und es wird sichergestellt, dass alle Aufgaben pünktlich und in der erwarteten Qualität erledigt werden.
Quality Gates
Quality Gates sind Kontrollpunkte im Entwicklungsprozess, an denen überprüft wird, ob bestimmte Qualitätskriterien erfüllt sind, bevor der nächste Schritt eingeleitet werden kann. Dies stellt sicher, dass Fehler frühzeitig entdeckt und behoben werden (statt sie in einem späteren Stadium zu deutlich höheren Kosten und mit mehr Aufwand beseitigen zu müssen). Ein Beispiel für ein effektives Quality Gate ist die Integration der „Definition of Ready“ und der „Definition of Done“ in den Entwicklungsprozess. So wird dafür gesorgt, dass Anforderungen und Aufgaben klar definiert, gut vorbereitet und vollständig abgeschlossen werden.
KPIs, Reports und Dashboards
KPIs helfen dabei, die Qualität eines Projektes messbar zu machen. Dashboards bieten zudem Echtzeit-Einblicke in die aktuelle Projektleistung und die Projektqualität. Sie visualisieren KPIs und ermöglichen es dem Team, potenzielle Probleme sofort zu erkennen. Regelmäßige Reports über den Qualitätsstatus des Projekts – einschließlich der erreichten Fortschritte und der identifizierten Probleme – sollten an alle relevanten Stakeholder erfolgen. Dies sorgt für Transparenz und hilft bei der Entscheidungsfindung.
Automatisierte Tests und CI/CD
Eine Continuous-Integration- und Continuous-Deployment-Pipeline (CI/CD) hilft dabei, Änderungen kontinuierlich zu integrieren und zu testen. So lassen sich frühzeitiges Feedback und eine hohe Codequalität sicherstellen.
Darüber hinaus existieren noch viele weitere Methoden und Best Practices. Diese müssen je nach Rahmenbedingungen und Projekt bewertet werden. Alle Best Practices, Rollen und Verantwortlichkeiten sowie weitere Beiträge zur Qualitätssicherung sollten in einem Testkonzept in verschiedenen Abschnitten berücksichtigt werden. Wie eine Gliederung für ein Testkonzept aussehen könnte, zeigt beispielsweise der internationale Standard IEEE-829 für die Software-Testdokumentation.
Fazit
Software-Qualität ist weit mehr als eine Frage des Testens: Sie ist das Ergebnis der Zusammenarbeit verschiedenster Stakeholder, die klare Rollen und Verantwortlichkeiten übernehmen. Auch die Implementierung agiler Methoden, kontinuierliches Feedback und die Anwendung von Best Practices leisten einen maßgeblichen Beitrag zur Gesamtqualität eines Software-Projekts. Ein umfassendes Verständnis für die Verantwortlichkeiten und die klare Definition von Prozessen sind der Schlüssel, um sicherzustellen, dass eine Software am Ende tatsächlich den hohen Erwartungen von Kund:innen und Usern entspricht.
Nedim Dizdarevic
M +49 1511 0819021
Weitere Posts
Software-Qualität entsteht nicht allein durch Tests, sondern durch klare Verantwortlichkeiten und Zusammenarbeit aller Stakeholder. Erfahrt, wie Rollen wie Testmanagement, Projektmanagement und IT-Architektur sowie agile Methoden und Best Practices die Qualität nachhaltig steigern können.