13
© 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

Agile Methoden - Lehrstuhl Softwaretechnik und

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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

Page 3: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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.“

Page 4: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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]  

Page 5: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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]  

Page 6: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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]  

Page 7: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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.]  

Page 8: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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]  

Page 9: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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  

Page 10: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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

Page 11: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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

Page 12: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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?

Page 13: Agile Methoden - Lehrstuhl Softwaretechnik und

© 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.