Der Kostenaufwand ist der Maßstab

Ohne Qualitätsplanung ist produktive Software Zufall

11.05.1990

Die Definition von Qualität klingt einfach: Anforderungen an ein Produkt und die Ergebnisse der Entwicklung müssen übereinstimmen. Softwarequalität stellt sich jedoch nicht von selbst ein - sie ist abhängig von Organisation und Planung. Josephine Dunthorne* sieht die Qualitätsplanung als Bestandteil eines "Qualitäts-Engineering".

Viele Menschen sprechen von "guter oder schlechter Qualität" und denken zum Beispiel bei "guter Qualität" an Eleganz, Brillanz oder auch an technische Vollkommenheit. Beginnt man jedoch, die Qualität einer Sache mit Luxus oder ähnlichem zu verwechseln, so wird man feststellen, daß jeder Mensch eine andere Auffassung oder Vorstellung davon hat. Wir müssen den Begriff Qualität genauer definieren, damit wir das gewünschte Ergebnis, ein Qualitäts-Produkt, erreichen können. Erst dann wird Qualität meßbar, steuerbar und regelbar.

Wenn wir Qualität als "conformance to requirements" oder, auf deutsch gesagt, als die Übereinstimmung der Ergebnisse mit den Anforderungen begreifen, dann bedeutet das, alle Anforderungen an unsere Produkte transparent und unmißverständlich festzulegen. Es muß in allen Phasen der Produktentwicklung möglich sein, den jeweiligen Stand der Produktqualität zu bestimmen oder, anders gesagt, zu überprüfen, inwieweit das Produkt den Anforderungen entspricht. Dadurch lassen sich alle Abweichungen als Qualitätsdefizite, alle Übereinstimmungen als Qualität definieren.

Viele Menschen glauben, daß Qualität gar nicht oder nur sehr schwer meßbar sei. In Wirklichkeit ist es aber sehr wohl möglich, die Qualität zu messen; wir können ihr sogar einen finanziellen Wert zuweisen. Mit der Definition von Qualität als Übereinstimmung der Ergebnisse mit den Anforderungen können wir Qualität auch im Kostenaufwand messen. Es handelt sich hierbei um Kosten in den Fällen "das Falsche tun" und "es wieder in Ordnung bringen".

Wir können die Kosten für Qualitätssicherung in drei Kategorien unterteilen:

- Kosten für vorbeugende Aktivitäten,

- Kosten für Prüfungs-Aktivitäten und

- Kosten für Nachbesserung.

Unter vorbeugenden Aktivitäten sind alle Maßnahmen zu verstehen, die unternommen werden müssen, um Fehlern während der Entwicklung vorzubeugen. Design-Reviews, Festlegung von Standards sowie Änderungs-Dienste zählen zu derartigen Maßnahmen.

Den sogenannten Prüfungs-Aktivitäten sind Maßnahmen zuzuordnen, die der Prüfung in den verschiedenen Entwicklungsphasen dienen wie zum Beispiel alle Testaktivitäten. Design-Wiederholung, Nacharbeit und Ersatz lassen die Kosten für Nachbesserung entstehen.

Gute Produkte lassen sich nur entwickeln, wenn ihre Qualität geplant ist; schlechte stellen sich von selbst ein. Aus diesem Grund muß die Qualitätsplanung als Teil des Qualitäts-Engineering gesehen werden. Wir verlangen daher aussagefähige Qualitätspläne.

Der Qualitätsplan enthält alle Informationen für das Qualitäts-Engineering eines Produktes. Jedes Projekt-Team ist selbst für die inhaltliche Erstellung des Qualitätsplanes verantwortlich. Die Arbeitsgruppen erhalten Unterstützung von der Stabsstelle Qualitätsplanung und - bezüglich der Qualitätsanforderungen - vom Produktmarketing.

In den Qualitätsanforderungen ist definiert, welche Merkmale für das Produkt wichtig sind und damit für die Beurteilung in Frage kommen. Die überwiegende Anzahl dieser Merkmale bezieht sich dabei direkt auf die Produktqualität aus der Sicht des Endanwenders. Ein typischer Qualitätsplan wird folgende Qualitätsmerkmale für die Bewertung heranziehen:

- Verfügbarkeit,

- Installierbarkeit,

- Wartbarkeit,

- Performance,

- Zuverlässigkeit,

- Sicherheit und

- Anwenderfreundlichkeit.

Diese Kriterien werden so definiert, daß sie meßbar und für jedes Produkt anwendbar sind. Durch exakte und kontinuierliche Prüfungen kann festgestellt werden, welcher Stand erreicht wurde. Ein Maßstab für Wartbarkeit wäre zum Beispiel die Angabe, wie schnell und mit welchem Aufwand ein Mangel im Produkt (non-conformance) beseitigt werden kann. Diese Faktoren lassen sich konkret abrechnen - durch die Ermittlung der Durchschnittszeit für die Behebung eines Fehlers und durch die Messung des entsprechenden Aufwandes.

