Next: 6.3 Ergebnisse
Up: 6. Der persönliche Softwareprozeß
Previous: 6.1 Einordnung und Ziele
Unterabschnitte
Dem PSP liegen einige Überlegungen zugrunde, die auf den Unterschieden
zwischen dem Softwareprozeß einer Organisation (umfassender
Softwareprozeß, USP) und dem einer Einzelperson beruhen:
- Wenig Kommunikation:
Innerhalb der Arbeit einer Einzelperson ist keine Koordination und
Synchronisation mit anderen erforderlich. Dadurch beschränkt sich die
Kommunikation innerhalb des Softwareprozesses auf Kommunikation der
Person mit sich selbst (in Form von Datensammlung, Prozeßdefinition
und Produktdokumentation). Diese verringerte Kommunikation läßt
einige Probleme im organisationsweiten Prozeß wegfallen und
erleichtert die Lösung vieler übriger.
- Hohe Flexibilität:
Zur Änderung des Prozesses einer Einzelperson ist keine langwierige
Abstimmung innerhalb einer Gruppe notwendig. Bei der Einführung der
Änderung muß auch nicht auf ein schwächstes Glied gewartet
werden. Außerdem sind die Prozeßelemente eines persönlichen
Prozesses einfacher als die eines Prozesses für ein großes Team.
Diese Unterschiede machen den PSP sehr viel flexibler als einen USP,
was das Erreichen von Reifestufe 5 sehr erleichtert.
- Selbstähnlichkeit:
Die Übertragung von Daten aus einem Projekt auf ein anderes ist im
PSP sehr erleichtert, weil nur Daten des gleichen Softwareingenieurs
benutzt werden. Dieser hat erstens durch seinen persönlichen Stil
eine erhebliche Selbstähnlichkeit in seiner Arbeitsweise und kann
zweitens gegebenenfalls recht gut abschätzen, wie alte Daten
umzuinterpretieren sein dürften, falls sich am Prozeß oder am
Anwendungsgebiet etwas geändert hat, denn er hat die alten Daten ja
selbst produziert und kennt ihre Bedeutung dementsprechend gut.
Diese Uniformität in den Daten erlaubt insbesondere auch die
zuverlässige Anwendung einiger Planungs- und Beurteilungstechniken,
die andernfalls nur sehr unzuverlässig oder ungenau funktionieren
würden.
- Individualität:
Ein großer Vorzug des PSP besteht im völlig geänderten Sinn des
Begriffes ,,Standard`` im Softwareprozeß. In einem USP ist ein
Standard fast immer eine Regel, die einen Kompromiß zwischen
verschiedenen ähnlich sinnvollen Vorlieben, Methoden, Gewohnheiten,
Techniken etc. darstellt. Insofern sind USP-Standards oft
zumindest für einige Mitglieder der Organisation ein
unerwünschter Zwang. Demgegenüber setzt ein PSP-Standard lediglich
Konsistenz voraus, nicht aber Kompromiß. Ich kann also meine
PSP-Standards genau so machen, wie sie für mich selber erstens am
sympathischsten und motivierendsten und zweitens am zweckmäßigsten
sind.
Da sich Arbeitsweisen, Problemlösungsmethoden und kognitive Prozesse
von Person zu Person erheblich unterscheiden können, gibt es keine
einzig optimale Lösung für die meisten Prozeßprobleme, sondern nur
individuell optimale. Deshalb kann ein PSP-Standard leistungsfähiger
(im Sinne von Produktivität und Softwarequalität) sein als ein
USP-Standard, weil letzterer notgedrungen für einige seiner Anwender
suboptimal sein wird.
Der PSP zielt auf einen selbstoptimierenden persönlichen
Prozeß. Dementsprechend müssen die meisten der Schlüsselbereiche
des CMM auch im PSP angesprochen werden. Einige davon entfallen
jedoch, weil die ihnen zugrundeliegenden Probleme nicht in den
Arbeitsbereich des Individuums fallen, sondern der Koordination
innerhalb einer Projektgruppe zuzuordnen sind.
Die nachfolgenden Abschnitte besprechen in Kurzform die Maßnahmen,
die im PSP für die einzelnen Schlüsselbereiche vorgeschlagen
werden. Wo Schlüsselbereiche grundsätzlich nicht relevant für
persönliche Prozesse sind, steht ,,entfällt``. Eine kleine Anzahl
von Bereichen könnte prinzipiell im PSP angesprochen werden, wird aber
in der derzeitigen Version nicht behandelt. Dies ist ebenfalls bemerkt.
- Anforderungsverwaltung.
Wird derzeit im PSP nicht angesprochen
- Software-Projektplanung.
Es wird eine Zeitplanung auf dem Weg über eine Größenschätzung,
Produktivitätsdaten und Daten über die Zeitverteilung auf
Arbeitsphasen gemacht.
- Software-Projektverfolgung und -überblick.
Die Einhaltung des Zeitplans wird anhand wohldefinierter Meilensteine
etwa zweimal wöchentlich überprüft. Im Falle erheblicher Abweichungen
vom Plan wird der Plan entsprechend korrigiert, indem entweder der
Zeitrahmen neu gesetzt oder die Aufgabe verkleinert wird.
- Software-Unterauftragsverwaltung.
Entfällt.
- Software-Qualitätssicherung.
Durchsichten werden verwendet, um Fehler möglichst früh zu finden.
Fehlerdaten werden gesammelt und analysiert, um Fehler zu vermeiden
und die Durchsichten zu optimieren. Tests werden sorgfältig geplant
und dokumentiert.
- Software-Konfigurationsverwaltung.
Entfällt.
- Schwerpunkt auf organisationsweiten Prozeß.
Enfällt.
- Prozeßdefinition.
Auch im PSP werden die Prozeßeinzelteile definiert und schriftlich
niedergelegt, um eine konsistente und nach außen hin durchsichtige
Arbeitsweise zu ermöglichen. Im Gegensatz zum USP ist normalerweise
keine Unterscheidung zwischen einem Standardprozeß und definierten
angepaßten Prozessen für einzelne Projekte nötig.
- Ausbildungsprogramm.
Auch der PSP enthält Maßnahmen zum geregelten Erlernen der
notwendigen Fertigkeiten, für das Zeit ausdrücklich eingeplant
werden soll.
- Integriertes Softwaremanagement.
Enfällt.
- Koordination zwischen Gruppen.
Entfällt.
- Peer Reviews.
Im PSP werden Durchsichten vom einzelnen durchgeführt. Das ist zwar
strenggenommen kein Peer Review, dient aber demselben Zweck, nämlich
Qualitätsüberwachung und -verbesserung.
Auf Stufe 4 werden die Stärken eines PSP erst richtig sichtbar: Was
im USP eine späte Phase der Prozeßentwicklung ist und zu seiner
effektiven Benutzung sehr viel voraussetzt, ist im PSP sehr konkret
und relativ einfach innerhalb weniger Wochen einzuführen.
- Quantitative Prozeßsteuerung.
Mit Hilfe einer ganzen Reihe von Meßgrößen wird die Produktivität
und die Produktqualität des PSP laufend überwacht. Durch
Zusammenschau dieser Meßdaten sind auch die Mittelwerte und
zeitlichen Entwicklungen der Prozeßgrößen bekannt.
- Software-Qualitätsmanagement.
Anhand der gleichen Meßgrößen werden Vorgaben an die Prozeßqualität
definiert und der Fortschritt überwacht.
- Defektvermeidung.
Durch regelmäßige Analyse der Defektdaten werden wiederkehrende
Gründe für Defekte identifiziert. Durch Änderung der Aufmerksamkeit
bei der Herstellung und Änderung der Prüflisten für die
Durchsichten werden diese Gründe systematisch bekämpft.
- Verwaltung von Technologieänderung.
Der PSP sieht vor, Gelegenheiten zu schaffen und zu benutzen, um neue
Technologien auszuprobieren und zu bewerten. Erfolgversprechende
Ansätze können direkt in die Arbeit übernommen werden. Hier wirkt
sich die hohe Flexibilität eines PSP besonders positiv aus.
- Verwaltung von Prozeßänderung.
Durch Analyse der Prozeßdaten in gewissen Abständen können
Schwächen im Prozeß identifiziert und gezielt bekämpft werden.
Die Analysen selbst werden in einem geplanten und geordneten Rahmen
durchgeführt.
Für den PSP stellt sich natürlich die gleiche Frage, wie für die
höheren CMM-Reifestufen: Wie komm ich hin?
Humphrey hat für den PSP einen Kurs ausgearbeitet, der einen mit
einem Aufwand von etwa einem ganzen Arbeitstag pro Woche innerhalb von
15 Wochen zu einem PSP bringt, der CMM-Stufe 4 entspricht.
Sein Buch [Hum95] ist in seinem Hauptteil passend zu diesem
Kurs strukturiert, so daß man den Kurs ohne weiteres im Selbststudium
machen kann.
Der Kurs verläuft vom Anfangsprozeß
PSP0 über fünf PSP-Zwischenstufen bis zum vollen Prozeß PSP3.
Der Basisprozeß PSP0 ist dabei das individuelle bisherige Vorgehen,
ergänzt um die Erfassung von Arbeitszeiten und Fehlern als Grundlage
aller weiteren Prozeßverbesserungsschritte.
Im PSP1 wird das Größenmessen und -schätzen und die Zeitplanung
eingeführt. Die Zeitplanung wird mit zunehmenden Datenmengen
verfeinert, basiert aber von Anfang an auf gemessenen Daten anstatt
auf reiner Intution; das gleiche gilt für die Größenschätzung.
Es wird nicht nur eine Schätzung der Gesamtzeit vorgenommen, sondern
auch eine Festlegung zahlreicher feiner Meilensteine und eine
Terminplanung, wann diese jeweils erreicht werden sollen. Damit kann
eine genaue Planverfolgung und ggf. frühzeitige Korrektur gewährleistet
werden.
Der PSP2 führt das Qualitätsmanagement ein:
Entwurfsdurchsichten, Codedurchsichten, Vermessung der
Begutachtungsgeschwindigkeit, Defektentdeckungsrate und
Defektentdeckungsausbeute und die systematische Auswertung von
Fehlerdaten zur Identifikation und Beseitigung wiederkehrender
Fehlerursachen. Das Qualitätsmanagement enthält auch eine
Kostenbetrachtung, um den Prozeß je nach Entwicklungszielen gezielt
in einem günstigen Kosten-Nutzenbereich betreiben zu können. Für
die Entwurfsprüfung werden einige allgemein benutzbare Kriterien und
Formalismen zur Prüfung von Entwurfsvollständigkeit und -korrektheit
eingeführt.
Als letzter Schritt erweitert PSP3 das Vorgehen auf
inkrementelle Entwicklung, so daß die PSP-Methoden auch für
größere Programme brauchbar bleiben.
Dieses Vorgehen des PSP-Kurses über Zwischenstufen ermöglicht ein
schrittweises Erlernen und Einüben, wobei jeder Schritt mit eigenen
Erfolgserlebnissen verbunden ist. Auf diese Weise wird die Motivation
über den Kurs hinweg aufrechterhalten.
Auf jeder PSP-Stufe werden eine oder zwei Programmierübungen gemacht,
die zwei Ziele haben: Erstens dienen sie als Übungsbeispiele für die
Anwendung der jeweiligen PSP-Variante; zweitens sind die darin
erzeugten Programme Werkzeuge für die Messung und Datenanalyse im
PSP.
Die einzelnen Übungen dauern etwa 0.5 bis 4 Stunden für Übung 1 bis hin
zu 5 bis 30 Stunden für Übung 10, je nach Geschick und
Gründlichkeit.
Die Programmierübungen werden ergänzt durch
Prozeßverbesserungsübungen, die folgende Zwecke haben:
- Definition des Prozesses (Standards, Vorgehensskripte, etc.).
- Analyse der Daten zur Bestimmung von Prozeßgrößen und zur
Erhöhung der Motivation.
- Analyse der Daten zur Identifikation von Schwachstellen.
- Verbesserung des Prozesses (Prüflisten, etc.).
Ergebnis des Kurses ist ein wohldefinierter Prozeß, der zunächst zum
überwiegenden Teil aus vordefinierten Teilen besteht, aber auch schon
selbstdefinierte Komponenten enthält (zumindest durch Auswahl aus
mehreren Möglichkeiten). Dieser Prozeß wird aufgrund von Messungen
quantitativ verstanden und kontrolliert und wäre insofern auf
CMM-Stufe 4 einzuordnen. Das PSP-Buch enthält auch Anleitungen
dafür, wie man kontinuierliche Prozeßverbesserung und Verwaltung von
Technologiewechsel in den PSP einführen kann, um Stufe 5 zu
erreichen. Dies kann jedoch nicht ausdrücklich im Kurs geübt werden.
Next: 6.3 Ergebnisse
Up: 6. Der persönliche Softwareprozeß
Previous: 6.1 Einordnung und Ziele
Lutz Prechelt
1999-04-13