Agile Softwareentwicklung erfolgreich managen



Ähnliche Dokumente
Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Hilfe, mein SCRUM-Team ist nicht agil!


Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

Agile Softwareprozess-Modelle

Umfrage zum Informationsbedarf im Requirements Engineering

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Agile Softwareentwicklung mit Scrum

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Stuttgart, Scrum im Wasserfall... oder wie kann Agilität dem Kunden schmackhaft gemacht werden?

Das Leitbild vom Verein WIR

«PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.»

oose. Was (noch) klassische Projekte von Scrum & Co lernen können eine empirische Studie

Professionelle Seminare im Bereich MS-Office

Agile Enterprise Development. Sind Sie bereit für den nächsten Schritt?

Agile Software Development

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Einführung und Motivation

Kapitel 3: Einführung Projektmanagement

10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden?

Was Sie über SCRUM wissen sollten...

Mobile Intranet in Unternehmen

Einführung in das Scrum Framework & welche 10 Praktiken helfen, Scrum wirklich gut zu machen

Welches Übersetzungsbüro passt zu mir?

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Das Handwerkszeug. Teil I

Unsere These: Meilensteindefinitionen sind wichtig für die Projektplanung und die Bewertung des Projektstatus.

Qualitätserlebnis statt Qualitätssicherung. Eine Mehrfachfallstudie agiler Teams

Projektmanagement in der Spieleentwicklung

Speicher in der Cloud

Softwaretechnik. Lean Software Development. Prof. Dr. Matthias Hölzl Joschka Rinke. 21. Januar 2016

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

DER SELBST-CHECK FÜR IHR PROJEKT

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Gelebtes Scrum. Weg vom Management hin zur Führung

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

50 Fragen, um Dir das Rauchen abzugewöhnen 1/6

Erfolg beginnt im Kopf

Alle gehören dazu. Vorwort

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Die Welt der SW-Qualität Ein Streifzug in 30 Minuten! Johannes Bergsmann Eigentümer

Sollten folgende drei Fragen durch das Team positiv beantwortet werden, sind wichtige SCRUM-Elemente in Ihrem Team erfolgreich installiert.

Was meinen die Leute eigentlich mit: Grexit?

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

advanced Agile Reliable und Ultimate Scrum

Statuten in leichter Sprache

Der wachsende Berufsunfähigkeitsschutz SV Start-Easy-BU.

Kreativ visualisieren

Urlaubsregel in David

Regeln für das Qualitäts-Siegel

SMART Newsletter Education Solutions April 2015

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

GPP Projekte gemeinsam zum Erfolg führen

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von:

Interpretation des agilen Manifest

IKP Uni Bonn Medienpraxis EDV II Internet Projekt

Zuckerbrot oder Peitsche

Risikomanagement. und es ist noch immer gut gegangen SENS Michael Jerger. (c) Michael Jerger SENS e.v., Stuttgart

Informationen zum neuen Studmail häufige Fragen

Soft Skills als Erfolgsfaktoren im anforderungsorientierten, agilen Projektmanagement am Beispiel der IT- Softwareentwicklung

Wir nehmen Aufgaben und Ideen wahr. Wir suchen Lösungen zu Ideen.

Projektmanagement. Einleitung. Beginn. Was ist Projektmanagement? In dieser Dokumentation erfahren Sie Folgendes:

Ringvorlesung: SW- Entwicklung in der industriellen Praxis ( )

Geburtstagsgedanken, das schönste Fotobuch für Kinder + Giveaway mit Kleine Prints

1 Einführung Im Nebel nach Turkmenistan Warum Projekte scheitern (können) Wie am Schnürchen Wie Projekte ablaufen (sollten)...

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Das Persönliche Budget in verständlicher Sprache

FUTURE NETWORK REQUIREMENTS ENGINEERING

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Volksbank BraWo Führungsgrundsätze

Wissensinseln trocken legen

Informationssicherheit als Outsourcing Kandidat