Zum Nutzen des Kunden ist es am besten, bereits während er Entwurfs- und Entwicklungsphasen die Qualität seiner Produkte oder Dienstleistungen vorbeugend durch Qualitätsplanungsmaßnahmen zu sichern. Deshalb wird im Qualitätsplan des Produktes definiert, wie der Projektänderungsdienst organisiert und verwaltet werden soll; er enthält auch die Entwurfs- und Entwicklungsmethoden sowie alle Standards, die berücksichtigt werden müssen.

Im "Änderungsdienst" ist unter anderem festgelegt, welche Systeme für die Planung, die Spezifikationen und das Produkt selbst im Einsatz sind, um eine Baseline zu etablieren und in der Folge erforderliche Änderungen zu genehmigen und zu kontrollieren.

Alle bisherigen Erfahrungen beweisen, daß Änderungen auch während der Entwurfs- und Entwicklungsphasen vorkommen werden. Deshalb sind Änderungskontroll-Verfahren ganz besonders wichtig, um die Übereinstimmung zwischen den Produkten und deren Dokumentation sicherzustellen. Während der Entwurfs- und Entwicklungsphasen werden die Produkte projektbegleitend auf Qualitätseinhaltung geprüft.

"Testing" ist eine der wichtigsten systematischen Methoden. Wenn die darin enthaltenen Definitionen und Restriktionen nicht peinlich genau eingehalten werden, sind die Ergebnisse stark gefährdet und die erwartete Qualität wird nahezu unerreichbar. Für die an der Entwicklung Beteiligten muß eindeutig erkennbar sein, wie sie vorgehen müssen, um ihren Test vollständig und mit Erfolg abschließen zu können.

Wir unterscheiden vier Phasen des Testens:

- Programmtests,

- Integrationstests,

- Systemtest (Alpha-Test) und

- Pilot-Installationen (Beta-Test).

Programmtests werden während der Entwicklung gemäß schriftlicher Spezifikationen durchgeführt. Hierarchisch gesehen ist dies die niedrigste Form der Tests, die durchgeführt werden muß. Die Spezifikationen beschreiben nicht nur die Test-Fälle, sondern das gesamte Spektrum der Input-Daten sowie die zu erwartenden Output-Daten.

Integrationstests dagegen verfolgen das Ziel, die logischen Fehler eines Produktes wie beispielsweise Widersprüchlichkeit in der Anwendung bestimmter Algorithmen zu entdecken. Auch dieser Test muß nach schriftlichen Vorgaben durchgeführt werden.

Das Ziel eines Systemtests liegt darin, Entwurfs-Fehler zu entdecken und darüber hinaus das Erreichen der vorgegebenen Qualitätsanforderungen zu überprüfen .

Sind bestimmte Qualitätsmerkmale nicht direkt zu testen wie beispielsweise die Anwenderfreundlichkeit, so wird im Rahmen von Pilot-Installationen die erforderliche Testbestätigung herbeigeführt. Diese Endbenutzer-nahen Tests bei Pilotkunden müssen für eine objektive Beurteilung besonders diszipliniert und kontrolliert ablaufen.

Die Summe der positiven Testverläufe entscheidet letztlich über die Anwendbarkeit des Produktes und bringt eine Aussage über die Qualität der bis zu diesem Zeitpunkt geleisteten Arbeit. Damit sind zunächst die Hauptphasen der Produktentwicklung abgeschlossen.

Der Qualitätsplan beschreibt nicht nur, wie Fehlereignissen vorgebeugt wird, sondern auch, wie die Qualität der Produkte während der Entwurfs- und Entwicklungsphasen überprüft werden kann. Allerdings verhindert die Komplexität von Software und deren Basistechnologien, daß alle Fehler schon vor der Lieferfreigabe erkannt und eliminiert werden können.

Dies bedeutet, daß viel Wert auch auf solche internen Prozeduren gelegt werden muß, die sofortige und effektive Korrektur-Aktionen ermöglichen.

Die wirkliche Stärke des Qualitäts-Engineering umfaßt die Fähigkeit, aus der Vergangenheit zu lernen, um in der Zukunft eine reibungslose Arbeitspraxis zu ermöglichen. Qualität wird uns nicht geschenkt. Was uns aber mehr Ärger bereitet, sind die "Nicht-Qualität" und die daraus resultierenden Nachbesserungen. Qualität ist immer "Ökonomie", denn es ist zweifelsfrei kostengünstiger, etwas beim ersten Mal gleich richtig zu tun.

*Josephine Dunthorne ist Leiterin der Qualitäts- und Projektplanung beo der Strässle GmbH, Stuttgart.