Projekte richtig starten

  • Published on
    16-Jul-2015

  • 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

    Risiken sind normal! Managen Sie sie! Fehler im Application Server Animositten im Team Jemand wird krank Festplatte des CVS-Servers crasht Aufgaben werden unterschtzt Neuer Vorstand kommt Zulieferer gert in Verzug, etc. etc.

    Erstellen und pflegen Sie eine Risikoliste! (Liste mit Risiken und Gegenmanahmen)

  • Matthias Bohlen

    Iteratives Vorgehen

    Starten Sie mit dem einfachsten, was mglicherweise funktioniert bauen Sie dann langsam aus

    Besetzen Sie die Rollen genau Planen Sie iterativ

    Pattern: ZeitplanAushandeln

  • Matthias Bohlen

    Planen und Einkaufen

    Kaufen Sie Lebensmittel ... Fr ein ganzes Jahr im Voraus?

    Einkaufen Woche-1 Woche-... Woche-52 Feedback

    (Inventur) .....

    ... oder fr die folgende Woche?

    E 1 2 3 F E 1 2 3 F ..... E 1 2 3 F E 1 2 3 F

  • Matthias Bohlen

    Rollen im iterativen Vorgehen

    Kunde am besten Fachleute, sonst Projektleiter oder QS als Proxy trifft Geschftsentscheidung (dies ist wichtiger als jenes)

    Coach Untersttzt (Entwicklungs-)Team bei Entscheidungen Methodische Fhrung Untersttzung beim (technischen) Risikomanagement

    Entwickler Bewerten Features nach Risiko und Umfang trifft technische Entscheidungen

    Projektleiter Bleiben zentrale Ansprechpartner des echten Kunden und des

    Managements

    QS Untersttzt bei bergreifenden Tests (Systemtests)

  • Matthias Bohlen

    Pattern: ZeitplanAushandeln

    Problem Aushandeln eines

    Zeitplans, dem alle

    zustimmen knnen

    Kontext Softwareprojekt, das

    gerade startet

    Thema verstanden Umfang ungefhr

    definiert

    Krfte Kunde: Schnell

    realisieren,

    geringe Kosten

    Benutzer: Viele Features Entwickler: Stressarmes,

    interessantes Arbeiten

    Nach Jim Coplien: "SizeTheSchedule"

  • Matthias Bohlen

    Lsung: ZeitplanAushandeln

    Qualitt q ganz hoch halten Termin(e) t festsetzen Teamgre s als gegeben annehmen Umfang u anpassen Alle paar Wochen:

    Verhltnis u,s,t berdenken!

    Schlagzahl des Teams ist eine gute

    Rechengrundlage fr u-Anpassung!

  • Matthias Bohlen

    ZeitplanAushandeln

    Voraussetzungen Vertrauensverhltnis zwischen Kunde und

    Entwicklungsorganisation

    Wichtigsten Teil des Umfangs in den ersten Iterationen realisieren

    Kunde wird Umfangsanpassung eher fr mglich halten als Vertrstung auf

    imaginren Folgetermin

  • Matthias Bohlen

    Anforderungsmanagement

    User-Interviews Sprechen Sie mit den tatschlichen Anwendern

    Spezifikation Schreiben Sie die Anforderungen strukturiert auf Schne Vorlage: VOLERE-Template

    (Atlantic Systems Guild)

    Demo-Prototyp Verifizieren Sie damit, ob alles auch so gemeint war

    nderungen Konsequent managen, nicht einfach einbauen!

  • Matthias Bohlen

    Gegenwind

  • Matthias Bohlen

    Gegenwind aushalten (1)

    Analyse-Paralyse Problem: Das Team hrt nicht auf, zu analysieren Lsung: Entwickeln, sobald genug Informationen fr

    eine erste Lsung vorliegen! Danach: Lernen!

    Meetings ber Meetings Gehen Sie sparsam damit um werfen Sie am Anfang

    des Meetings mglichst viele Teilnehmer hinaus

    berdenken Sie alle regelmigen Meetings

    Toolprobleme Vermeiden Sie komplexe Tools nehmen Sie die, die

    Ihr Team versteht!

  • Matthias Bohlen

    Gegenwind aushalten (2)

    Politik Manager: Haltet alles Politische vom Team fern!

    Lasst die Leute arbeiten!

    Unentschlossener Kunde Durch frhestmgliche Prototypen zur Entscheidung

    motivieren

    Pltzliche, "fremde" Termine Manager: Stellen Sie eine Person ab, die sich um

    solch einen Termin kmmert lassen Sie das Team ungehindert weiterarbeiten!

  • Matthias Bohlen

    Gegenwind aushalten (3)

    Budget-Einschrnkungen Fragen Sie den Kunden: "Welche zu entwickelnden

    Features sind entbehrlich, so dass der neue

    Budgetrahmen eingehalten werden kann?" (su)

    Umzug So wenige wie mglich, doch so viele wie ntig Ziehen Sie um, wenn die rtliche Verteilung nicht

    mehr zu den Kommunikationsbedrfnissen passt!

  • Matthias Bohlen

    Gegenwind aushalten (4)

    Technologiewechsel Ist immer ein Risiko prototypen Sie! Kapseln Sie Technologien in separaten

    Architekturschichten

    Verwenden Sie MDA, um Technologie und Fachlogik zu trennen

    Betriebliche Umorganisation Teamname, Vorgesetzter, Abteilungsstruktur alles

    kann sich ndern

    Manager: Achtet darauf, dass Euer Team die Identitt behlt!

  • Matthias Bohlen

    Zusammenfassung

    Projekterfolg sicherstellen

  • Matthias Bohlen

    Projekterfolg sicherstellen

    Frh anfangen Grundvoraussetzungen schaffen Nicht warten, bis alles feststeht! Mit kleinem Team mutig starten

    Stndig dazulernen Beschlsse so spt wie mglich fassen

    auf Basis gesicherter Informationen

    Frh und hufig ausliefern hlt den Kunden bei der Stange

    Nach Mary Poppendieck: Lean Development and the Predictability Paradox

  • Matthias Bohlen

    Diskussion

    Ihre Fragen und Anregungen:

    Projekterfolg durch Architekt und Coach untersttzen

    Sie erreichen mich unter: Ich komme gern zu Ihnen ins Projekt!

    ? !