Thomas Schissler Uwe Baumann

Agile Systemadministration (ASA)

Geld Verdienen im Internet leicht gemacht

Erfolgreiche Realisierung von grossen Softwareprojekten

Projektmanagement im Wandel

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Projektplanung für Softwareprojekte: KLIPS 2.0 Prof. Dr. Manfred Thaller WS 2011/ Dana Wroblewski

Anleitung über den Umgang mit Schildern

Praktische Erfahrungen beim Einsatz des Vorgehensmodells "SCRUM" bei AGFA HealthCare

NINA DEISSLER. Flirten. Wie wirke ich? Was kann ich sagen? Wie spiele ich meine Stärken aus?

Projektmanagement. Vorlesung von Thomas Patzelt 8. Vorlesung

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

Planung in agilen Projekten

Leit-Bild. Elbe-Werkstätten GmbH und. PIER Service & Consulting GmbH. Mit Menschen erfolgreich

SEPA-Anleitung zum Release 3.09

Dokumentation zur Versendung der Statistik Daten

Diese 36 Fragen reichen, um sich zu verlieben

Multichannel Challenge: Integration von Vertriebsorganisation und Contact Center in der Versicherung

Die große Wertestudie 2011

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

Agilität auf Unternehmensebene - Was hält uns davon ab?

Gutes Leben was ist das?

Transkript:

