Agile Methoden - Lehrstuhl Softwaretechnik und
Transcript of Agile Methoden - Lehrstuhl Softwaretechnik und
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 1
Agile Methoden: Leichtgewichte der Softwaretechnik
Prof. Dr. Gerald Lüttgen Lehrstuhl Softwaretechnik & Programmiersprachen
Universität Bamberg
www.swt-bamberg.de
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 2
Kurzvorstellung: Lehrstuhl Softwaretechnik & Programmiersprachen
• Seit 2009 an der Universität Bamberg • Internationale Orientierung, Mitarbeiter und Projektpartner
• Schwerpunkte in der Forschung
• Formale Softwarespezifikation, z. B. Interfacetheorien • Automatische Softwareverifikation, z. B. Model Checking & Heap Analyse
• Weitere Kompetenzen
• Softwaretechnik, einschließlich Requirements Engineering • Programmierung, insb. parallele und imperative Programmierung • Compilerbau und Programmanalyse
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 3
Was bedeutet „agil“?
• Allgemein • Duden: „von großer Beweglichkeit zeugend; regsam und wendig.“
• Oxford English Dictionary: „able to move quickly and easily; able to think and understand quickly.“
• In Bezug auf Softwareentwicklung
• Highsmith: „Agility is the ability to both create and respond to change in order to profit in a turbulent business environment.“
• Dilbert assoziiert agile Entwicklungsmethoden mit Chaos [Scott Adams]
• „We hold village meetings to boast of our skills and curse the devil-spawned end-users.“
• „At the last minute we slam out some code and go roller skating.“
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 4
Das Wasserfallmodell
Pro • Plan-basiertes, einfaches
Management Modell • Jede Phase erarbeitet und endet
mit einem Dokument
Contra • Schwergewichtig • Inflexibel
• Bzgl. sich ändernden Kundenan-forderungen und Technologien
[Sommerville]
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 5
Der Rational Unified Process (RUP)
Pro • Iterativ • Anwendungsfälle • Visuelle Modelle • Werkzeugunterstützung
Contra • Dokumentenlastig, wenig agil • Konstruktionsphase inflexibel • Detailliertes Management des
Fertigungsprozesses
[Kruchten, IBM Ra8onal]
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 6
Warum agilere, leichtgewichtigere Methoden?
• Probleme schwergewichtiger Methoden • Anforderungen sind beim Projektstart oftmals unklar und unvollständig
• Kunden wissen meist erst was sie wollen, sobald sie eine lauffähige Softwareversion sehen
• Anforderungen ändern sich während der Entwicklung häufig
• Lösung mit Hilfe schlankerer, agiler Methoden
• Eine neue Generation evolutionärer Softwareentwicklung
• Notwendig durch immer kürzere Produktzyklen in der Geschäftswelt
• Möglich durch moderne Werkzeugunterstützung und Automatisierung im Bereich Test & Build
[Sunderland]
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 7
Was zeichnet agile Methoden aus?
• Inkrementell • Entwicklung, Test und Release von Softwareinkrementen in schnellen
Zyklen, nach einer kurzen Planungsphase • Iterative Entwicklung, erfordert kontinuierliches Testen und Integrieren
• Kooperativ • Kunden, Nutzer und Entwickler kommunizieren eng miteinander
• Adaptiv • Schnelle Anpassung an Änderungen sowie rasche Lösung von
Problemen, sowohl in Bezug auf Produkt als auch Prozess
• Geradlinig • Einfachheit, zum Erlernen und Anpassen
• Populäre Beispiele: • Extreme Programming, XP (Beck, 90er Jahre) • Scrum (Schwaber & Beedle, Takeuchi & Nonaka, 80er/90er Jahre)
[Abrahamsson et al.]
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 8
Was bedeutet dies in der Praxis?
• 2 bis 8 Personen in 1 Raum • Förderung der Kommunikation innerhalb des Teams • Falls räumlich nicht machbar, dann z. B. via Videokonferenz
• Kunde/Nutzer vor Ort • Umgehende Rückmeldung ermöglicht schnelle Evaluierung von Lösungen
• Nicht unbedingt täglich – manchmal genügen 2 Stunden pro Woche
• 1-monatige Inkremente • Schnelle Ergebnisse und deren Kontrolle – Anforderungen und Prozess
können rasch repariert werden • Vielleicht jede Woche, oder auch nur jedes Quartal
• Vollautomatische Regressionstests • Frühe Entdeckung von eingeschlichenen Bugs • Mindestens täglich, vielleicht sogar stündlich
• Erfahrene Softwareentwickler • Manche Entwickler sind um Faktor 2-10 produktiver als andere
[Cockburn]
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 9
Vergleich verschiedener Prozessmodelle
• Interessante Techniken im Extreme Programming • Z. B. Pair Programming und Refactoring
• Kombination verschiedener Prozessmodelle möglich • Z. B. Scrum und Extreme Programming
[vgl. A
braham
sson
et a
l., Abb
. 14]
Concept crea+on
Requirements specifica+on
Design Code System in use
Acceptance test
System test
Integra+on test
Unit test
RUP
Extreme Programming
Scrum
Open source so?ware
Projektmanagement Prozess/Vorgehen Techniken/Ak+vitäten
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 10
Und was ist nun neu?
• Alt, bewährt und teilweise wieder entdeckt • Iteratives, inkrementelles Vorgehen bereits beim NASA Mercury Projekt
in den 50er Jahren • Ideen des Extreme Programming laut Weinberg bereits seit den 60er
Jahren in der Softwaretechnik
• Neu • Zusammenschnüren leichtgewichtiger Methoden zu einem Paket mit
dem Label „agil“ • Sichtbarkeit – Agile Manifesto [2001]
• Nicht gemeint sind • Softwareentwicklung ohne Plan – „Lizenz zum Hacking“ • Softwareentwicklung ohne Dokumentation – Zusammenarbeit und
Wartbarkeit benötigen eine hinreichende Dokumentation
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 11
Herausforderungen für agile Methoden
• Skalierbarkeit • Die Mehrheit der in großen Unternehmen gefertigten Software wird
nicht in kleinen Teams vor Ort produziert
• Team Softwareentwicklung ↔ Team Qualitätsmanagement
• Wie sollen diese Teams angesichts der schlankeren Dokumentation und der Häufigkeit von Releases zusammen arbeiten?
• Unternehmenskultur
• Neue Entscheidungsbefugnisse für Softwareentwickler – „das Team organisiert sich selbst“
• Anpassung des Projektmanagements notwendig
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 12
Zum Abschluss
• „Agility is more attitude than process ... • ... more environment than methodology“ [Highsmith]
• Agile Methoden sind „people-oriented“
• Fokus auf effektive Zusammenarbeit und Kommunikation im Team und mit Kunden und Nutzern
• Agile Methoden sind kein Allheilmittel
• Besonders ratsam für Situationen, in denen die zukünftigen Produkt- anforderungen nicht bekannt sind
• Geeignet für die Entwicklung von z. B. Webanwendungen und Apps für Mobilgeräte in kleineren Teams vor Ort – nicht für kritische Systeme
Vielen Dank für Ihre Aufmerksamkeit! Gibt es Fragen oder Anmerkungen?
© 2011 Gerald Lüttgen Vortrag IT Cluster Oberfranken – Agile Methoden – 13
Ausgewählte Literatur
• P. Abrahamsson, O. Salo, J. Ronkainen & J. Warsta. Agile Software Development Methods: Reviews and Analyses. VTT Publications 478, 2002.
• K. Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999.
• A. Cockburn. Agile Software Development: The Cooperative Game. 2. Auflage, Addison-Wesley, 2007.
• K. Schwaber & M. Beedle. Agile Software Development with Scrum. Pearson Education, 2002.
• L. Williams & A. Cockburn, Hrsg. Agile Software Development: It‘s About Feedback and Change. Sonderausgabe IEEE Computer, Juni 2003.