Anti Pattern in Project Management

Die Seite wird erstellt Pirmin Steffen
 
WEITER LESEN
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