Agile Softwareentwicklung erfolgreich managen Dr. Christoph Steindl Senior IT Architect, Method Exponent Certified ScrumMaster (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 1 Agenda Teil 1 (30 Minuten) Rückblick auf die 90er Jahre On Demand Agilität Traditionelle Vorgehensweise und ihre Probleme Vorteile agiler Softwareentwicklung Teil 2 (75 Minuten) Feedback Aufwandschätzung Planung Fortschrittskontrolle Retrospektiven Neuproduktentwicklung Kulturwechsel Reise mit LSD und TOC WARUM WIE (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 2

Am Anfang der 90er Jahre... Der kalte Krieg war gerade vorbei, die Berliner Mauer gefallen. Das Internet gab es noch nicht (wie wir es jetzt kennen), auch kein Intranet. PCs und Handys waren noch nicht weit verbreitet, geschweige denn Handhelds und ipods. E-Commerce war noch kein Thema, kaum jemand schrieb E-Mails. Lean manufacturing klang noch verdächtig, keiner sprach von Agilität. Outsourcing war die Ausnahme, Offshoring erst recht. Knowledge Worker waren noch keine eigenständige Kategorie. Lernende oder virtuelle Organisationen kannten wir noch nicht. Community of practice gab s an der Kegelbahn. Computer Security war was für das Militär und die Nachrichtendienste. WWW, ERP und Y2K gab es in der Buchstabensuppe noch nicht. (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 3 On Demand ist jetzt und in der Zukunft essenziell Das Umfeld wird dynamischer. Nichts ist mehr fix, alles kann sich ändern. Die Konkurrenz wird härter. Die Zyklen werden kürzer. Aus: Hancock et. al.: On demand business: The new agenda for value creation, IBM Institute for Business Value Study, 2004. (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 4

Definitionen von Agilität Agility is the ability to both create and respond to change in order to profit in a turbulent business environment. * Agility is the ability to balance flexibility and stability. * Agility is the physical ability to act (response ability) and the intellectual ability to find appropriate things to act on (knowledge management). ** * J. Highsmith: Agile Software Development Ecosystems, 2002. ** R. Dove: Response Ability, 2001. (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 5 Traditionellen Vorgehensweise (bei Projekten) Zuerst wird monatelang der Funktionsumfang diskutiert und zu einem Pflichtenheft zusammengeschrieben. Das Pflichtenheft ist Grundlage der Ausschreibung. Anbieter müssen bei sehr hohen Unsicherheiten ein Fixpreisangebot legen. Kaufmännische Überlegungen führen zu drastisch reduzierten Aufwänden und komprimierten Zeitplänen. Der Preis entscheidet, der Billigste gewinnt. Im Projekt wird jede kleine Änderung an den Anforderungen zusätzlich verrechnet. Unwichtige Funktionen werden umgesetzt, wichtige in spätere Phasen verschoben. Das Budget wird überzogen, der Zeitplan wird überschritten. AG... Auftraggeber AN... Auftragnehmer AG AG AG AG AN AN AN AN AG Win : Lose AN AG Lose : Lose AN (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 6

Kernprobleme Lange Wunschliste ohne Priorisierung Lange Vorlaufzeit Hohe Aufwände wegen hoher Unsicherheiten Schönung der Aufwände, preisliche Zugeständnisse Auffetten durch Verrechnung von Zusatzaufwänden Umsetzung unwichtiger Funktionen und Verschieben wichtiger Funktionen Belastete Beziehung zwischen Beteiligten Version 1 Version 2 (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 7 Von: http://www.xp2003.org/xp2002/talksinfo/johnson.pdf (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 8

Agile Softwareentwicklung bringt viele Vorteile Änderungen stellen kein Problem dar. Ergebnisse werden rascher geliefert. Die Ergebnisse entsprechen den Erwartungen. Risiken werden früher erkannt. Die Produktivität steigt. Die Qualität steigt. Die Mitarbeiterfluktuation nimmt ab. Risikogesteuert Priorisiert Iterativ Extreme Programming Scrum DSDM Feature-Driven Development Adaptiv Timeboxed Crystal (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 9 Agenda Teil 1 (30 Minuten) Rückblick auf die 90er Jahre On Demand Agilität Traditionelle Vorgehensweise und ihre Probleme Vorteile agiler Softwareentwicklung Teil 2 (75 Minuten) Feedback Aufwandschätzung Planung Fortschrittskontrolle Retrospektiven Neuproduktentwicklung Kulturwechsel Reise mit LSD und TOC WARUM WIE (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 10

Wie erzielt man die Vorteile? Aus Management-Sicht: Priorisierung Rascheres Feedback Häufige Inspektion und Anpassung Offenheit und Vertrauen Einbindung der Stakeholder, Teaming Aus Entwickler-Sicht: Pair Programming Test-Driven Development Refactoring Continuous Integration Coaching Emergenz (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 11 Agile Softwareentwicklung Häufiges Feedback, Inspektion und Anpassung Kollaboration, enge Kommunikation Häufige Auslieferung Verbesserung durch Reflexion (Inkrementelle) Emergenz von Anforderungen, Technologie und Team-Fähigkeiten Ermächtigung und Selbst- Organisation Befassung mit Realität, nicht mit Artifakten Entwicklung 1 d 1 mo Management (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 12

Von agilen Werte über Prinzipien zu Techniken Werte Häufige Inspektion und Adaption Enge Kollaboration Ermächtigung zur Selbstorganisation Emergenz von Anforderungen u. Fähigkeiten Mut und Respekt Prinzipien Frühe und regelmäßige Auslieferung Begrüßen von notwendigen Änderungen Enge Zusammenarbeit von Business und IT Direkte Kommunikation Funktionierende Software als Maß für Fortschritt Streben nach technischer Exzellenz Einfachheit Reflexive Verbesserung Techniken Arbeiten in Paaren Test-getriebene Entwicklung Refactoring Gemeinsame Anforderugnsdefinition Laufende Priorisierte Optionen- Integration Anforderungen Demos Gemeinsamer Denken (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen Anwendungsentwurf Prototyping 13 Gemeinsame Verantwortung Programmierrichtlinien 40h-Woche Eigene Projekträum Einfaches Design Kunde vor Ort Tägliche Steh- Besprechungen Visuelle Fortschrittsberichte Verständliche Sprache Timeboxing Unmittelbares Feedback Kurze Iterationen Häufige Synchronisation Feedback Früher Öfter durch kürzere Zyklen, engere Zusammenarbeit Offener, direkter verbal statt schriftlich Ohne Grenzen durch ein großes Team Kürzere Zyklen Von der Idee bis zur Umsetzung Vom Auftauchen einer Frage in beim Entwickler bis zur Antwort durch Kunden Vom Einführen eines Fehlers bis zur Erkennung Vom Definieren einer Architektur bis zum Realitätstest Idee Analyse Design Code Fehler Fehler Fehler Fertiger Code Akzeptanz- Test System Test Unit Test (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 14

Aufwandschätzung traditionelle Vorgehensweise Ein paar Experten / Gurus schätzen den Aufwand. Aber wer ist schon ein Experte für Aufwandschätzungen? Wie gut kann ein Experte abschätzen, wie lange die Nicht- Experten später für die Umsetzung brauchen werden? Das passiert ganz am Anfang, z.b. auf Basis eines Pflichtenhefts. Ist sichergestellt, dass die Schätzung auch während der Umsetzung aktualisiert wird? Gibt es eine retrospektive Schätzung am Ende mit perfektem Wissen? Je besser die Erfahrung oder die Vergleichsdaten, desto besser ist die Schätzung. Wie schaut es mit der Erfahrung aller Beteiligten aus, ist die berücksichtigt? Wie genau passen die bisherige Erfahrung bzw. Vergleichsdaten auf die neue Situation (Team, Fachgebiet, Projektumstände, Technologie,...)? (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 15 Wann ist es zu früh, sich auf eine Schätzung festzulegen? Project Cost (effort and size) Cone of Uncertainty Project Schedule 4x 1.6x Hier immer noch +/- 50% Aufwand 2x 1.2x 1.5x 1.15x 1.25x 1.1x 1.0x 1.0x 0.8x 0.9x 0.67x 0.85x 0.5x 0.8x 0.25x 0.6x Initial Approved Requirements Product Detailed Product product product specification design design complete definition definition specification specification (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 16 Adapted from Rapid Development: Taming Wild Software Schedules (McConnell 1996).

Wie weit kann man den Zeitplan komprimieren? (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 17 Aufwandschätzung die agile Antwort Das Projektteam schätzt selbst den Aufwand. Jeder schätzt den Aufwand für seine Aufgaben, jeder fühlt sich verantwortlich für die Einhaltung der Aufwände. Jeder kann seine Bedenken / Sicht einbringen. Dadurch reduziert man das Fingerzeigen und Wegschieben der Verantwortung. Das passiert am Anfang einer jeden Iteration (2-4 Wochen) für kleine Projektteile. Sobald man eine Anforderung detailliert, überlegt man auch schon die Aufwände für die Umsetzung. Was man oft übt, kann man bald besser. Kleine Teile kann man leichter schätzen. Basierend auf der Teamerfahrung aus früheren Projekten und aus den bisherigen Iterationen desselben Projekts. Man verwendet die Regel Yesterday s Weather. Man lernt mit dem Projekt, passt sich automatisch an. (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 18

Planung traditionelle Vorgehensweise Der Projektleiter erstellt den Projektplan am Projektbeginn mit vielen kleinen Arbeitsschritten und Abhängigkeiten. Aber wie kann man am Anfang schon alles vorhersehen? Aber wie kann der Auftragnehmer dann verstehen, welche Schritte wichtiger als andere sind? Aber wie relevant sind die Abhängigkeiten? Der Projektleiter teilt die Arbeitsschritte den Projektmitarbeitern zu. Aber was ist, wenn der Mitarbeiter etwas anders vorgehen möchte? Wird der Projektleiter die Arbeitsschritte optimal verteilen können? Der Projektleiter ist froh, wenn er den Projektplan nicht oft ändern muss. Aber wie aktuell kann dann der Projektplan sein? Wie wertvoll ist ein Projektplan, wenn er nicht aktuell ist? (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 19 Kernprobleme Projektmitarbeiter identifizieren sich nicht mit dem Projektplan des Projektleiters. Projektpläne sind nie aktuell, der Projektleiter verbringt viel zu viel Zeit mit dem Aktualisieren bzw. mit Werkzeugen wie Microsoft Project. Auftragnehmer verstehen Projektpläne nicht, können nicht zwischen wichtigen und unwichtigen Arbeitsschritten unterscheiden. Projektmitarbeiter arbeiten die vorgegebenen Arbeitsschritte einfach ab Wenn sie länger brauchen, ist der Projektleiter schuld. Wenn sie schneller wären, verbrauchen sie die Zeit. Sie wissen wenig über die Arbeit ihrer Kollegen. Sie wissen wenig über die Dringlichkeit ihrer Aufgaben. Projektleiter verwenden den Projektplan, um die Projektmitarbeiter zu kontrollieren. (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 20

Das Studenten-Syndrom Aufwand Erste Gedanken Fokussierte Arbeit Ausgabe der Übung Schätzung in Kalenderzeit Abgabeschluss Zeit Lokale Sicherheit Schätzung für eigentliche Aufgabe (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 21 Lokale Puffer verpuffen Entwickler lassen den lokalen Puffer ohne Stress verstreichen. Nachfolgende Arbeiten verzögern sich, sobald sich einer der Vorgänger verzögert. Eingesparte Zeit wird nicht weitergereicht, sondern verbraten. (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 22

Planung agile Antwort Das gesamte Team erstellt die Pläne für Releases mit groben Funktionsblöcken und für Iterationen mit feingranularen Funktionen bzw. Arbeitsschritten. Jeder kann seine Bedenken / Sicht einbringen. Dadurch reduziert sich das Fingerzeigen und Wegschieben der Verantwortung. Der Auftraggeber kann die Pläne verstehen und Funktionen priorisieren. Die Teammitglieder wählen sich die Funktionen aus und sagen deren Umsetzung zu. Jeder entscheidet selbst, wie er arbeitet. Jeder weiß, was er am besten kann. Das Team plant nur die nahe Zukunft (aktuelle und nächste Release bzw. Iteration). Spätere Änderungen können leicht eingebaut werden. Während der Iteration gibt es kein Umplanen. Alles außerhalb des Planungshorizonts ist unproblematisch. (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 23 Fortschrittskontrolle traditionelle Vorgehensweise Der Projektleiter berechnet den (scheinbaren) Fortschritt basierend auf Earned Value. Dazu vergleicht er die geplanten Aufwände für die Arbeitsschritte mit den tatsächlichen. Aber wie sehr kann man dieser berechneten Zahl vertrauen? Wie aussagekräftig sind die ursprünglich geplanten Aufwände noch? Arbeitsschritte, die noch nicht zur Gänze erledigt sind, zählen prozentuell. Warum schreiten Arbeiten anfangs schnell voran und dauern zum Schluss dann doch alle viel länger? Wie objektiv und vergleichbar sind die Aussagen der Projektmitarbeiter ( ich bin zu 80% fertig )? Warum dauern die letzten 20% immer viel länger als die ersten 20% Prozent? Der Projektleiter möchte die Umsetzung kontrollieren und Abweichungen erkennen. Aber was hat man von der Einhaltung des ursprünglichen Plans? Wer lässt sich schon gerne kontrollieren? (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 24

Kernprobleme Anfänglich geht alles nach Plan, doch das Projekt verzögert sich immer mehr. Wenn sich kritische Arbeiten verzögern, kann man den Fortschritt durch unkritische Arbeiten (über)kompensieren. Die Projektmitarbeiter haben kein Bewusstsein dafür, ob sich ihre Arbeiten auf dem kritischen Pfad befinden. Projektmitarbeiter geben die erwarteten Antworten: Tell me how you will measure me and I will tell you how I will behave. (Eli Goldratt) (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 25 Beispiel für Earned Value (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 26

Fortschrittskontrolle agile Antwort Der Fortschritt im Gesamtprojekt basiert auf der tatsächlich ausgelieferten Funktionalität, nicht auf durchgeführten Arbeitsschritten. Der Fortschritt bedeutet für den Auftraggeber somit unmittelbaren Geschäftsnutzen. Wenn das Projekt vorzeitig beendet wird, ist der ausgewiesene Fortschritt tatsächlich schon realisiert. Der Fortschritt innerhalb einer Iteration stellt nur die noch geplanten Aufwände dar. Der Blick ist nach vorne gerichtet. Dazu werden die Funktionen, die gerade bearbeitet werden oder noch offen sind, regelmäßig neu geschätzt und bewertet. Das Team möchte aus der Fortschrittskontrolle lernen. Es möchte verstehen, welche Funktionalität gefährdet ist. Das Team kann dadurch zusammenhelfen. Arbeiten am kritischen Pfad bleiben nicht liegen, sondern werden gemeinsam angegangen (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 27 Agile Beispiele Burndown Diagramm (unten) stellt den noch offenen Aufwand dar. Parking Lot (rechts) stellt Fortschritt nach Funktionsgruppen dar. (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 28

Retrospektiven traditionelle Vorgehensweise Im Prinzip sollte am Projektende eine Retrospektive ( Lessons Learned ) stattfinden. Aber typischerweise hat man dann dazu keine Zeit mehr. Aber typischerweise ist das Budget schon aufgebraucht. Das Projektteam zerstreut sich am Ende des Projekts wieder. Es ist unklar, wer von den Ergebnissen profitiert und ob die Ergebnisse überhaupt verwertet werden. Viele Spezialisten sind beim Projektende schon gar nicht mehr im Team. Werden die Projektmitarbeiter noch einmal an einem ähnlichen Projekt arbeiten? Werden sie noch einmal miteinander arbeiten? An wen richten sich die Erkenntnisse? Oft werden Lessons Learned nur deshalb erledigt, weil sie halt auch auf dem Projektplan vorgesehen waren. (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 29 Retrospektiven agile Antwort Retrospektiven werden am Ende jeder Iteration abgehalten. Die Geschehnisse liegen noch nicht so weit zurück, man erinnert sich noch leicht daran. Anfangs drängt die Zeit noch nicht so. Später hat man sich daran gewöhnt und sieht die Zeit dafür fix vor, weil man den Nutzen einschätzen kann. Probleme werden früher erkannt. Verbesserungen können länger wirken. Team bleibt noch bis zum Ende zusammen und kann die Ergebnisse verwerten Jeder an der Retrospektive beteiligte profitiert von den Ergebnissen. Team lernt und wird selbst-korrigierend und selbst-heilend. Wenn etwas nicht funktioniert, kann man das erkennen und an der Lösung arbeiten. Wenn etwas gut funktioniert, kann man das verstärken und breiter kommunizieren. Man kann mit minimalen Vorgaben starten und diese mit der Zeit ergänzen. Man kann Ballast erkennen und abbauen. (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 30

Softwareentwicklung ist Neuprodukt-Entwicklung Vorhersagbare Fertigung Man kann zuerst die Spezifikation erstellen und dann das System bauen. Am Anfang kann man verlässliche Schätzungen für Aufwand und Kosten abgeben. Man kann detaillierte Arbeitsschritte identifizieren, definieren und planen. Anpassung an unvorhergesehene Änderungen ist nicht die Norm, die Änderungsrate ist gering. Neuprodukt-Entwicklung Man kann nur selten am Anfang eine unveränderliche Spezifikation erstellen. Am Anfang kann man nicht verlässlich schätzen. Mit der Zeit bekommt man Erfahrungswerte als Basis für Schätzungen und Pläne. Am Anfang kann man das nicht. Kurze Feedback-Zyklen sind notwendig, um sich geeignet anpassen zu können. Kreative Anpassung an unvorhergesehene Änderungen ist die Norm, die Änderungsrate ist hoch. Eine Wasserfall -artige Vorgehensweise mit dicken Anforderungsspezifikationen und Aufwandschätzungen am Anfang, auf denen spekulative Pläne aufbauen, ist lange Zeit fälschlicherweise für Neuprodukt-Entwicklung verwendet worden. Nach: Craig Larman: Agile & Iterative Development, 2003 (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 31 Es geht um einen Kulturwechsel Priorisierung der Anforderungen mit häufiger Auslieferung statt alles am Ende Iterationen mit fixer Länge und fixen Kosten statt überzogener Zeit- und Budgetrahmen Traditionelle Vorgehensweise Umfang Budget Zeitplan Zeitplan Budget Umfang Agile Vorgehensweise (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 32

Beim Umstieg auf agile Methoden ändert sich der Fokus Umfang Umfang Zeitplan Budget Fixiert Traditionell Traditionell Agil Variabel Zeitplan Budget Zeitplan Budget Umfang (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 33 Doch dann beginnt die Reise erst... Durch den Kulturwechsel werden große Produktivitätssteigerungen möglich Von einem Gegeneinander zu einem Miteinander Kein Vergeuden von Ressourcen mehr, sondern fokussiertes Arbeiten Laufendes Lernen und laufende Verbesserungen Die Reise setzt auf bewährte Techniken aus: Lean Software Development Theory of Constraints (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 34

Lean Software Development with 7 Principles and 22 Tools Eliminate Waste Seeing Waste, Value Stream Mapping Amplify Learning Feedback, Iterations, Synchronization, Set-Based Development Decide as Late as Possible Options Thinking, The Last Responsible Moment, Making Decisions Deliver as Fast as Possible Pull Systems, Queuing Theory, Cost of Delay Empower the Team Self-Determination, Motivation, Leadership, Expertise Build Integrity In Perceived Integrity, Conceptual Integrity, Refactoring, Testing See the Whole Measurements, Contracts From: Mary and Tom Poppendieck: Lean Software Development, 2003 (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 35 Theory of Constraints In einem System gibt es zu jeder Zeit genau einen Flaschenhals, genau so wie es bei einer Kette genau ein schwächstes Glied gibt. Wenn man am Durchsatz des Systems erhöhen möchte, muss man sich auf den Flaschenhals konzentrieren. 5 Focusing Steps 1. Identify the constraint 2. Exploit the constraint 3. Subordinate to the constraint 4. Elevate the constraint 5. Back to step 1 Know what to change! Know to what to change to! Know how to cause the change! http://www.goldratt.com (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 36

Die Ursprünge von agiler Softwareentwicklung gehen weit zurück 70er Light Airborne Multipurpose System (1975), 200 Personenjahre, Millionen Zeilen Code, 45 einmonatige Iterationen, alle rechtzeitig und innerhalb des Budgetrahmens Software für das Space Shuttle: 17 inkrementellen Releases innerhalb von 31 Monaten (Okt. 1977 Apr. 1980) 80er: Toyota mit Lean Manufacturing The Knowledge Creating Company 90er: MIL-STD-498 u.ä. schreibt iterative und evolutionäre Vorgehensweise vor Boom agiler Methoden als Gegenbewegung zu CMM/CMMI Iterationen Adaption Synchronisation Selbstorganisation Kommunikation (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 37 Abschlussworte Lou Gerstner: Cultural change must be led from the top if it is to be effective. (in Who Says Elephants Can t Dance?, 2002) (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 38

Fragen? (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 39 Weitere Schritte Informationsveranstaltung zum Thema Agilität Potenzialanalyse Wie agil und lean ist Ihre Anwendungsentwicklung? Unterstützung bei Auswahl, Gestaltung und Bewertung von Vorhaben (Business Case Analyse) Umsetzung konkreter Projekte Anfragen an Christoph Steindl Christoph_Steindl@at.ibm.com 0664/6185186 (c) Christoph Steindl, 2005 Agile Softwareentwicklung erfolgreich managen 40