Einführung in die Softwaretechnik Projektmanagement Klaus Ostermann mit Folien von Christian Kästner 1 Einführung in die Softwaretechnik Agenda Aufgaben des Projektmanagements Projektplanung Projektzeitplan Reagieren auf Terminprobleme Risikomanagement 2 Einführung in die Softwaretechnik Aufgaben des Projektmanagements 3 Einführung in die Softwaretechnik Definitionen Produkt: Ergebnis eines Tätigkeitsvorhabens, z.B. Hardware, Schriftstück, Program, Dienstleistung Projekt: Zielorientiertes Vorhaben zur Erstellung eines Produktes Prozess: Das eigentliche Vorgehen im Projekt zur Erstellung des Produktes Projektmanagement: Die Gesamtheit von Führungsaufgaben, Führungsorganisation, Führungstechniken und –mitteln, für die Abwicklung eines Projekts – DIN 69901 4 Einführung in die Softwaretechnik Übersicht Idee Definition Entwurf Realisierung Erprobung Einsatz Prozess Projekt 5 Einführung in die Softwaretechnik Produkt Projekt – Konstituierende Merkmale Einmaliges Vorhaben – einmalig in Bezug auf: Zielvorgabe zeitliche, finanzielle, personelle, oder andere Begrenzungen Abgrenzung gegenüber anderen Vorhaben projektspezifische Organisation Zeitlich begrenzt – Start- und Endtermin Klare Zieldefinition Begrenzung – Festes Budget, beschränkte Ressourcen Besondere Führungsaufgabe 6 Komplexes Vorhaben, besonderes Risiko (durch Einmaligkeit) Koordination von Fachleuten aus verschiedenen Bereichen Einführung in die Softwaretechnik Softwareprojekte Software-Entwicklung hat immer Projektcharakter Neuartige / einzigartige Ziele, technisch innovativ Das Ergebnis ist nicht greifbar – Fortschritt schwer erkennbar Softwareprojekte scheitern häufiger als andere Industrieprojekte 7 Einführung in die Softwaretechnik Charakteristika von Projekten Projektdauer von wenigen Monaten bis mehreren Jahren Projektdauer ist steuerbar (z.b. Anzahl Mitarbeiter) Projektgroesse Projektgroesse Sehr klein Bearbeiterjahre Mio. Euro <3 < 0.4 < 0.1 Klein 3 – 10 0.4 – 5 0.1 – 1 Mittel 10-50 5 – 50 1 – 10 Gross 50 – 150 50 – 500 10 – 100 > 150 > 500 > 100 Sehr gross 8 Mitarbeiter Einführung in die Softwaretechnik Projektmanagement Aufgabe Erstellung des Angebots / Projektantrags Projekt- und Zeitplanung Projektkostenkalkulation Projektüberwachung Auswahl und Beurteilung des Personals Präsentation und Erstellen von Berichten Projektmanagement verursacht Kosten “Kann ich es mir leisten, kein Projektmanagement zu haben?” Je größer das Projekt, desto wichtiger das Management 9 Einführung in die Softwaretechnik Projektplanung 10 Einführung in die Softwaretechnik Projektplanung - Übersicht Randbedingungen klären Fortschritt überprüfen Budget, Personal, Endtermin Fertig? Projektparameter einschätzen Meilensteine definieren Projektzeitplan aufstellen nein Projektparameter neu einschätzen … Aktivitäten beginnen … nein Zeitplan überarbeiten Probleme? ja ggf. Abbruch 11 ggf. Randbedingungen nachverhandeln Technisches Review Einführung in die Softwaretechnik ja neue Kundenwünsche Projektplan Einführung: Ziele und Randbedingungen festlegen (Pflichtenheft) Projektorganisation: Personen, Rollen, Teams Risikoanalyse: Beschreibung und Bewertung von Risiken Arbeitsaufteilung, Verantwortlichkeiten, Weisungsbefugnisse Projektzeitplan: Wer, wann, was? Meilensteine Überwachungs- und Berichterstattungsinstrumente: Wann und wie wird geprüft und berichtet? Der Projektplan wird während des Projekts angepasst 12 Einführung in die Softwaretechnik Meilensteine und Lieferschritte Fortschritt greifbar machen (gerade bei Software) Meilenstein: erkennbarer Endpunkt einer Teilaufgabe Für Projektmanager Berichte, Prototypen, fertige Teilsysteme “Entwicklung zu 80% abgeschlossen” kein geeigneter Meilenstein Lieferschritt: Projektresultat für Kunden 13 Ähnlich Meilenstein, aber für Kunden Berichte, Prototypen, fertige Teilsysteme Einführung in die Softwaretechnik Projektorganisation Stabs-Projektorganisation Matrix-Projektorganisation hierarchisch, in Abteilungen gegliedert starre Organisationsstruktur im Unternehmen Abteilungs- und Projektleitung werden formal voneinander getrennt. flexibel bzgl. der Projektstruktur Reine Projektorganisation nur Projekte und eine Zentralabteilung aus „Grundzüge des Projektmanagment: zingel.de“ 14 Einführung in die Softwaretechnik Projektleiter Vertritt das Projekt nach Außen Verantwortlich für den Erfolg des Projekts Verantwortlich für Projektplanung und –Kontrolle Führen von Projektmitarbeitern Koordinieren von Partnerstellen Moderieren von Beratungs- und Steuerungsgremien, Kontakt zum Kunden 15 Einführung in die Softwaretechnik Zeitplanung 16 Einführung in die Softwaretechnik Zeitplanung des Projektmanagers Zerlegt Projekt in Arbeitspakete (Dauer 1 bis 10 Wochen) Schätzt Zeiten und Ressourcen Erstellt sinnvolle Reihenfolge und Parallelität Zeitpuffer einplanen, eventuelle Probleme berücksichtigen Softwareunterstützung hilfreich, z.b. Microsoft Project, GanttProject, Kplato, uvm. Erfahrung zum Schätzen notwendig Trotzdem schwierig durch Neuartigkeit des Projekts und schnell wechselnde Technologie 17 Einführung in die Softwaretechnik Zeitplanung am Beispiel Arbeitspaket Dauer in Tagen T1 8 T2 15 T3 15 T4 10 T5 10 T2, T4 T6 5 T1, T2 T7 20 T1 T8 25 T4 T9 15 T3, T6 T10 15 T5, T7 T11 7 T9 T12 10 T11 18 Abhaengigkeiten T1 Was ist die Einführung minimaleinProjektdauer? die Softwaretechnik Netzplan Arbeitspaket Auch hierarchischer Aufbau möglich 19 Meilenstein Einführung in die Softwaretechnik Kritischer Pfad Längster Pfad im Netzplan Beispiel: Kritischer Pfad: 55 Tage Puffer T8: 20 Tage Verzögerung vom Paketen auf kritischem Pfad -> Gesamtverzögerung Dort besonders genau planen Zeiten ggf. verkürzen durch Projektaufgaben umstrukturieren; auch später Andere Pakete ggf. unkritisch, berechenbarer Puffer 20 Einführung in die Softwaretechnik Gantt-Diagramm 21 Einführung in die Softwaretechnik Aufteilung auf Ressourcen insb. Personal ggf. externe Spezialisten 22 Einführung in die Softwaretechnik Exkurs: Kapazitätsplanung 23 Einführung in die Softwaretechnik Erstellen von Zeitplänen Manuelles Vorgehen z.b. MPM (Metra-Potential-Methode) kombiniert Vorwärtsund Rückwärtsterminierung ermittelt Puffer Softwareunterstützung üblich 24 MS Project, GanttProject, uvm. Einführung in die Softwaretechnik Reagieren auf Terminprobleme 25 Einführung in die Softwaretechnik Terminprobleme Fehler in der Zeitplanung sind normal! -> Regelmäßige Aktualisierung 26 Einführung in die Softwaretechnik Terminprobleme II Real Geplant 27 Einführung in die Softwaretechnik Terminprobleme erkennen Kontrolle nötig, formales Rückmeldewesen Wer, wann, was klar festlegen Plan-Ist-Vergleich Messbare Meilensteine! Nicht-aktuelle Pläne: kein Wert als Führungsinstrument 28 Einführung in die Softwaretechnik Meilensteintrendanalyse Erhebungszeitpunkt geschätzter Fertigstellungstermin 29 •Extrem ansteigend: •zu optimistische Schätzungen •Trendwende: •frühe Schätzungen unbrauchbar •Zick-Zack-Verlauf: •Große Unsicherheit in Terminaussagen •Gleichmäßig fallend •Zu große Puffer Einführung in die Softwaretechnik Ursachen für Terminprobleme Personalmangel (Krankheit, Fluktuation, …) Fehlende Qualifikation, Unvorhergesehene Schwierigkeiten Unrealistische Aufwandsabschätzungen Nicht bedachte Abhängigkeiten Zusätzliche Leistungsanforderungen Typisch bei Studentenprojekten: 30 Überraschende Prüfungszeit Ungleichmäßige Arbeitsverteilung Einarbeitungszeit unterschätzt Einführung in die Softwaretechnik Potentielle Maßnahmen Einsatz von zusätzlichem Personal Temporäres Erhöhen der Arbeitszeit (Überstunden, Urlaubssperre) nur kurzfristig möglich Verbesserter Tool- und Methodeneinsatz Optimierung der Arbeitsabläufe Fremdvergabe Geringerer Leistungsumfang insb. hochqualifiziertes Personal für spezielle Aufgaben Prioritäten vergeben, inkrementelles Ausliefern Fertigstellungstermin verschieben Nicht: Weniger Testen/Qualitätskontrolle 31 Einführung in die Softwaretechnik Teamproduktivität Mythos: “Wenn wir in Verzug sind, holen wir einfach weitere Entwickler mit ins Projekt und holen das auf” Realität: Späte Projekte werden in der Regel später durch mehr Entwickler 32 Kommunikationsoverhead Einführung in die Softwaretechnik Fast-schon-fertig-Syndrom Letzten 10 % der Arbeit -> 40 % der Zeit Fortschritt messbar machen Nicht nur auf Schätzungen des Entwicklers verlassen 33 Einführung in die Softwaretechnik Risikomanagement 34 Einführung in die Softwaretechnik Risikomanagement Zentrale Aufgabe des Projektmanagements Risiken so früh wie möglich erkennen und bewerten ggf. Maßnahmen zur Vermeidung planen Ergebnisse der Risikoanalyse im Projektplan dokumentiert Projektrisiken: Zeitplan und Ressourcen Produktrisiken: Qualität und Leistung der Software z.B. Entwickler krank/kündigt z.B. gekaufte Komponente zu langsam Wirtschaftliche Risiken 35 z.B. Mitbewerber führt vergleichbares Produkt ein Einführung in die Softwaretechnik Risiken Risiko Art Beschreibung Personalveränderung Projekt Erfahrenes Personal verläßt das Projekt vorzeitig, Krankheit Managementveränderung Projekt Neues Management mit anderen Prioritäten Hardware/Software nicht verfügbar Projekt Zulieferung unverzichtbarer Hardware/Software unpünktlich Änderung von Anforderungen Projekt und Produkt Mehr Änderungen als erwartet Verzögerung in Spezifikation Projekt und Produkt Wichtige Schnittstellen nicht rechtzeitig bekannt Unterschätzung des Umfangs Projekt und Produkt Technologieveränderung Wirtschaftlich Produktkonkurrenz Wirtschaftlich 36 Neue Technologie verdrängt benutzte Konkurenzprodukt vorher auf dem Einführung in die Softwaretechnik Markt Ablauf des Risikomanagements Risikoerkennung Risikoanalyse Risikoplanung Risikoüberwachung Liste potentieller Risiken Priorisierte List der Risiken Risikovermeidung und Notfallpläne Risikobewertung 37 Einführung in die Softwaretechnik Risikoerkennung Teamarbeit, Ideensammlung, Checklisten Beispiele 38 Technologische Risiken: langsame Datenbank, fehlerhafte Komponente Personenbezogene Risiken: Krankheit, unqualifiziertes Personal Unternehmensbezogene Risiken: Managementwechsel Risiken durch Werkzeuge: Code-Generator ineffizient Anforderungsrisiken: Kunde versteht Konsequenzen von Anforderungsänderungen nicht Schätzrisiken: Anzahl der Fehlerbehebungen wird unterschätzt Einführung in die Softwaretechnik Risikoanalyse Schätzung von Wahrscheinlichkeit und Auswirkungen Erfahrung des Projektleiters nötig Grobe Skalen reichen gering (<10%), niedrig (<25%), mittel (<50%), hoch (<75%), sehr hoch katastrophal, ernst, tolerierbar, unbedeutsam Fokus auf die Top-10-Risiken 39 Einführung in die Softwaretechnik Risikoplanung Vermeidungsstrategien (Risiko vermeiden) Minimierungsstrategien (Konsequenzen minimieren) Notfallpläne -> Erfahrung des Projektleiters nötig Beispiele: 40 Kundenakzeptanz unklar: Prototyp entwickeln Krankheit des Personals: Überschneidungen bei Arbeiten einplanen, Abhängigkeiten vermeiden Datenbankleistung: Andere Datenbank kaufen Finanzielle Probleme des Unternehmens: Zusammenfassung an Management vorbereitet die Beitrag des Projekts erklärt Einführung in die Softwaretechnik Typische Strategien im Risikomanagement früh Prototypen entwickeln Inkrementelle Entwicklung Gutes Personal rekrutieren Teambildende Maßnahmen Wiederverwendung, Komponenten einkaufen 41 Einführung in die Softwaretechnik Zusammenfassung Projektmanagement zentral für Erfolg des Projekts Plant, koordiniert, und prüft Ständige Anpassung nötig Risiken erkennen und planen Weiterführende Literatur 43 Sommerville (2007): Software Engineering. 8 Aufl., Pearson. Burghardt, M. (1997): Projektmanagement: Leitfaden für die Planung, Überwachung und Steuerung von Entwicklungsprojekten. 4. Aufl., Erlangen. Einführung in die Softwaretechnik