Einführung in die SoftwaretechnikProjektmanagement
Klaus Ostermannmit Folien von Christian Kästner
1 Einführung in die Softwaretechnik
Agenda
Einführung in die Softwaretechnik2
Aufgaben des Projektmanagements
Projektplanung
Projektzeitplan
Reagieren auf Terminprobleme
Risikomanagement
Definitionen
Einführung in die Softwaretechnik4
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
Übersicht
Einführung in die Softwaretechnik5
Idee Definition Entwurf Realisierung
Erprobung Einsatz Produkt
Prozess
Projekt
Projekt – Konstituierende Merkmale
Einführung in die Softwaretechnik6
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
Komplexes Vorhaben, besonderes Risiko (durch Einmaligkeit)
Koordination von Fachleuten aus verschiedenen Bereichen
Softwareprojekte
Einführung in die Softwaretechnik7
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
Charakteristika von Projekten
Einführung in die Softwaretechnik8
Projektdauer
von wenigen Monaten bis mehreren Jahren
Projektdauer ist steuerbar (z.b. Anzahl Mitarbeiter)
Projektgroesse
Projektgroesse Mitarbeiter Bearbeiterjahre Mio. Euro
Sehr klein < 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
Sehr gross > 150 > 500 > 100
Projektmanagement
Einführung in die Softwaretechnik9
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
Projektplanung - Übersicht
Einführung in die Softwaretechnik11
Randbedingungen klären
Projektparameter einschätzen
Meilensteine definieren
Projektzeitplan aufstellen
… Aktivitäten beginnen …
Fortschritt überprüfen
Projektparameter neu einschätzen
Zeitplan überarbeiten
ggf. Randbedingungen nachverhandeln
Technisches Review
Probleme?
nein
ja
Fertig?ja
nein
ggf. Abbruch
Budget,Personal,Endtermin
neueKunden-wünsche
Projektplan
Einführung in die Softwaretechnik12
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
Meilensteine und Lieferschritte
Einführung in die Softwaretechnik13
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
Ähnlich Meilenstein, aber für Kunden
Berichte, Prototypen, fertige Teilsysteme
Projektorganisation
Einführung in die Softwaretechnik14
Stabs-Projektorganisation hierarchisch, in Abteilungen
gegliedert
starre Organisationsstruktur im Unternehmen
Matrix-Projektorganisation Abteilungs- und Projektleitung
werden formal voneinander getrennt.
flexibel bzgl. der Projektstruktur
Reine Projektorganisation nur Projekte und eine Zentral-
abteilungaus „Grundzüge des Projektmanagment: zingel.de“
Projektleiter
Einführung in die Softwaretechnik15
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
Zeitplanung des Projektmanagers
Einführung in die Softwaretechnik17
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
Zeitplanung am Beispiel
Einführung in die Softwaretechnik18
Arbeitspaket Dauer in Tagen Abhaengigkeiten
T1 8
T2 15
T3 15 T1
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
Was ist die minimale Projektdauer?
Netzplan
Einführung in die Softwaretechnik19
Meilenstein
Arbeitspaket
Auch hierarchischer Aufbau möglich
Kritischer Pfad
Einführung in die Softwaretechnik20
Längster Pfad im Netzplan
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
Beispiel: Kritischer Pfad: 55 TagePuffer T8: 20 Tage
Aufteilung auf Ressourcen
Einführung in die Softwaretechnik22
insb. Personal
ggf. externe Spezialisten
Erstellen von Zeitplänen
Einführung in die Softwaretechnik24
Manuelles Vorgehen
z.b. MPM (Metra-Potential-Methode)
kombiniert Vorwärts-und Rückwärts-terminierung
ermittelt Puffer
Softwareunterstützung üblich
MS Project, GanttProject, uvm.
Terminprobleme
Einführung in die Softwaretechnik26
Fehler in der Zeitplanung sind normal! -> Regelmäßige Aktualisierung
Terminprobleme erkennen
Einführung in die Softwaretechnik28
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
Meilensteintrendanalyse
Einführung in die Softwaretechnik29
Erhebungszeitpunkt
geschätzterFertigstellungs-termin
•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
Ursachen für Terminprobleme
Einführung in die Softwaretechnik30
Personalmangel (Krankheit, Fluktuation, …)
Fehlende Qualifikation,
Unvorhergesehene Schwierigkeiten
Unrealistische Aufwandsabschätzungen
Nicht bedachte Abhängigkeiten
Zusätzliche Leistungsanforderungen
Typisch bei Studentenprojekten:
Überraschende Prüfungszeit
Ungleichmäßige Arbeitsverteilung
Einarbeitungszeit unterschätzt
Potentielle Maßnahmen
Einführung in die Softwaretechnik31
Einsatz von zusätzlichem Personal insb. hochqualifiziertes Personal für spezielle Aufgaben
Temporäres Erhöhen der Arbeitszeit (Überstunden, Urlaubssperre) nur kurzfristig möglich
Verbesserter Tool- und Methodeneinsatz
Optimierung der Arbeitsabläufe
Fremdvergabe
Geringerer Leistungsumfang Prioritäten vergeben, inkrementelles Ausliefern
Fertigstellungstermin verschieben
Nicht: Weniger Testen/Qualitätskontrolle
Teamproduktivität
Einführung in die Softwaretechnik32
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
Kommunikationsoverhead
Fast-schon-fertig-Syndrom
Einführung in die Softwaretechnik33
Letzten 10 % der Arbeit -> 40 % der Zeit
Fortschritt messbar machen
Nicht nur auf Schätzungen des Entwicklers verlassen
Risikomanagement
Einführung in die Softwaretechnik35
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 z.B. Entwickler krank/kündigt
Produktrisiken: Qualität und Leistung der Software z.B. gekaufte Komponente zu langsam
Wirtschaftliche Risiken z.B. Mitbewerber führt vergleichbares Produkt ein
Risiken
Einführung in die Softwaretechnik36
Risiko Art Beschreibung
Personalveränderung Projekt Erfahrenes Personal verläßt das Projekt vorzeitig, Krankheit
Managementveränderung Projekt Neues Management mit anderenPrioritäten
Hardware/Software nichtverfügbar
Projekt Zulieferung unverzichtbarerHardware/Software unpünktlich
Änderung von Anforderungen
Projekt und Produkt Mehr Änderungen als erwartet
Verzögerung in Spezifikation
Projekt und Produkt Wichtige Schnittstellen nichtrechtzeitig bekannt
Unterschätzung des Umfangs
Projekt und Produkt
Technologieveränderung Wirtschaftlich Neue Technologie verdrängtbenutzte
Produktkonkurrenz Wirtschaftlich Konkurenzprodukt vorher auf demMarkt
Ablauf des Risikomanagements
Einführung in die Softwaretechnik37
Risikoerkennung Risikoanalyse RisikoplanungRisikoüber-wachung
Liste potentieller Risiken
Priorisierte List der Risiken
Risikovermeidung und Notfallpläne
Risikobewertung
Risikoerkennung
Einführung in die Softwaretechnik38
Teamarbeit, Ideensammlung, Checklisten
Beispiele
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
Risikoanalyse
Einführung in die Softwaretechnik39
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
Risikoplanung
Einführung in die Softwaretechnik40
Vermeidungsstrategien (Risiko vermeiden)
Minimierungsstrategien (Konsequenzen minimieren)
Notfallpläne
-> Erfahrung des Projektleiters nötig
Beispiele: 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
Typische Strategien im Risikomanagement
Einführung in die Softwaretechnik41
früh Prototypen entwickeln
Inkrementelle Entwicklung
Gutes Personal rekrutieren
Teambildende Maßnahmen
Wiederverwendung, Komponenten einkaufen
Zusammenfassung
Einführung in die Softwaretechnik43
Projektmanagement zentral für Erfolg des Projekts
Plant, koordiniert, und prüft
Ständige Anpassung nötig
Risiken erkennen und planen
Weiterführende Literatur
Sommerville (2007): Software Engineering. 8 Aufl., Pearson.
Burghardt, M. (1997): Projektmanagement: Leitfaden für die Planung, Überwachung und Steuerung von Entwicklungsprojekten. 4. Aufl., Erlangen.