Projekt

Werbung
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
Herunterladen