Gliederung Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung Alexander Kuzmanovski 1 Björn Lohrmann 1 1 TU Berlin, Softwaretechnik April 23, 2008 Gliederung des Vortrags: Begriffe Projekt und Projektmanagement Wichtigste Projektphasen: Projekstart Projektplanung Projektdurchführung Arbeit im Team Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 1/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 2/28 Einführung Was zeichnet Projekte aus? Definierte Ziele Zeitliche Begrenztheit Teamarbeit Komplexität Einmaligkeit der Bedingungen (Ziele, Ressourcen, Umfeld,... ) Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 3/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 4/28
Einführung Typische Phasen eines Projektes: 1 Projektstart bzw. -etablierung 2 Projektplanung 3 Projektdurchführung 4 Projektabschluss (hier nicht näher betrachtet) Einführung Woraus besteht Projektmanagement? 1 Planung 2 3 Figure: Quelle:[HH06] Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 5/28 Figure: Quelle:[HH06] Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 6/28 Projektstart Ausgangssituation: Idee, etwas soll getan werden Aktivitäten der Projektstartphase: Ziele festlegen (Beginn Anforderungsanalyse) Technische und wirtschaftliche Machbarkeit (Recherche!) Grobe Projektplanung (Milestones und Deliverables ) Teams bilden, Kick-Off Meeting am Ende Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 7/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 8/28
Projektstart: Projektstart: Was sind? Was sollen die Ergebnisse sein? Was sind Bedingungen, die Ergebnisse erfüllen sollen? Priorisierung der Ziele Wichtige Aspekte von Zielen: Nachweisbarkeit/Messbarkeit Erreichbarkeit Dreieck Zeit, Kosten, Qualität An den Zielen wird der Projekterfolg gemessen! Zentrales Ergebnis Projektstart: Sorgt für einheitliches Wissen über Ziele, Ergebnisse und Vorgehensweise unter Beteiligten. Wichtige Bestandteile: Projektmotivation: Gründe für Durchführung Produkte und Projektergebnisse: bereits ermittelte Anforderungen, zu erzeugende Produkte (z.b. Programme, Handbücher), Übergabeform der Ergebnisse Projektplan Projektorganisation: Hierarchien, Teams, Verantwortlichkeiten, Projektkultur, Fortschrittskontrolle,... Mitwirkungspflichten des Auftraggebers Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 9/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 10/28 Planungsphase: Ausgangspunkt : Festgelegter Projektumfang Grober Plan mit Milestones und Deliverables Ziel: Detaillierter Plan für die nächsten Milestones Wichtigste Bestandteile Projektplan: (engl.: "work breakdown structure") Aktivitätenzeitplan Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 11/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 12/28
Planungsphase: Ein Meilenstein ist ein messbares, bedeutendes Projekt-Ereignis. Beispiel: Fertigstellung eines Deliverable, wie z.b. eines Prototyps oder Dokuments Planungsphase: Sukzessive Zerlegung von Deliverables und Aktivitäten (gemischt) Hierarchische Darstellung, Zerlegung endet bei handhabbaren "work packages" Vollständig: Enthält alle Projektaspekte Graphische Darstellung z.b. als Mindmap: Graphische Darstellung: 5.2) Anforderungsanalyse 5.2.1) Reviewtes Pflichtenheft 5.2.2) Anforderungstickets 5.2.3) Implementationstickets 5.3) Integrationstests 1) Projektmanagement 2) Konfigurationsmanagement 3) Qualitätssicherung 4) Testen Studenten Web-Client 5) 1. Prototyp 5.4) Systemtests 5.5) Debugging 5.6) Demo-Vorbereitung 5.7) Unit-Tests 5.8) Implementation 6) 2. Prototyp 7) 3. Prototyp Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 13/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 14/28 Planungsphase: Planungsphase: Aktivitätenzeitplan enthält alle Projektaktivitäten. Was ist ein work package? Zusammenfassung einer Reihe von Projektaktivitäten Hat einen geschätzen Aufwand Schätztechniken verwenden! Aufwand nicht zu klein ( Kontrollaufwand) und nicht zu groß ( Fortschrittskontrolle) Messbarer Fortschritt ( Fortschrittskontrolle) Beispiel: 5.2.1) Reviewtes Pflichtenheft Erstellungsschritte: 1 PSP work package eine/mehrere Aktivität(en) 2 Abhängigkeiten: Welche Aktivität hängt von einer anderen ab? 3 Aufwände: Welchen Aufwand verursacht eine Aktivität (z.b. Arbeitsstunden) 4 Ressourcen: Wer erledigt die Aktivität? Benötigtes Arbeitsmaterial? Schritte werden ggf. iteriert bis Terminziele erfüllt Verbreitete Zeitplanungstechniken: Balkendiagramme (engl. Gantt-Chart) Netzplantechnik (hier nicht betrachtet) Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 15/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 16/28
Planungsphase: Balkendiagramme (engl. Gantt-Chart): Aktivitäten als Balken auf Zeitleiste Abhängigkeiten als Pfeile Eigenschaften: einfach, meist übersichtlich, niedrigere Informationsdichte als Netzplan Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 17/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 18/28 Projektdurchführung: Aktivitäten hier: Planungsverfeinerung- und anpassung : Fortschrittskontrolle, ein guter Plan liefert vernünftige Sollwerte : Reaktion auf Probleme Projektdurchführung: Hauptinstrument: Fortschrittsüberwachung Aktivitätenebene: Werden die Aktivitäten im Zeitplan abgearbeitet? Stimmt die Qualität? Überprüfung z.b. in Meetings oder mittels schriftlicher Reports Projektebene: Verdichtung der Ergebnisse aus der Aktivitätenebene für Projektleiter, oberes Management und/oder den Kunden. Meist schriftlich. Wechselwirkung der mit anderen Aktivitäten: Stößt saktivitäten an. Bsp.: Anpassungen im Plan Programm-Feature weglassen Mehr/weniger Testen Figure: Quelle:[HH06] Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 19/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 20/28
Projektdurchführung: Je nach Problem kann steuernd eingegriffen werden. Beispiele: Terminproblem Lsg-Bsp.: Überlappung von Aktivitäten, Verlängerung mit Auftragsgeber aushandeln Funktionalitätsproblem Lsg-Bsp.: Projektexterne Experten, Zukauf von fertigen Fremdkomponenten Qualitätsproblem Lsg-Bsp.: Verstärktes Testen Alle Lösungansätze bieten Chancen und Risiken Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 21/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 22/28 Arbeiten in Teams: Arbeiten in Teams: Wichtige soziale Kompetenzen bei Teamarbeit: Wichtige soziale Kompetenzen bei Teamarbeit: Kompromissbereitschaft Kritikfähigkeit Kritik sachlich und konstruktiv äußern Offener Umgang mit Kritik, nicht persönlich nehmen, Kompromissbereitschaft Teamorientiertheit: Wir statt Ich Ehrlichkeit Verlässlichkeit Verantwortung übernehmen Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 23/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 23/28
Arbeiten in Teams: Wichtige soziale Kompetenzen bei Teamarbeit: Kompromissbereitschaft Kritikfähigkeit Kritik sachlich und konstruktiv äußern Offener Umgang mit Kritik, nicht persönlich nehmen, Kompromissbereitschaft Teamorientiertheit: Wir statt Ich Ehrlichkeit Verlässlichkeit Verantwortung übernehmen Beispiele Kommunikationswege: Mündlich: Face-to-Face, Telefon Meetings Chats/IRC Email Mailinglisten Foren Wikis Bug Tracker bzw. Issue Tracker Kommunikationsfähigkeit Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 23/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 24/28 Beispiele Kommunikationswege: Mündlich: Face-to-Face, Telefon Meetings Chats/IRC Email Mailinglisten Foren Wikis Bug Tracker bzw. Issue Tracker Unterschiedliche Eigenschaften, z.b.: One-to-one, one-to-many, many-to-many Mit oder ohne Verzögerung Flüchtig vs permanent Informationsverlust Beispiele Kommunikationswege: Mündlich: Face-to-Face, Telefon Meetings Chats/IRC Email Mailinglisten Foren Wikis Bug Tracker bzw. Issue Tracker Unterschiedliche Eigenschaften, z.b.: One-to-one, one-to-many, many-to-many Mit oder ohne Verzögerung Flüchtig vs permanent Informationsverlust Fragestellung: Welche Kommunikationswege braucht ihr? Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 24/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 24/28
Meetings sind eine........ verzögerungsfreie...... flüchtige...... many-to-many...... mit hohem Informationsverlust behaftete...... Form der Kommunikation. Meetings sind eine........ verzögerungsfreie...... flüchtige...... many-to-many...... mit hohem Informationsverlust behaftete...... Form der Kommunikation. Erfahrungswerte, was ist wichtig bei Meetings? Vollständige Anwesenheit Zeitrahmen einhalten Themenliste vorbereiten. Welche Themen sind geeignet? Wechselnde Moderatoren und Protokollanten (Liste vorbereiten) Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 25/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 25/28 Was macht der Moderator? Führt Gruppe durch Meeting, stellt Themen vor, stößt Diskussionen an Achtet auf vollständige Themenabdeckung Achtet auf Einhaltung des Zeitrahmens Zusammenarbeit mit Protokollant Beendet auch mal eine unproduktive Diskussion Was macht der Protokollant? Führen eines schriftlichen Protokolls: Anwesende/Abwesende Themenliste Ergebnisse, Entscheidungen, Abmachungen Bekanntgegebene Informationen TODOs Hakt auch mal nach, was nun eigentlich Konsens ist Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 26/28 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 27/28
Wichtigste Quellen [HH06] [HuCol] Hindel, Hörmann, Müller, Schmied: "Basiswissen Software- Projektmanagement", 2. Auflage, dpunkt.verlag Gmbh, 2006 Bob Hughes, Mike Cotterell: "Software Project Management", 4. Auflage, McGraw-Hill Education, 2006 Softwarepraktikum Objektorientierte Programmierung 2008: 4. Vorlesung 28/28