Projektmanagement: Eine Einführung 3. Februar 2015 Überblick Welche wesentlichen Projektaufgaben gibt es? Wie sollte eine ideale Projektführung aussehen? Wie plant man ein Projekt? Meilensteine Arbeitspakete Wie sollte ein Projekt überwacht werden? Wie können die Kosten eines neuen Softwareprojekts abgeschätzt werden? Einführung in die Use Case Point Analyse Taentzer Einführung in die Softwaretechnik 415 Projektbeteiligte Projektmanager ist verantwortlich für die Initialisierung, Vertretung (nach außen), Koordination und wirtschaftliche Abwicklung von (i.a. mehreren) Projekten Projektleiter ist verantwortlich für den technischen und ökonomischen Erfolg eines Projektes Projekt-Team umfasst alle Personen, die zu einem gegebenen Zeitpunkt unter Aufsicht der Projektleitung an Aufgaben arbeiten, die der Erreichung der Projektziele dienen. Taentzer Einführung in die Softwaretechnik 416 Aufgaben der Projektführung gegenüber (externen) Auftraggeber(n): - Projekt vertreten, finanziell absichern, Interessen des Teams wahren - Wünsche, Rückmeldungen des Auftraggebers / der Benutzer erkennen und aufnehmen - Mögliche Schwierigkeiten rechtzeitig erkennen und beseitigen bzw. neutralisieren - Projekt abschließen, über das Projekt berichten gegenüber (interner) Umgebung: - Ressourcen und geeignete Arbeitsbedingungen bereitstellen - Projekt vor Störungen schützen, Ressourcen sichern gegenüber dem Projektteam: - Projekt planen, steuern, koordinieren - für gute Qualität der Produkte und Herstellungsprozesse sorgen - informiert sein und informieren, für Kommunikation sorgen - Mitarbeiter motivieren, für gutes Arbeitsklima sorgen Taentzer 417 Anforderungen an die Projektführung Projekte zu führen, stellt hohe persönliche, technische und soziale Anforderungen an die damit betrauten Personen. Grundsätzliche Anforderungen ergeben sich aus den allgemeinen Zielsetzungen für die Projektführung: Taentzer Technische Kompetenz Qualitätsbewusstsein Kostenbewusstsein Zuverlässigkeit Organisationstalent Verhandlungsgeschick ... Einführung in die Softwaretechnik 418 Empfohlene Arbeitsweise von Projektleitern Moderieren statt herrschen Vernetzt denken und handeln statt singulär ganzheitliche Sichtweise, nicht gruppenorientiert innovativ arbeiten, nicht konventionell Generalist statt Spezialist ziel- nicht karriereorientiert kommunikativ aus „Grundzüge des Projektmanagement: zingel.de“ Taentzer Einführung in die Softwaretechnik 419 Formen der Projektorganisation 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 Zentralabteilung aus „Grundzüge des Projektmanagement: zingel.de“ Taentzer Einführung in die Softwaretechnik 420 Projektorganisation Zur Projektorganisation gehören u.a. die folgenden Aufgaben: Auswahl und Zuschnitt eines Vorgehensmodells Iterationsplanung Planung einzelner Phasen und Tätigkeiten Bildung von Arbeitspaketen Zuordnung von Mitarbeitern zu den Arbeitspaketen Termin- und Aufwandsplanung Planung von Meilensteinen Einrichten der Werkzeugumgebung Taentzer Einführung in die Softwaretechnik 421 Arbeitspakete Ein Arbeitspaket ist die Gesamtheit der Tätigkeiten, die erforderlich sind, um ein bestimmtes definiertes Ergebnis zu erstellen. Arbeitspakete: .. sind charakterisiert durch • einen Arbeitsgegenstand (z.B. ein Klassenmodell oder eine Systemkomponente) • eine Aktivität oder eine Reihe von Aktivitäten, die an einem Gegenstand durchzuführen sind, z.B. "Modul spezifizieren" , " Klasse in Code umsetzen" oder "Subsystem testen" .. sind so zu bilden, dass • sie von einzelnen Mitarbeitern oder von einem kleinen Team selbständig in überschaubarer Zeit bewältigt werden können, • sie in ihrer Gesamtheit die vorgegebene Aufgabenstellung vollständig abdecken und • keine Redundanzen entstehen, d.h. keine Arbeitsschritte mehrfach vorkommen. Taentzer Einführung in die Softwaretechnik 422 Bildung von Arbeitspaketen: anwendungsfall- oder tätigkeitsorientiert? Anwendungsfälle Anforderungen festlegen Spezifizieren Entwerfen Programmieren Testen ... System Komponente A Anwendungsfall AA Anwendungsfall AB . . . Komponente B Taentzer Einführung in die Softwaretechnik 423 Mögliche Risiken Personalveränderungen Veränderungen im Management Hardware-Engpässe Anforderungsänderungen Spezifikationsverzögerungen Unterschätzung des Aufwands unzureichende Entwicklungswerkzeuge Technologieänderungen Produktkonkurrenz Taentzer Einführung in die Softwaretechnik 424 Termin- und Aufwandsplanung Einflussfaktoren für die Termin- und Aufwandsplanung: Externe Abhängigkeiten (z.B. Zulieferungen, Entscheidungen, Bestätigungen) Logische Abhängigkeiten (der Tätigkeiten untereinander) Abhängigkeiten von (internen) Ressourcen und Dienstleistungen Arbeitsaufwand für die einzelnen Arbeitspakete und Tätigkeiten Aufwandsschätzung Aufwand für die einzelnen Arbeitspakete, Phasen und das Gesamtprojekt schätzen Planungsaufgaben Für die Arbeitspakete Start-, Endtermine und Aufwände planen Meilensteine (=definierte Prüf- und Entscheidungspunkte im Projektverlauf) planen Den Arbeitspaketen Mitarbeiter(-gruppen) zuordnen Taentzer Einführung in die Softwaretechnik 425 Methoden zur Aufwandsschätzung Analogiemethode: Schätzung analog zu früheren, abgeschlossenen Projekten Multiplikatormethode: Zerlegung des Systems in n Teilprodukte Relationsmethode: wie Analogiemethode, aber mit festen Richtlinien und Bewertungsfaktoren Gewichtungsmethode: Weiterentwicklung der Multiplikatormethode Prozentsatzmethode: Hochrechnung des Aufwands für eine bereits abgeschlossene Phase auf die restlichen Phasen Netzplanmethode: Darstellung des Projektverlaufs als Netzplan Spezielle Verfahren zur Aufwandsschätzung von SW-Projekten: • Function Point (IBM, 1979) • COCOMO (Boehm 1981 / 1995) • Object Point (Sneed 1994) • Use Case Point (Rational 1999) Taentzer Einführung in die Softwaretechnik 426 Beispiel für einen Netzplan aus „lehrerfortbildung-bw.de“ Taentzer Einführung in die Softwaretechnik 427 Projektplanung Ausarbeitung eines Netzplans: Identifikation der Aufgaben (Arbeitspakete) Abschätzung der Dauer jeder einzelnen Aufgabe Festlegung der frühesten Anfangs- und Endzeitpunkte für eine Aufgabe (FAZ und FEZ) Festlegung der spätesten Anfangs- und Endzeitpunkte für eine Aufgabe (SAZ und SEZ) Ermittlung einer möglichen Verzögerungszeit für eine Aufgabe (Puffer) Gesamtpuffer (GP): Zeit, um die eine Aktivität geschoben werden kann, ohne dass die späten Termine der Nachfolger betroffen sind Freier Puffer (FP): Zeit, um die eine Aktivität geschoben werden kann, ohne die frühesten Termine der Nachfolger zu beeinflussen Kritischer Pfad: Pfad durch das Netz ohne Pufferzeiten Taentzer Einführung in die Softwaretechnik 428 Projektdokumentation Zwecke eines Projektberichts: Übersicht der durchgeführten Projektarbeiten wichtiges Instrument des innerbetrieblichen Informationsflusses Ressourcen- und Zeitkontrolle Grundlage der Projektsteuerung Grundlage zur Planung weiterer Projekte Internes und externes Berichtwesen: Extern: Grundlage für die Rechnungslegung Intern: Protokollierung der gelebten Projektdurchführung Taentzer Einführung in die Softwaretechnik 429 Zu guter Letzt: Murphy‘s Law in der Projektarbeit aus „www.vera-naumann.de“ 1. Nichts ist so einfach, wie es aussieht. 2. Alles braucht länger als Sie erwarten. 3. Wenn etwas immer wieder wunderbar funktioniert, solange keine hierarchisch hochgestellte Person anwesend ist, dann wird es in dem Moment schiefgehen, wo der oder die Auftraggeber/in anwesend ist. In Anwesenheit der höchstgestellten Person der gesamten Organisation wird es völlig aussetzen. 4. Wenn man die Dinge sich selbst überlässt, werden sie immer schlechter. 5. Wenn alles gutgeht, haben Sie offensichtlich etwas übersehen. 6. Wenn Sie vier Möglichkeiten gefunden haben, um ein mögliches Problem zu vermeiden, dann wird wahrscheinlich ein fünfter Weg erscheinen, auf dem es doch schiefgehen kann. Taentzer Einführung in die Softwaretechnik 430 Zu guter Letzt: Murphy‘s Law in der Projektarbeit - 2 aus „www.vera-naumann.de“ 7. Die Natur ist immer auf der Seite der versteckten Schäden. 8. Es ist unmöglich, etwas narrensicher zu machen, weil Narren so erfinderisch sind. 9. Wenn viel Zeit damit verbracht wurde, eine Antwort auf eine offenbar unlösbare Frage zu finden, dann wird die Lösung von der ersten unqualifizierten Person kommen, die sich das Problem anschaut. 10. Unter Druck werden die Dinge noch schlimmer. 11. Wenn etwas irgendwo schiefgeht, ist es wahrscheinlich, dass es überall schiefgeht. 12. Wann immer Sie etwas tun wollen, gibt es etwas, das Sie vorher tun müssen (und davor noch etwas). Taentzer Einführung in die Softwaretechnik 431 Zusammenfassung Der Projektmanager vertritt ein Projekt nach Außen. Der Projektleiter ist verantwortlich für den Erfolg eines Projektes (nach Innen). Die Aufgaben eines Projektleiters unterscheiden sich essentiell von den eines Entwicklers. Wesentliche Aufgaben der Projektleitung: Projektplanung, inkl. Bereitstellung der Ressourcen, Risiko- und Kostenabschätzung, Projektdurchführung und –dokumentation Basismethode zur Zeitabschätzung: Netzplanmethode Spezielle Methoden zur Aufwandsschätzung von SoftwareProjekten: Function Point, Use Case Point, etc. Taentzer Einführung in die Softwaretechnik 432 Literatur Eclipse Development Process, www.eclipse.org/projects/dev_process/ T DeMarco, T. Lister , P. Hruschka: Wien wartet auf Dich!, Hanser Verlag, 2014 S. Frohnhoff, V. Jung, G. Engels: Use Case Points in der industriellen Praxis, www.cs.uni-paderborn.de/uploads/tx_sibibtex /Engels_Use_Case_Points_in_der_industriellen_Praxis.pdf S. Frohnhoff: Use Case Points 3.0: Implementierung einer Use Case bezogenen Schätzmethode für das Software-Engineering betrieblicher Informationssysteme, Dissertation, Universität Paderborn, 2009, digital.ub.uni-paderborn.de/hs/content/titleinfo/5490 H. Zingel, Grundzüge des Projektmanagement, www.zingel.de V. Naumann: Kommunikation & Organisation, www.vera-naumann.de/selbstorganisation-projekte3.htm Taentzer Einführung in die Softwaretechnik 433