Agile Softwareentwicklung
Agile Softwareentwicklung (dt. agil= wendig, beweglich) ist eine spezielle Art der Softwareentwicklung, die sich dadurch auszeichnet, dass sie möglichst unbürokratisch, einfach und iterativ abläuft. Die Vorteile dieser Vorgehensweise bestehen in einer enormen Kosten- und Zeitersparnis gegenüber herkömmlichen Programmierverfahren.
Hintergrund
Die agile Softwareentwicklung als Begriff existiert erst seit Beginn der 2000er-Jahre. Erste vergleichbare Einzelaspekte dieser Methode finden sich bereits in den frühen 1990er-Jahren. Mit seinem Werk „Extreme Programming“ aus dem Jahr 1999 schuf ein Team um den Informatiker Kent Beck eine Art theoretische Grundlage für zukünftige agile Prozesse. Im Jahr 2001 wurde schließlich das „Agile Manifest“ einer Forschergruppe um Kent Beck formuliert, das die Grundsätze der agilen Softwareentwicklung beinhaltet:
„Manifest für Agile Softwareentwicklung
Wir erschließen bessere Wege, Software zu entwickeln,
indem wir es selbst tun und anderen dabei helfen.
Durch diese Tätigkeit haben wir diese Werte zu schätzen gelernt:
Individuen und Interaktionen mehr als Prozesse und Werkzeuge
Funktionierende Software mehr als umfassende Dokumentation
Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
Reagieren auf Veränderung mehr als das Befolgen eines Plans
Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden,
schätzen wir die Werte auf der linken Seite höher ein.“ [1]
Schon ein Blick auf dieses Manifest zeigt, dass diese Form der Softwareentwicklung vom Standard radikal unterscheidet. Im Zentrum stehen bei agiler Softwareentwicklung die Funktionalität sowie der User. Pläne und Verträge werden der Kooperation und der Veränderung untergeordnet.
Schon kurz nach Veröffentlichung des Manifests begann die Nachfrage nach agiler Softwareentwicklung zu steigen. Im Jahr 2005 gaben 14 Prozent der im Auftrag von Forrester Research befragten Unternehmen in Europa und Nordamerika an, bereits mit agilen Methoden zu arbeiten. Acht Jahre später ermittelte eine weitere Studie von VersionOne, dass mehr als 80 Prozent der befragten Unternehmen auf Methoden der agilen Softwareentwicklung setzen.[2]
Bestandteile
Das agile Manifest umfasst 12 Prinzipien, die Methoden vorangestellt werden:
1. Zufriedene Kunden durch schnelle Entwicklung und Lieferung von Software
2. Durch schnelle Veränderungen bei agilen Prozessen erzielt der Kunde einen Wettbewerbsvorteil
3. Funktionierende Software wird in kurzen Zeiträumen geliefert
4. Intensive Zusammenarbeit von Codern und Fachleuten während der Projektphasen
5. Schaffen eines motivierenden Umfelds für die erfolgreiche Arbeit
6. Möglichst nur face-to-face-Kommunikation bei Absprachen
7. Das Maß für den Fortschritt ist der Fortschritt bei Leistung und Funktion der Software
8. Nachhaltige Entwicklung wird durch einen gleichmäßigen Arbeitsrhythmus geschaffen
9. Der permanente Fokus liegt auf perfektem Design und perfekter Technik
10. Es gilt immer das Prinzip der Einfachheit
11. Teams arbeiten selbstorganisiert
12. Teams reflektieren ihre eigene Arbeit, um die Effizienz zu steigern
Um den Prinzipien Folge zu leisten, werden agile Methoden genutzt, die wiederum darauf abzielen, möglichst wenig administrativen und bürokratischen Aufwand zu schaffen, der die Produktivität negativ beeinflussen könnte. Typische agile Methoden sind z.B.:
- die testgetriebene Entwicklung
- Story Cards als Teil der User Story
- Paarprogrammierung
Agile Prozesse beschleunigen die Arbeit im Rahmen der Softwareentwicklung. Zu den beliebtesten gehören:
- Crystal
- Extreme Programming
- Scrum
Vor- und Nachteile
Die Vorteile der agilen Softwareentwicklung sind schnell zu nennen. Zum einen benötigen agile Prozesse weniger Zeit und Planungsspannen, bis ein Ergebnis vorliegt und zum anderen können damit Kosten eingespart werden. Darüber hinaus kann agile Software schnell angepasst werden, wenn sich Veränderungen ergeben. Dies können sowohl marktspezifische Änderungen als auch allgemeine Anforderungen an die Software sein. Eine detaillierte Liste aller durchzuführenden Aufgaben (Sprint Backlog) hilft hier bei der Zielerreichung. Trotz aller Vorteile, unterliegen auch agile Entwicklerteams immer allgemeinen Vorgaben wie Budgets oder Deadlines, welche letzten Endes den Rahmen für die Arbeit vorgeben. Zugleich hängt der Erfolg eines Projekts nie allein von der Methode, sondern auch von der Zusammenarbeit im Team ab. Demnach kann die agile Softwareentwicklung eine sinnvolle Variante zu herkömmlichen Verfahren bei der Softwareentwicklung sein. Sie ist jedoch keine Pauschallösung für erfolgreiche Software.
Einzelnachweise
- ↑ Agile Manifesto agilemanifesto.org Abgerufen am 26.02.2017
- ↑ 7th annual state of agile development survey versionone.com Abgerufen am 06.05.2014
Weblinks
- Agile Methoden im Vergleich
- Übersicht über Extreme Programming
- 44-seitiges Skript über agile Softwareentwicklung
- Scaling software agility