| Agiles Qualitätsmanagement: Ewige Veränderung | | Drucken | |
| 13. Oktober 2008 | |
|
Gegenstand des Artikels ist eine Verbindung des Besten aus zwei Welten: den Vorzügen eines ganzheitlichen, normierten Qualitätsmanagements mit den Vorteilen agiler Verfahren zur Softwareentwicklung. Agile Verfahren sind noch relativ jung. Sie beruhen auf einfachen, leichtgewichtigen Methoden, die im Gegensatz zu schwergewichtigen Prozessen wie dem Rational Unified Process (RUP) oder dem V-Modell die Dynamik in Softwareentwicklungsprojekten sowie die Anpassung an sich ständig ändernde Rahmenbedingungen und Anforderungen adressieren. Der Change Request wird nicht als Ausnahmesituation behandelt, die das Projekt immer wieder vor große Herausforderungen stellt, sondern als Standardsituation akzeptiert und als solche methodisch integriert. Die Problematik zu schwergewichtiger und damit letztlich ungeeigneter Entwicklungsprozesse gilt auch für Qualitätsmanagementsysteme in der IT: die Dynamik des Software Engineerings, neue Sprachen, neue Arbeitsmethoden, neue Konzepte, kurzum: die Schnelligkeit der Innovationszyklen erfordert leichtgewichtige, adaptive Verfahren in dieser jungen Ingenieursdisziplin. Gegenwärtig rückt die agile Vorgehensweise mehr und mehr in den Blickpunkt. Nicht nur kleine Unternehmen sondern auch die Großen der Branche wie SAP und Microsoft setzen zunehmend auf agile Verfahren. Total Quality Management
Total Quality Management (TQM) ist ein grundlegender Ansatz zur Qualitätssicherung. Er bezeichnet die durchgängige, fortwährende und alle Bereiche eines Unternehmens erfassende Tätigkeit, die dazu dient, Qualität als Systemziel einzuführen und dauerhaft zu garantieren. TQM wurde in der japanischen Autoindustrie eingesetzt und schließlich zum Erfolgsmodell gemacht. Zu den wesentlichen Prinzipien der TQM-Philosophie zählen die Folgenden:
Aspekte der Qualität Je nach Sicht und Rolle des Beteiligten können im Software Engineering verschiedene Aspekte von Qualität unterschieden werden. Aus Sicht des Kunden sind Einhaltung des Budgets, termingerechte Fertigstellung, Nachhaltigkeit und Sicherung des ROI zu nennen, aus Sicht des Anwenders Fehlerfreiheit, Performance und Bedienerfreundlichkeit (äußere Qualität). Im Lebenszyklus von Software fallen etwa 80 Prozent der Kosten für Änderungen und Erweiterungen im Anschluss an die Primärentwicklung an. Software lebt also, wird immer wieder an neue Erfordernisse angepasst. Wie gut dies gelingt, hängt also maßgeblich von der inneren Struktur beziehungsweise inneren Qualität ab, der Verständlichkeit, Wartungs-, Erweiterungs und Änderungsfreundlichkeit. Die Nachhaltigkeit und die Sicherung des ROI sind stark mit diesen Aspekten verknüpft. Genau das ist häufig das zentrale Problem: der Kunde sieht die innere Qualität nicht. Die aus mangelnder innerer Qualität resultierenden Probleme werden erst nach geraumer Zeit spürbar, falls sich zum Beispiel die Kosten für einfache Änderungen stark erhöhen oder Anpassungen gar nicht mehr möglich sind. Qualitätsmanagementsysteme für die Softwareentwicklung Für die Softwareentwicklung gibt es spezialisierte Systeme zum Qualitätsmanagement (CMMI-Dev, SPICE), die im Wesentlichen den Reifegrad einer Organisation oder einzelner Prozesse adressieren. Der Grundgedanke hierbei ist, dass Verbesserungen nur schrittweise eingeführt werden sollten. Diese Verfahren bieten folgende Vorteile:
Demgegenüber sind folgende Nachteile festzuhalten:
Agile Methodik Die agile Softwareentwicklung stellt den Kunden und diejenigen Menschen in den Vordergrund, die an der Erstellung des Softwareprodukts beteiligt sind. Sie realisiert damit die Prinzipien des TQM bezüglich Kundenorientierung und Einbeziehung aller Mitarbeiter. Insbesondere steht das Entwicklungsteamim Fokus, hier wird der Hebel zur Sicherung der Produktqualität angesetzt. Eine weitere Grundlage der agilen Philosophie ist schlanke Produktion, insbesondere wurden Aspekte des von Toyota entwickelten Toyota Way beziehungsweise des Toyota Production System für das Software Engineering adaptiert. Das den Toyota Way prägende Grundprinzip ist Kaizen. Kaizen heißt im wörtlichen Sinn „Veränderung zum Besseren“, bedeutet aber in der japanischen Praxis vor allem die Philosophie der ewigen (sichtbaren) Veränderung und bezieht alles am Produktionsprozess beteiligte mit ein: Mensch, Maschine, Umwelt, Methode, Material, Management. Kaizen erfordert Mitarbeiter, welche über die Qualifikation und die Motivation verfügen, den Prozess zu verbessern. Auftretende Probleme müssen sofort gelöst werden, Verbesserungsmaßnahmen müssen direkt von den Mitarbeitern umgesetzt werden können, was nur mit Hilfe von flachen Hierarchien gelingt. Langjährige Erfahrung hat gelehrt, dass Softwareentwicklungsprojekte einer immensen Dynamik unterliegen. Es gibt häufig neue Bestimmungen, Change Requests oder einfach nur Änderungen der Prioritäten. Deshalbmuss die Softwareentwicklung schnell auf Änderungen reagieren können. Des Weiteren ist die Qualität der Software sehr stark vom Know How, von der Motivation und Kreativität der Entwicklungsteams abhängig. Um beides – Flexibilität und optimale Teamleistung – zu gewährleisten und das Prinzip Kaizen zu integrieren, wurden fünf Werte und 14 Prinzipien der agilen Softwareentwicklung aufgestellt, die sozusagen die Axiome darstellen, auf denen alle Methoden basieren. Die fünf Werte sind: Kommunikation, Einfachheit, Feedback, Mut und Respekt. Um der Einfachheit und dem Mut Genüge zu tun, wird hier auf die Auflistung der Prinzipien verzichtet. Zu den wichtigsten agilen Methoden gehören Extreme Programming (XP) als Kerntechnik des Programmierens und Scrum für Steuerung, Planung, Fortschrittskontrolle und Prozessoptimierung. Aufgrund der mehr jährigen positiven Erfahrungen sind beide dem Stand der Technik im Software Engineering zuzuordnen. Extreme Programming Der Name ist bewusst provokativ gewählt. Im Gegensatz zu RUP oder V-Modell wird im Sinne schlanker Produktion der Schritt im Gesamtprozess, in dem die Software programmiert wird, fokussiert und aufgewertet: Hier entscheiden sich Qualität und Effizienz im Software Engineering. Der wesentliche Kerngedanke von XP ist die Sicherstellung der inneren und äußeren Produktqualität. Die wichtigsten Techniken sind im Kasten oben aufgeführt. Scrum Ziel ist die ständige Verbesserung des Softwareentwicklungsprozesses, um höchste Qualität bei niedrigstem Aufwand zu erreichen. Der Weg ist die Weiterentwicklung aller an dem Prozess Beteiligten, der Entwicklungsprozesse, der Arbeitsmittel und Methoden unter Beibehaltung der Grundannahmen (analog zum Toyota Production System). Um den vielfältigen Spezifika und der Dynamik im Software Engineering Rechnung zu tragen, ist Scrum daher kein vollständiges System von Regeln und Anweisungen, sondern ein bewusst einfach gehaltener Rahmen, der an konkrete Bedingungen anzupassen oder zu ergänzen ist. Es gibt die folgenden drei Rollen:
Der Entwicklungsprozess wird in kleine, geschützte Iterationen zerlegt, Sprints genannt. Geschützt meint hier, dass in diesem Zeitraum keine Änderungen von Aufgaben und Vorgehensweisen vorgenommen werden dürfen. Diese Sprints sollen, je nach Möglichkeit, zwischen zwei und vier Wochen lang sein. Diese kurzen Iterationen ermöglichen die schnelle Anpassung an neue Anforderungen. Gleichzeitig steht nach jeder Iteration eine lauffähige Software zur Verfügung, die getestet werden kann. Ein Sprint läuft wie folgt ab:
Der Produktionsfortschritt wird im Burndown Chart ersichtlich. Täglich wird zu Arbeitsende der Restaufwand für Anforderungen geschätzt. Am Ende des Sprints gibt es einen Review, bei dem der Kunde überprüfen kann, ob die Anforderungen richtig umgesetzt wurden. Zuletzt gibt es noch eine Retrospektive, in welcher der Prozess an sich untersucht wird. Die Fragen „Was war gut“ und „Was kann noch verbessert werden“ sind hierbei zentral. Dies ist der entscheidende Punkt zur Prozessoptimierung. Verbesserungsmöglichkeiten werden im darauffolgenden Sprint umgesetzt. Agiles Qualitätsmanagement Da Extreme Programming nur die Kernmethodik der Programmierung adressiert und Scrum eine bewusst einfache Planungs- und Steuerungsmethode ist, sind im Sinne von TQM ergänzende Mechanismen für ein ganzheitliches Qualitätsmanagement erforderlich. In jüngster Zeit gab es verschiedene Konzepte, um Qualitätsmanagements-Systeme zu schaffen, die mit der agilen Philosophie verträglich sind (etwa AgileQ von Elmar Borgmeier). Das von andrena objects realisierte Qualitätsmanagementsystem (QMS) basiert auf folgenden Komponenten:
EN ISO 9001:2000 ist prozessorientiert und durch die Beschränkung auf die Metrik Kundenzufriedenheit als Steuergröße für die Prozessverbesserung für alle Dienstleistungsbereiche geeignet. Die Norm erfasst alle für die Produktqualität wesentlichen Bereiche der Unternehmenstätigkeit. Als Konsequenz der Allgemeingültigkeit ist die Norm sehr schlank gehalten und stellt für agiles Software Engineering einen idealen, ergänzenden Systemrahmen dar. ISIS ermöglicht eine kennzahlenbasierte Steuerung und Optimierung sowie Transparenz. Neben der Kundenzufriedenheit werden weitere, die Qualität des Prozesses und der Software kennzeichnende Metriken erfasst und bewertet. Monatlich werden die Werte für das Management und den Auftraggeber publiziert. Teamintern dienen die Daten zur Steuerung und Optimierung des Entwicklungsprozesses. Eine detaillierte Beschreibung von ISIS findet sich in Sanierung von Softwaresystemen, itmanagement September 2008. Fazit Entscheidend für den Erfolg des QMS ist:
Angestrebt werden muss ein Optimum zwischen der Detailliertheit von Verfahrensanweisungen beziehungsweise Vorgaben und der für Effizienz und Qualität erforderlichen Flexibilität der Einzelprojekte. Die für die Softwareentwicklung bei andrena maßgebenden Verfahrensanweisungen umfassen acht Seiten Papier, die gelebt werden. Durch eine weitgehend automatisierte Erfassung und Verwaltung von Aufzeichnungen und Qualitätsdaten behindern wir die Arbeit nicht mit der Produktion als unnütz empfundener Dokumente. Das alles wird von allen Beteiligten als positiv empfunden, nach einjährigem Einsatz sind erste Verbesserungen der Prozesse messbar.
DR. EBERHARD KUHN, Diesen Artikel finden Sie auch in der Ausgabe Oktober 2008 des it management. |
| < zurück | weiter > |
|---|







