Projekte richtig starten

  • View
    48

  • Download
    0

Embed Size (px)

Transcript

  • Matthias Bohlen

    Projekte richtig starten

    Von Anfang an auf Erfolgskurs

    Matthias Bohlen, unabhngiger Berater

    mbohlen@mbohlen.de

    http://www.mbohlen.de

  • Matthias Bohlen

    Agenda

  • Matthias Bohlen

    Matthias Bohlen - Profil

    Freiberuflicher Berater Softwareentwicklung Objekttechnologie Komponententechnologie

    Dienstleistungsangebot Consulting: Architektur, Methoden Training: Analyse, Design, Programmierung Schulungen / Seminare / Workshops

  • Matthias Bohlen

    Kunden

    Kleine und groe Unternehmen Teams zwischen 7 und 70 Leuten

    Starten Softwareprojekte mit neuen oder unbekannten Technologien mit unklaren Methoden oder Prozessen mit engen Terminvorgaben mit sich schnell ndernden Anforderungen ohne Architektur bzw. Bauplan

    Insgesamt: hoher Beratungsbedarf

  • Matthias Bohlen

    Grundlagen

  • Matthias Bohlen

    Beteiligte und Interessen

    Kunden Chefs Entwickler Benutzer Wartungs-

    personal

    Kurze Realisie-

    rungszeit

    Geringe Kosten

    Alles im Plan! Keine ber-

    raschungen

    Erfolgreiches Projekt

    Interessante Arbeit

    Erforschen neuer Gebiete

    Stressarmes Arbeiten

    Leben zu Hause

    Viele Features Benutzer-

    freundlichkeit

    Schnelle, robuste

    Software

    Null Fehler Gute Dokumen-

    tation

    Leichte nderbarkeit

    Nach Steve McConnell: Rapid Development

  • Matthias Bohlen

    Erfolgreiche Projekte

    Wann ist ein Projekt erfolgreich? Erfolg ist eine Kombination aus

    Das Projekt produziert ein werthaltiges Ergebnis (sprich: lauffhiges System und Dokumentation)

    Alle Beteiligten sind zufrieden und mchten am liebsten sofort zusammen das nchste Projekt

    angehen!

  • Matthias Bohlen

    Weg zum Erfolg

    Balancieren Sie die Krfte aus, die aus den Interessen der Beteiligten entstehen

    Machen Sie aus jedem Beteiligten einen Gewinner!

  • Matthias Bohlen

    Projektdefinition: Krfte (1)

    Projektverlauf = f(s, u, t, q) s = Teamgre u = Funktionsumfang t = Zeit bzw. Termin q = Qualitt Vier Parameter, die sich gegenseitig nicht-

    linear, zeitverzgert beeinflussen!

  • Matthias Bohlen

    Projektdefinition: Krfte (2)

    Umfang beeinflusst Zeit Je mehr Features zu realisieren sind, desto mehr

    Zeit wird bentigt

    Koppelnde Gre: "Schlagzahl" des Teams

    Zeit beeinflusst Qualitt Zu knapp gesetzte Zeit: Fehler und Workarounds Zu grozgig gesetzte Zeit: "Goldene Lsungen", die

    teuer, komplex oder berflssig sind

  • Matthias Bohlen

    Projektdefinition: Krfte (3)

    Qualitt beeinflusst Teamgre Gute Leute wollen gute Arbeit abliefern Leute werden kndigen, wenn die Qualitt zu

    schlecht wird

    Zeit beeinflusst Teamgre Zeit zu knapp Entwickler gestresst Leute werden kndigen, wenn sie zu sehr gestresst

    werden

  • Matthias Bohlen

    Projektdefinition: Krfte (4)

    Qualitt beeinflusst Zeit Je schlechter die Qualitt, desto hher der

    Zusatzaufwand bei nderungen

    Workarounds machen das Entwicklerteam langsamer Bei schlechter Qualitt wird mehr Zeit bentigt

  • Matthias Bohlen

    Startvoraussetzungen

  • Matthias Bohlen

    Menschen

    Qualifikation: Sie brauchen gute Leute! Pragmatisch und lsungsbezogen arbeitend Disziplin und Sportsgeist sind essenziell Fhrungsqualitten bei den Managern Entschlossenheit und Teamgeist bei allen

    Und: Ohne den Kunden wird alles nix!

  • Matthias Bohlen

    Ziel

    Eine Vision, die zieht! Jeder muss wissen, wo er steht und wo es hingeht Begeistert auf das gezeigte Ziel hinarbeiten

    Business-Case Geldgeber wollen Geld verdienen Zeigen Sie ihnen, wie das Geld fliet!

    Ziele genau beschrieben: was wollen wir? abgegrenzt: was wollen wir eben nicht?

  • Matthias Bohlen

    Geld

    Nehmen Sie das Geld ohne zu zgern Zeigen Sie, was Sie damit tun wollen Planen Sie hufige Releases, um weiteres

    Budget zu motivieren

  • Matthias Bohlen

    Zeit

    Sorgen Sie fr angemessene Zeit fr das Projekt Zu wenig?

    verlangen Sie mehr oder schrnken Sie den Funktionsumfang ein

    Zu reichlich? Gehen Sie sorgsam damit um Verhindern Sie "vergoldete" Lsungen Genieen Sie die berzhlige Zeit, um Qualitt zu

    produzieren!

  • Matthias Bohlen

    Ort

    Orte der Kommunikation Im selben Zimmer ist optimal ber den Flur ist schon schlechter Ins nchste Stockwerk oder Haus? Vergessen Sie's! Schaffen Sie "Attraktoren", z.B. Espressomaschine!

    Geographie beeinflusst Architektur In zwei Stdten dasselbe System entwickeln? Bauen Sie lieber zwei Systeme und koppeln Sie ber

    definierte Schnittstellen!

  • Matthias Bohlen

    Technologien und Tools

    Nehmen Sie Technik, die Sie beherrschen! Planen Sie Zeit fr das reine Aufsetzen der

    Technik ein!

    Verlangen Sie Infrastruktur als Service neue Rechner installieren sollte nicht Ihr Job sein Sie legen nicht die Schienen, sondern bauen den

    Zug, der darauf fahren soll!

  • Matthias Bohlen

    Erfolgsfaktoren

  • Matthias Bohlen

    Kommunikation und Feedback

    Das System richtig entwickeln ist eine Sache Das richtige System entwickeln eine andere!

    Sprechen Sie mit dem Kunden! Fragen Sie ihn oft genug:

    "Ist es das, was Du wolltest?"

    Holen Sie Feedback ein, sooft Sie knnen "Kunde vor Ort" ist ein Erfolgsmuster!

  • Matthias Bohlen

    Architektur

    Je grer das Produkt und das Team, desto wichtiger ist die Architektur

    Ein Gartenhaus schafft man mit 4 Leuten an einem Wochenende, ohne groen Bauplan

    Ein Hotel schafft man nur mit vielen Leuten und einem sehr guten Bauplan

    Machen Sie Bauplne nicht im Kmmerlein! Prototypen zur Verifikation stndige Verbesserung durch Feedback aus der

    Entwicklung

  • Matthias Bohlen

    Zulieferer

    Ihr Projektteam ist auf Zulieferungen aus anderen Projekten (z.B. Frameworks)

    angewiesen?

    Managen Sie Erwartungen von Anfang an! Sagen Sie den anderen Projekten, was Sie wollen:

    "Dieses Jahr werden wir voraussichtlich mit 30 nicht-

    trivialen Change Requests auf Euch zukommen.

    Knntet Ihr das im Frameworkteam bitte einplanen?"

    Messen und verfolgen Sie stndig die Performance der Zulieferprojekte reagieren Sie vorausschauend!

  • Matthias Bohlen

    Teamgre

    klein beginnen, dann vergrern Pattern: TeamWachsenLassen Pattern: NovizenLehrer

  • Matthias Bohlen

    Pattern: TeamWachsenLassen

    Problem Ermitteln der richtigen

    Teamgre

    Kontexte Softwareprojekt, das

    gerade startet

    Softwareprojekt, das schon eine Weile

    unterwegs ist

    Krfte Anforderungen und

    Design anfangs unklar

    Entwickler sitzen herum, also wenig

    Leute bentigt!

    Viele Features in kurzer Zeit mehr Leute bentigt!

    Nach Jim Coplien: "SizeTheOrganization"

  • Matthias Bohlen

    TeamWachsenLassen

    Starten Sie mit ein paar Experten Domnenwissen und Analysemethodik Architektur- und Designwissen Wenige, exzellente "Prototyper"

    Experten stellen Gre und Komplexitt des Projektes / Produktes fest

    Nutzen Sie danach dieses Wissen und planen Sie sofort Wachstumsphasen im Projekt ein!

  • Matthias Bohlen

    Pattern: NovizenLehrer

    Problem Experten sollen

    Novizen unterrichten

    und trotzdem zum

    Projekt beitragen

    Kontext Softwareteam, in

    Wachstum und

    Reorganisation

    begriffen

    Krfte Experten allein sind zu

    wenig, um das System zu

    entwickeln

    Produktivittszuwachs durch neue Leute

    erforderlich

    Produktiv.-Minderung durch Unterricht ist aber

    schmerzhaft

    Nach Jim Coplien: "DayCare"

  • Matthias Bohlen

    Lsung zu NovizenLehrer

    Halten Sie die Novizen raus aus dem Expertenteam

    Stellen Sie einen Experten fr die Novizen ab und lassen Sie die anderen in Ruhe das

    System weiterentwickeln

    Das ist besser als Experten und Novizen gleichmig zu mischen!

  • Matthias Bohlen

    Woran liegt's?

    Ein bisschen Mathematik Annahme: Ein Experte hat normalerweise eine

    Performance von 1.

    Unterrichtet er einen Novizen, so fllt seine Produktivitt auf , bei zwei Novizen auf 1/3,

    bei dreien auf , bei m auf 1/(m+1).

    Wie sieht also die Team-Performance aus, wenn Novizen hereinkommen?

    skip!

  • Matthias Bohlen

    Experten getrennt v. Novizen

    X Experten schaffen normalerweise X*1 = X

    N Novizen jeder schafft n mit n

  • Matthias Bohlen

    Experten gemischt mit Nov.

    Die Performance jedes Experten geht zurck auf 1/(m+1), wobei m die Anzahl der

    Novizen pro Experte ist

    also m = N / X

    Team-Performance ist also jetzt TP = X / ( N/X + 1 ) + N*n

    Beispiel: X=5, N=10, n=0,1

    TP = 5 / (2+1) + 10*0,1 = 2,7

    skip!

  • Matthias Bohlen

    Vorgaben

    Bei groem Projekt: Kernteam aufsetzen, das Vorstudien macht, daraus Vorgaben entwickelt

    und dem Rest des Teams bekanntmacht

    Einspareffekt: Nicht alle mssen dieselben Fehler noch einmal machen!

    Nur so viel Vorgaben wie ntig Architekt als Koordinator immer sofort dem werdenden Chaos anpassen,

    ehe es berhand nimmt!

  • Matthias Bohlen

    Risikomanagement

    Ris