Anti Pattern in Project Management
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Albert Zündorf 6. Anti Pattern in Project Management Buch: W. J. Brown, H. W. McCormick III, S. W, Thomas: AntiPatterns in Project Management; Wiley,ISBN 0-471-36366-9, 2000 • Liste typischer Fehler im Projekt Management • wird garantiert jedem mal begegnen • wird im Hautpstudium in "Software Engineering II" Vorlesung vertieft SE7ProjManAntiPattern.fm,1
Albert Zündorf Das "Size Isn’t Everything" Anti-Pattern (How to have a baby in one month with nine women) Problem: • zu viele Leute in einem Team behindern sich gegenseitig - Besprechngen - doppelte Arbeiten - Kompetenzstreitigkeiten -... • Personalbedarf ändert sich über’s Projekt (wenig, wenig, wenig, viel, mittel) SE7ProjManAntiPattern.fm,2
Albert Zündorf • es gibt eine "optimale" Teamgröße für ein Projekt: SE7ProjManAntiPattern.fm,3
Albert Zündorf Auswege: • nach Boehm / Balzert: optimale Entwicklungsdauer = 2,5 * Personenmonate0,35 optimale Teamgröße = Personenmonate / optimale Entwicklungsdauer • Bei 9 Monaten Aufwand ergibt sich daraus z.B. - optimale Entwicklungsdauer = 2,5 * 90,35 = 5,3 Monate - optimale Teamgröße = 9 Personenmonate / 5,3 Monate = 2 Personen • besser bei Humphrey nachschaun • langsames Teamwachstum • gewachsene Teams (siehe sd&m) SE7ProjManAntiPattern.fm,4
Albert Zündorf Das "Batteries Not Included" Anti-Pattern Problem: • Einführung neuer Tools / Technologien / Programiersprachen wird oft unterschätzt • Lieferzeiten • Hardware-Anforderungen • Einarbeitungszeiten / Schulungsaufwand • mangelnde Stabilität / Funktionalität Lösung: • Einführung planen • Pilotprojekte • schrittweise Ausweitung Variante: • häufige Upgrades SE7ProjManAntiPattern.fm,5
Albert Zündorf Das "Gilding the Lily" oder "Gold Plating" Anti-Pattern (auch "Second System Syndrom") Problem: • Technik verliebte Teammitglieder / Designer wollen eine 150% Lösung machen • aufwändige Lösungen für selten gebrauchte Funktionalität • unnötige Bitfummelei • übertriebene Speichereffizienz • ... Gründe: • zu viel Zeit in der Anforderungs- und Analyse-Phase • Detail-verliebter Kunde (späterer Anwender) • Design-verliebte Architekten • Technik-verliebte Entwickler SE7ProjManAntiPattern.fm,6
Albert Zündorf Lösungen: • begrenzte Budgets • Reviews • gutes / starkes / technisch kompetentes Mangement SE7ProjManAntiPattern.fm,7
Albert Zündorf Das "One-Shot Deal" Anti-Pattern Merke: Provisorien halten machmal sehr lange Problem: • Man braucht "mal eben schnell" ein kleines Script / Programm für eine kleine, einmalige Auf- gabe • das funktioniert gut • das spricht sich rum • das könnte doch eigentlich auch noch das und das machen • ... • So wird aus der Kaffeekassen-Tabelle ein vollständiges Buchhaltungsprogramm • So wird aus der CD-Verwaltung ein Multi-Media-Recherche System • So wird aus dem Fujaba-Zeilenzähl-Skript ein Work-Flow-System • ... • Lisp Lösung: • rechtzeitig erkennen und durch richtiges Projekt ablösen SE7ProjManAntiPattern.fm,8
Albert Zündorf Das "Micro-Management" Anti-Pattern Problem: • der Projektmanager trifft auch Detailentscheidungen selber • der Projektmanager macht viel (die spannende) technische Arbeit selber • damit ist der Projektmanager typischerweise überfordert • wichtige Dinge bleiben liegen • die Entwickler fühlen sich gegängelt • der Projektmanager respektiert / anerkennt nicht die technische Kompetenz der Entwickler • Entwickler werden zu "niederen" Befehlsempfängern • Entwickler warten lange auf Entscheidungen • keine Motivation • keine Perspektiven • schlechte Produktivität SE7ProjManAntiPattern.fm,9
Albert Zündorf Gründe: • schlechte "Menschenführung" • schlechte Planung und hektische Änderungen => ständiger wechsel der Aufgabeneinteilung • "Aufgabenverteilung" in der Gruppe ist noch unklar, das Team / der Entwickler muss - sich formen - sich Kompetenzen erkämpfen - zu klarer Aufgabenverteilung finden • Rollenverteilung zwischen Projektmanager und Entwicklern ist noch unklar • Projektmanager hat lieblings "Superprogrammierer" SE7ProjManAntiPattern.fm,10
Albert Zündorf Auswege: • Mitarbeiter sind "Human Resources" (wertvolles Kapital) • Entwickler "Empowerment" Mitarbeiter dürfen in ihrem Aufgabenbereich weitgehend selbständig entscheiden • Mitarbeiter werden in Planungen einbezogen • Mitarbeiterweiterbildung • Gruppendynamische Erfolgserlebnisse / Erfahrungen • "Zielvereinbarung" • Mitarbeiter haben Einfluß auf / Auswahl bei eigenen Tätigkeiten • Mitarbeiter werden gemäß besondere Fähigkeiten eingesetzt • Mitarbeiter haben langfristige / kontinuierliche Perspektiven • Der Projektmanager hält sich möglichst aus der technischen Arbeit raus • Der Projektmanger managt möglichst wenig • Aufgabe des Projektmanager ist gemeinse Visionen vorzugeben SE7ProjManAntiPattern.fm,11
Albert Zündorf Beispiel SE7ProjManAntiPattern.fm,12
Albert Zündorf Das "Corporate Craziness" Anti-Pattern Problem: • Nur Häuptlinge keine Indianer • "Pyramide": - einfach zu viele Layer in der Management-Hierarchie • "Inverse Pyramide" (Kopf breiter als Körper): - Einfach zuuu viele Manager für zuuu wenig Entwickler - Manager bekämpfen sich untereinander - Entscheidungswege sind unklar - ... • "Eindimensionale Hierarchie": - zu flache (einstufige) und breite Hierarchie - Manager ist überfordert - es wird zu wenig gemanagt - alle wurschteln vor sich hin SE7ProjManAntiPattern.fm,13
Albert Zündorf • "Despoten" - höherer Manager regiert am Projektmanager vorbei ins Team hinein - Abläufe und Pläne werden über den Haufen geworfen - die Autorität des Projektmanagers wird ausgehöhlt • "Cabal"-Hierarchie (Clifford, Arlingtion, Buckingham, Ashley, Lauderdale 1672) - Geheimbruderschaft über Abteilungen und Hierarchieebenen hinweg - verborgene Entscheidungswege / -mechanismen - Position des normalen Managements wird untergraben - großes Intrigenspiel setzt ein • "Evolutionäre Hierarchie" - die Hierarchie wird ständig umgebaut - keine Kontinuität - Autoritäten werden untergraben - Problem werden ausgesessen - Visionen Perspektiven können nicht entwickelt werden - Entscheidungswege sind ständig unklar SE7ProjManAntiPattern.fm,14
Albert Zündorf Gründe: • schlechte "Menschenführung" • schlechte Planung und hektische Änderungen => ständiger wechsel der Aufgabeneinteilung • "Aufgabenverteilung" in der Gruppe ist noch unklar, das Team / der Entwickler muss - sich formen - sich Kompetenzen erkämpfen - zu klarer Aufgabenverteilung finden • Rollenverteilung zwischen Projektmanager und Entwicklern ist noch unklar • Projektmanager hat lieblings "Superprogrammierer" SE7ProjManAntiPattern.fm,15
Albert Zündorf Auswege: • Mitarbeiter sind "Human Resources" (wertvolles Kapital) • Entwickler "Empowerment" Mitarbeiter dürfen in ihrem Aufgabenbereich weitgehend selbständig entscheiden • Mitarbeiter werden in Planungen einbezogen • Mitarbeiterweiterbildung • Gruppendynamische Erfolgserlebnisse / Erfahrungen • "Zielvereinbarung" • Mitarbeiter haben Einfluß auf / Auswahl bei eigenen Tätigkeiten • Mitarbeiter werden gemäß besonderer Fähigkeiten eingesetzt • Mitarbeiter haben langfristige / kontinuierliche Perspektiven • Der Projektmanager hält sich möglichst aus der technischen Arbeit raus • Der Projektmanger managt möglichst wenig • Aufgabe des Projektmanager ist gemeinsame Visionen vorzugeben SE7ProjManAntiPattern.fm,16
Albert Zündorf Zusammenfassung und Ausblick: • Programmiermethodik: UML • Software Engineering I: Projektmanagement • Design Pattern: Design Tricks, Vererbung • Graphentechnik: formale Grundlagen SE7ProjManAntiPattern.fm,17
Albert Zündorf • Reverse Engineering: - Which line of code in which file creates this (error) message? - Who is calling this method? - Whow is reading / writing this attribute or variable? - Which parts of my code deals with computing this result? - Who has programmed this bug when? - Which parts of my system implement the functionality attached to this Button at my GUI? - Which parts of my program are affected by a change of the current operating system or GUI library? - Which parts (classes) of my program colaborate very closely? - Which parts of the program needs to be extracted in order to provide a certain set of functionality as a library to multiple other projects? - Is my program well structured? - Do I have a maintenance problem? - etc. - SE7ProjManAntiPattern.fm,18
Albert Zündorf • Typical reverse engineering techniques are: - - pattern based search (grep) - data flow and control flow analysis - slicing - clustering - runtime trace analysis - etc. - SE7ProjManAntiPattern.fm,19
Sie können auch lesen