8. Projektmanagement und Software-Qualität 8.1 Projektplanung Ja, Ja, mach nur nur einen Plan Plan Sei Sei nur nur ein ein großes Licht!! Und Und mach' dann noch 'nen 'nen zweiten Plan Plan Geh'n tun tun sie sie beide nicht. Bertolt Brecht, Die Die Dreigroschenoper 8. Projektmanagement und Software-Qualität 8.1 Projektplanung 8.2 Software-Qualität 8.3 Teamarbeit Seite 1
Aufgaben eines Projektmanagers Schätzen, kalkulieren, planen Verträge aushandeln Teams zusammenstellen und betreuen Beobachten, berichten, abstimmen Werkzeuge bereitstellen Arbeit organisieren und koordinieren Änderungen systematisch behandeln Zeitplanänderungen Anforderungsänderungen Budgetänderungen Der (die) Projektmanager(in) ist ist nicht ein autokratischer "Chef" des Projekts, sondern erbringt eine wesentliche Dienstleistung für für das Funktionieren des Projekts!! Projektstruktur Hierarchische Zerlegung der Aufgabe in Arbeitspakete (work packages) Teilaktivitäten (activities) Projektstruktur kann sich orientieren an: Produktstruktur Fachliche Strukturen Phasenmodell des Entwicklungsprozesses Seite 2
Projektstruktur: Beispiele Diplomarbeit 1. Literaturrecherche 2. Entwurf des eigenen Ansatzes 3. Implementierung 4. Ausarbeitung......... 1.1 vorgegebene Literatur auswerten 1.2 weitere Quellen identifizieren 1.3. weitere Literatur beschaffen 1.4 beschaffte Literatur auswerten SW-Projekt X 1. Analyse... 2. Entwurf 3. Implementierung 2.1 Grob-E. 2.2 Fein-E.... 4. Infrastruktur... Aufwandsschätzung Schätzungen für: relativen Aufwand der Teilaufgaben absoluten Aufwand für Subsysteme Faustregeln, Erfahrungswerte Techniken der Aufwandsschätzung: Befragung von Entwicklern Klassifikation z.b. durch "Function Point"-Methode» Wie viele Teilfunktionen?» Wie schwierig ist jede Teilfunktion? Metriken für Spezifikationen "Kalibrierung" durch eigene Erfahrungswerte Seite 3
Abhängigkeiten Welche Aktivitäten hängen von Ergebnissen anderer Aktivitäten ab? Aufwandsschätzung + feste Termine + Abhängigkeiten: Netzplantechniken (z.b. PERT) Beispiel für Abhängigkeiten: 1. Analyse 2. Entwurf 3. Implementierung 4. Infrastruktur... 2.1 Grob-E. 2.2 Fein-E. 3.1 Impl. Subsystem 1 3.2 Impl. Subsystem 2 Zeitplanung: Gantt-Diagramm Arbeitspaket 1.1 Analyse Projektwochen 1 2 3 4 5 6 7 8... 2.1 Grobentwurf 2.2 Feinentwurf 3.1 Impl. Subsys. 1 3.2 ff... 4.1 Werkzeuge Identifikation kritischer und unkritischer (4.1, 3.1) Arbeitspakete (kritisch = Verlängerung verlängert Gesamtprojektdauer) Seite 4
Ressourcenplanung Anzahl Personen 5 4 3 2 4.1 4.1 4.1 2.2 3.1 1 1.1 2.1 3.2 1 2 3 4 5 6 7 8... Projektwochen Umplanung mit dem Ziel: Anpassung an vorhandene Ressourcen Meilensteine Ein Meilenstein ist ein klar definiertes Zwischenresultat, an Hand dessen der Projektfortschritt beurteilt werden kann. Beispiele: "Anforderungsspezifikation zusammen mit Auftraggeber verabschiedet" "Erster Prototyp lauffähig" Schlechtes Beispiel: "Code zu 50% fertig" Meilensteine im Gantt-Diagramm: Arbeitspaket Projektwochen 1 2 3 4 5 6 7 8... M1 1.1 Analyse 2.1 Grobentwurf Seite 5
Projektverfolgung Das Projektmanagement muß ein "Frühwarnsystem" für eventuelle Probleme betreiben. Informationsquellen: Laufende (z.b. wöchentliche) Management-Berichte Arbeitszeit-Kontierung Resultate (deliverables) Rückkopplung zum Projektteam Regelmäßige Projektbesprechungen Beispiel: Akkumulierter Ressourcenverbrauch Akkumulierte Kosten Budget Ist Soll Berichtszeitpunkt Zeit Meilenstein-Trendanalyse Projektwochen 1 2 3 4 5 6 7 8... 1 A B C geplantes Projektende Berichtswochen 2 3 4 5 6 7 8 Vorhersage Erreicht Seite 6
Korrekturmaßnahmen Erhöhung von Budget und Ressourcen meist schwer zu erreichen nur mit sehr großem Vorlauf wirkungsvoll (Einarbeitung!) Verschieben von Terminen Reduzierung von Funktionalität Setzen von Prioritäten Stufenplanung Rechtzeitiger (!) Projektabbruch Kalkulation der Wirtschaftlichkeit "Death by Planning" Gute Planung ist Schlüssel zu wirtschaftlichem Erfolg. Aber: Zuviel Planung kann ein Projekt behindern oder sogar zum Scheitern bringen! Planung kann nicht beliebig detailliert sein. Planungs- und Kontrollaktivitäten müssen in einem vernünftigen Verhältnis zu direkt produktiven Aktivitäten stehen. Planung muß flexibel sein: Möglichkeiten zum Umplanen Detailpläne für die nähere Zukunft Grobpläne für die fernere Zukunft Planung darf die Entscheidungsfreiheit für alternative Lösungen nicht einschränken, sondern soll objektive Vergleichsmaßstäbe liefern Seite 7
8. Projektmanagement und Software-Qualität 8.2 Software-Qualität "Software-Qualität ist ist die die Gesamtheit der der Merkmale und und Merkmalswerte eines eines Software-Produkts, die die sich sich auf auf dessen dessen Eignung beziehen, festgelegte oder oder vorausgesetzte Erfordernisse zu zu erfüllen." DIN DIN ISO ISO 9126 9126 Techniken zur Qualitätskontrolle Software (bei vorliegender Spezifikation): Test Code-Review mathematische Verifikation Spezifikation: formale Konsistenzprüfung Review Gesamtprojekt: Projektprüfung (audit) Entwicklungsprozess: Qualitäts-Audit Zertifizierung (z.b. nach DIN/ISO 9000, CMM, SPICE) Seite 8
Integration und Test Methoden- Test Integration Klassen- Test So früh wie möglich testen! Nur getestete Bestandteile in komplexeren Tests einsetzen! Tests unabhängig von der Implementierung entwickeln! Subsystem- Test System- Test Akzeptanz- Test 8. Projektmanagement und Software-Qualität 8.3 Teamarbeit Menschen machen Projekte. Ernst Denert Seite 9
Organisationsformen Funktionsorganisation (Linienorganisation): Entwicklung Systemplanung Software- Entwicklung Proj.1 Proj.2 Proj.1 Proj.2 Projektteam-Organisation: Entwicklung Mischform: Matrix-Organisation Projekt 1 Projekt 2 Systemplanung Software- Entw. Systemplanung Software- Entw. Teamzusammenstellung Regeln für Teamproduktivität: Optimale Teamgröße: ca. 5-7 Personen Gemischte Qualifikationen Team von externer Kommunikation entlastet Große Projekte aus vielen Teams zusammengesetzt Harlan Mills / Baker 1972: Chefprogrammierer-Struktur Chef- Programmierer Stellvertreter Spezialisten & Bibliothekar Seite 10
Sitzungen und Protokolle Treffen/Sitzungen benötigen klar definierte Ziele (Tagesordnung) müssen durch knappe Ergebnisprotokolle dokumentiert werden Typische Gliederung eines Ergebnisprotokolls: Name der Sitzung Teilnehmer, Moderator, Ort, Zeit Tagesordnung Standard-Tagesordnungspunkte: Protokollkontrolle Bericht über den erreichten Stand Einzelaufgaben Nächster Termin Ergebnisse» gegliedert nach Tagesordnungspunkten (TOPs) Einzelaufgaben (Action Items) Einzelaufgabe (action item, action point) besteht aus: Lfd. Nr. Verantwortliche Person Kurztitel Beschreibung Ursprung (Sitzung, auf der Aufgabe definiert wurde) Termin Status (offen, verlängert, erledigt) Liste der Einzelaufgaben wird bei jedem Treffen durchgegangen und aktualisiert: Welche Aufgaben sind fällig? Was ist das Ergebnis? Was ist weiter zu tun?» Termin verlängern» Neue Aufgaben definieren Seite 11
Teamgeist und Technologie Seit 1977 erstellen wir jedes Jahr einen Überblick über Entwicklungsprojekte und deren Ergebnisse. [...] Wir haben nun über 500 Projektgeschichten gesammelt. Wir beobachten, daß etwa 15% der Projekte scheitern. [...] Bei der überwältigenden Mehrzahl der untersuchten gescheiterten Projekte gab es keinen erkennbaren technologischen Grund für das Scheitern. Tom DeMarco & Tim Lister: "Peopleware" (deutsch: "Wien wartet auf Dich.") Seite 12