Erfolgreiche Projekte durch aktives Prozessmanagement
Dass Qualitätsmanagement in der Softwareentwicklung notwendig ist, wird jeder sofort unterschreiben. Die Geister scheiden sich jedoch schnell, wenn es ans Eingemachte geht. Beim "industriellen" Programmieren helfen verschiedene Vorgehensmethoden.
- Steffen Lentz
- JĂĽrgen Diercks
In der Softwareentwicklung beurteilen die Protagonisten nichts so unterschiedlich wie das Qualitätsmanagement. Aussagen aus der Praxis reichen von „Ja, wir testen die Software hinterher“ bis „Wir haben CMM-Level x“. Doch was beeinflusst die Qualität und damit den Projekterfolg tatsächlich?
Ziel eines jeden Entwicklungsprojekts ist Qualität. Bevor jemand diese Aussage mit „Na ja, so gut es eben geht“ abwiegeln möchte, sollte man sich zuerst die Definition von Qualität ansehen: „Qualität ist der Grad, in dem ein Satz inhärenter Merkmale Anforderungen erfüllt.“
Diese etwas umständliche Aussage stammt aus der ISO-9000:2005-Norm und bedeutet anders formuliert, dass sich die Qualität eines Produkts durch die Zufriedenheit des Kunden bestimmt. Der wiederum ist dann glücklich, wenn er seine persönlichen Ansprüche als erfüllt ansieht. Qualität ist damit kein absolutes Merkmal und nicht unbedingt gleichbedeutend mit besonderer Hochwertigkeit, wie die Verwendung des Begriffs im Alltag gelegentlich suggeriert.
Interessant ist nun die Frage, wie in Softwareprojekten für Qualität und damit für die Zielerreichung Sorge getragen wird. In der Praxis sind dabei äußerst unterschiedliche Ansätze anzutreffen. Sie reichen von Testen als einzige Massnahme über sehr allgemein gehaltene Vorgaben wie im Rational Unified Process (RUP) bis hin zu dem Versuch, Qualität im Prinzip über die Einhaltung formaler Kriterien zu gewährleisten, wie dies bei ISO9000 und CMMI-basierten Umgebungen der Fall ist.
Ein derart uneinheitliches Bild überrascht. Einerseits gibt es in Softwareprojekten unbestreitbar branchenweit ein Problem – überzogene Budgets und unzufriedene Benutzer sind eher die Regel als die Ausnahme. Andererseits scheint es aber offensichtlich weder ein ganzheitliches Bewusstsein für Qualität noch ein einheitliches Verständnis darüber zu geben, wie sie sich erzielen lässt. Im Folgenden zeigt der Artikel neben einer Analyse der bisherigen Ansätze Prinzipien für eine neue Disziplin des Qualitätsmanagements, die Softwareprojekte wirksam unterstützt.
In vielen Projekten ist das Testen die einzige Maßnahme zur Qualitätssicherung. Mit einem Blick auf die Interessengruppen kann man jedoch schnell feststellen, dass dies keinesfalls genügt. Denn neben den Benutzern, auf deren Zufriedenheit das Testen prinzipiell zielt, zählen unter anderem Sponsoren, Administratoren, Maintainer oder bei sicherheitsrelevanten Systemen auch der Gesetzgeber zu den Beteiligten.
Der Rational Unified Process (RUP) hat sich mittlerweile als Grundlage für viele Entwicklungsvorhaben etabliert (Abbildung 1). Sein iterativ-inkrementeller Ansatz reduziert viele mit den klassischen Wasserfallmodellen verbundenen Risiken, sein Umfang sowie seine detaillierte Beschreibung unterstützen auch große Projekte. Jedoch verzichtet der RUP auf eine eigene Disziplin für die Überwachung der Qualität während der Entwicklung [1]. Stattdessen schreibt er jedem Projektbeteiligten die Verantwortung dafür mit ins Aufgabenbuch.