Agiles Qualitätsmanagement: Ewige Veränderung

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, leicht­gewichtigen 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 Quali­täts­ma­nage­ment­sys­teme 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.

Anzeige

Total Quality Management

Total Quality Management (TQM) ist ein grundlegender Ansatz zur Qua­li­täts­si­cherung. 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:
Qualität orientiert sich am Kunden.

  • Qualität wird mit Mitarbeitern aller Bereiche und Ebenen erzielt.
  • Qualität umfasst mehrere Dimensionen, die durch Kriterien operationalisiert wer­den müssen.
  • Qualität ist kein Ziel, sondern ein Prozess, der nie zu Ende geht.
  • Qualität bezieht sich nicht nur auf Produkte, sondern auch auf Dienst­leis­tungen.
  • Qualität setzt aktives Handeln voraus und muss erarbeitet werden.

Image

Aspekte der Qualität

Je nach Sicht und Rolle des Beteiligten können im Software Engineering ver­schiedene 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 Ände­rungs­freund­lich­keit. 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äts­ma­nage­ment (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:

  • In erster Linie überzeugt der ganzheitliche Ansatz. Nicht nur die Soft­ware­ent­wick­lung als Kern der Tätigkeit eines Unternehmens, sondern alle Bereiche werden dem Qualitätsmanagement unterworfen.
  • Es bestehen Kontroll- und Steuermöglichkeiten für das Management.
  • Die Einführung des Qualitätsmanagements erfolgt nicht komplett in einem Zug sondern schrittweise, was den Betriebskörper nicht überfordert und jahre­lang in Bewegung hält.

Demgegenüber sind folgende Nachteile festzuhalten:

  • Zuviel Struktur: Die Definition von Formalismen und Vorgehensweisen für das gesamte Unternehmen schert alles über einen Kamm. Das kann für kleinere Projekte und Vorhaben zu einem signifikanten Hindernis werden.
  • Zuviel Papier/Bürokratismus: Die Verfahren gehen auf höheren Reife­stufen mit einem erheblichen Formalismus einher. Erfahrungsgemäß korreliert die Menge produzierter Schrankware nicht mit der Qualität der Prozesse und Produkte.
  • Geringe Akzeptanz auf technischer Ebene: Von den Entwicklungsteams werden die einzuhaltenden Formalien und die zu produzierenden Dokumente als wenig nützlich und ohne Effekt auf die Qualität ihrer Arbeit empfunden.
  • Fokus auf formaler Korrektheit: Durch Audits wird nur die formale Einhaltung der Normen etc. geprüft. Ob Qualitätsmanagement tatsächlich gelebt wird oder nur pro Forma (zwecks Zertifikat), kann der Auditor nicht beurteilen.
  • Prozessorientierung: Dies ist insofern ein Vorteil, da alle Tätigkeiten des Unternehmens in das Qualitätsmanagement einbezogen werden. Ein ent­schei­dender Nachteil ist allerdings, dass die Qualität des Produkts wenig Berücksichtigung findet. Das ist insbesondere bei der Softwareentwicklung fatal, da hier die innere Qualität, dass heißt die Verständlichkeit, Wartungs-, Erweiterungs- und Änderungsfreundlichkeit der Software in vielen Unter­neh­men und Projekten vernachlässigt wird.
  • Geringe Effizienz: aus den genannten Problemen resultiert letztendlich eine geringe Effizienz der Systeme, die Verfahren entsprechen nicht den Grund­sätzen der schlanken Produktion

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. Auf­tretende Probleme müssen sofort gelöst werden, Ver­besse­rungs­maß­nah­men 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 ab­hän­gig. Um beides – Flexibilität und optimale Teamleistung – zu ge­währ­leis­ten 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.

Image

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 Product Owner entspricht dem Kunden beziehungsweise Auftraggeber. Er legt das Ziel und die Prioritäten fest.
  • Das Teamarbeitet die Anforderungen gemäß der Priorisierung ab.
  • Der Scrum Master überwacht den Prozess.

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 An­for­de­rungen. Gleichzeitig steht nach jeder Iteration eine lauffähige Software zur Verfügung, die getestet werden kann.

Ein Sprint läuft wie folgt ab:

  • Der Product Owner legt die Prioritäten der Anforderungen fest.
  • Das Team legt anhand der Prioritäten die zu bearbeitenden Anforderungen im Sprint fest und schätzt diese.
  • Das Teamarbeitet die Anforderungen der Reihe nach 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 An­for­derungen richtig umgesetzt wurden. Zuletzt gibt es noch eine Re­tro­spek­tive, 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 ad­ressiert und Scrum eine bewusst einfache Planungs- und Steue­rungs­met­hode 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 stellt den formalen Rahmen, der mittels nachfolgender Verfahren mit Leben gefüllt wird.
  • Scrum dient der Planung, Fortschrittskontrolle und der kontinuierlichen Ver­besserung.
  • Extreme Programming zur Sicherung der Produktqualität.
  • ISIS, ein von andrena konzipiertes Navigationssystem für Prozess- und Pro­duktqualität.

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 Pro­dukt­qualitä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:

  • Das Vermeiden von Schrankware.
  • Das Verhindern der Papierlawine.
  • Die hierdurch erstmögliche Erkenntnis aller Beteiligten, dass das QMS die Qualität der Arbeit verbessert und nicht die Arbeit selbst behindert.

Angestrebt werden muss ein Optimum zwischen der Detailliertheit von Ver­fah­rens­an­weisungen 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,
DR. ANDREAS ARNOLD

Diesen Artikel finden Sie auch in der Ausgabe Oktober 2008 des it management.

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.