|
Notwendigkeit
von 'Causal Analysis'
Ohne einen qualitativ hochwertigen Entwicklungsprozeß können
komplexe Softwareprojekte nicht durchgeführt werden, weil z.B.:
-
Die Kosten zur Fehlerbehebung nicht finanzierbar sind
-
Bei notwendigen Änderungen in den Anforderungen der Überblick
verloren geht
-
Beim Kunden viele Fehler auftreten, die zur Unzufriedenheit führen
-
Die Betreuung der Kunden schlecht ist, wenn Probleme auftreten
-
Verschiedene Versionen des Projektes nicht verwaltet werden können
-
Das Projekt nicht konsequent weiterentwickelt werden kann
Um einen hohen Qualitätsstandard zu erreichen, müssen Fehler
möglichst vermieden werden. Dies kann durch eine systematische Fehlerursachen-Analyse
geschehen, d.h. durch 'Causal Analysis'.
Verbesserungen
durch 'Causal Analysis'
Bei konsequenter Einbettung von 'Causal Analysis' in den Entwicklungs-Prozeß
erreicht man
-
eine Verbesserung des Produktes
-
eine Verbesserung des Entwicklungs-Prozesses und
-
eine Verbesserung des Qualitätsdenkens der Mitarbeiter.
'Causal Analysis' muß dabei in allen Phasen. des Entwicklungsprozesses
eingesetzt werden:
-
Spezifikationsphase
-
Designphase
-
Implementationsphase
-
Operationsphase
In jeder dieser Phasen treten spezielle Probleme auf, die durch 'Causal
Analysis' auf gedeckt werden können. Die wichtigsten Maßnahmen,
die normalerweise aus dem 'Causal Analysis'-Prozeß entstehen, sind
auf alle Phasen anwendbar:
-
Standardisierung
-
Zurückführbarkeit auf die vorige Phase
-
Testbarkeit
Fehlervermeidungs-Maßnahmen
- Beispiele
Das Ziel von 'Causal Analysis' ist die Entwicklung konkreter Fehlenvermeidungs-Maßnahmen.
R.G.Mays zeigt auf, daß die meisten Fehler trivialer Art sind,
z.B. Schreibfehler in einem Wort oder Vergessen, eine Variable wieder auf
Null zu setzen. Während solche Fehler zwar eine triviale Ursache haben,
können ihre Konsequenzen enorm sein. Mit diesem Hintergrund sind die
wichtigsten Maßnahmen zur Fehlervermeidung:
-
Beachten von Kleinigkeiten
-
Genaues Einhalten des Entwicklungsprozesses
-
Automatisierung möglichst vieler Teilbereiche des Prozesses
Der erste Schritt zur Fehleranalyse ist die Klassifizierung der aufgetretenen
Fehler. Dazu gibt es viele Möglichkeiten, wobei sich folgende Klassifizierung
bewährt hat:
-
Mangelnde Übersicht
-
Fehlende Ausbildung
|
-
Kommunikations-Probleme
-
Übertragungs-Probleme
|
Typische Maßnahmen gegen mangelnde Übersicht
Es müssen Aktionen und Vorgehensweisen etabliert werden, die den
Entwickler automatisch an wichtige Dinge erinnern oder die einen Prozeß
soweit automatisieren, daß kein Detail übersehen werden kann.
Beispiele:
-
Fehlerprüflisten
-
Cross-Referenzen zur Programm- und Prozeß-Logik, die Online verfügbar
sind
-
Hilfswerkzeuge, die Vollständigkeits-Prüfungen durchführen
-
Erinnerungen und Warnungen in der Produkt-Dokumentation oder Online
-
Regelmäßige Arbeitsgruppen, um seine Arbeit von Kollegen nachprüfen
lassen zu können
-
Falls Zeitdruck die Ursache ist, muß das Management die Planungsdaten
des Projekts überdenken
Typische Maßnahmen gegen fehlende Ausbildung
Hier muß zum richtigen Zeitpunkt des Projektes die jeweils angebrachte
Art von Ausbildung gewährleistet werden. Beispiele:
-
Vorträge oder Kurse, die mit dem Produkt zusammenhängen
-
Informations- und Prüflisten für Mitarbeiter, die neu in das
Projekt einsteigen
-
Sammeln von Artikeln in bereichsweiten Rundschreiben
-
Halten von Seminaren über neu einzuführende Funktionen
Typische Maßnahmen gegen Kommunikations-Probleme
Teile des Entwicklungsprozesses müssen geändert und vermehrt
Hilfswerkzeuge eingesetzt werden. Beispiele:
-
Knüpfen von Kontakte zu anderen Abteilungen, wenn dort Abhängigkeiten
oder Quer-Verbindungen zum Projekt bestehen.
-
Benutzen eines Tools, das alle von einer Produkt- oder Prozeßänderung
betroffenen Parteien automatisch über die Konsequenzen informiert.
Typische Maßnahmen gegen Übertragungs-Fehler
Werkzeuge müssen entwickelt werden. um Bereiche, die zu Leichtsinnsfehlern
führen können, zu automatisieren. Beispiele:
-
Ein Tool, das ein Modul analysiert und zusätzlich zum Compiler Informationen
liefert (Module Checker Tool).
-
Ein Tool, das im gesamten Source-Code gewisse fehlerträchtige Konstellationen
ausfindig macht und kennzeichnet. Die Konstellationen wurden vorher durch
'Causal Analysis' zusammengestellt (String Scanning Tool).
-
Ein benutzerfreundliches Tool zum Kopieren von großen Mengen von
Dateien.
-
Arbeitsgruppen zur gegenseitigen Kontrolle der Mitarbeiter
Organisation
von 'Causal Analysis' - Beispiel
Die Effektivität von 'Causal Analysis' hängt entscheidend
vom organisatorischen Umfeld ab, in dem sie umgesetzt werden soll. Das
IBM Communication Programming Labratory at Research Triange Park, North
Carolina hat einen 'Integrierten Prozeß zur Fehlervermeidung' entwicklelt,
der vier Hauptelemente zur Fehlervermeidung in sich vereinigt:
-
Systematische 'Causal Analysis'
-
Unterstützung durch das Management
-
Regelmäßiges Treffen und Planen vor jeder Entwicklungsphase
-
Eine Datenbank mit Hilfswerkzeugen zum Sammeln und Suchen von Daten.
Positive
Erfahrungen mit 'Causal Analysis'
Mit dem 'Integrierten Prozeß zur Fehlerverrneidung' konnten bereits
in mehreren Projekten entscheidende Verbesserungen in Qualität und
Produktivität erreicht werden. Eine Verringerung der gewohnten Fehlerzahl
um 50% konnte bei einem Kostenaufwand von einen halben Prozent der Ressourcen
des Entwicklungsbereiches erreicht werden.
Als ebenso wichtig wie diese Verringerung der Fehlerzahl haben sich
die positiven Änderungen im Entwicklungsbereich der Firma selbst herausgestellt:
-
Änderungen im Entwicklungsprozeß werden beschleunigt.
-
Der Entwicklungsprozeß verbessert sich iterativ selbst.
-
Die Kommunikation zwischen den Mitarbeitern wächst.
-
Das Qualitätsbewußtsein der Mitarbeiter wächst.
Die wichtigste Auswirkung von Fehlervermeidung durch 'Causal Analysis'
ist die höhere Qualität des Produktes beim Kunden. Erfahrungen
zeigen, daß sich eine Fehlerreduktion während des Entwicklungsprozesses
auf die Operationphase übertragen läßt. Das bedeutet: Weniger
Fehler während der Entwicklung führt zu weniger Fehlern, die
beim Kunden auftreten. Höhere Qualität zahlt sich aber durch
größere Zufriedenheit des Kunden und geringeren Wartungsaufwand
in der Zukunft aus.
Ausblick:
Fehlerauswirkungs-Analyse
'Causal Analysis' (Analyse von Fehlerursachen) stellt nicht die
einzige Möglichkeit dar, Fehler zu vermeiden. Einen anderen Weg soll
das abschließende Beispiel verdeutlichen:
Richard H. Cobb und Harlan D.Mils untersuchten 1990 nicht die Ursache
von Problemen, sondern deren Auswirkungen auf die Kunden. Dabei kommen
sie zu dem bemerkenswerten Ergebnis, daß etwa 60% aller während
der Entwicklungsphase behobenen Fehler mit großer Wahrscheinlichkeit
nie jemals beim Kunden aufgetreten wären, wobei dieser Wert bei allen
9 untersuchten Projekten etwa übereinstimmt.
Hier können Methoden und Maßnahmen entwickelt werden, die
über das Zählen von Fehlern hinausgehen, indem z.B., der Testprozeß
vom Kundenprofil abhängig gemacht wird. Das Thema 'Fehlerauswirkungs-Analyse'
ist so umfangreich, daß es genügend Stoff für weitere Diplomarbeiten
bieten würde. |