Glossar – Agile Softwareentwicklung

GLOSSAR


AGILE SOFTWAREENTWICKLUNG

Was ist Agile Softwareentwicklung?

Agile Softwareentwicklung bezeichnet Ansätze im Softwareentwicklungsprozess, welche die Transparenz und Veränderungsgeschwindigkeit erhöhen und zu einem schneller möglichen Einsatz des entwickelten Systems führen sollen, um so Risiken und Fehlentwicklungen im Entwicklungsprozess zu verhindern bzw. minimieren. Dazu wird versucht, die Entwurfsphase zu reduzieren und im Entwicklungsprozess so früh wie möglich zu benutzbarer Software zu gelangen. Diese wird in regelmäßigen, kurzen Abständen mit dem Kunden reviewed. So ist es möglich, flexibel auf Kundenwünsche einzugehen, um so die Kundenzufriedenheit erhöhen. Agile Ansätze können sich auf Teile oder auf den gesamten Softwareentwicklungsprozess beziehen. Das Ziel dabei ist, den Entwicklungsprozess flexibler und schlanker zu machen.

Woher kommt die Agile Softwareentwicklung?

Die adaptive Software-Entwicklung entstand in den frühen 1970er Jahren. Erste Ansätze zu agiler Softwareentwicklung sind Anfang der 1990er Jahre zu finden. Popularität erreichte sie gegen 1999, als Kent Beck das Buch zu Extreme Programming veröffentlichte. Es ebnete den Weg für andere agile Prozesse und Methoden. Zu Beginn war Extreme Programming die gängigste agile Methode, seit 2006 ist mit weitem Abstand Scrum die gängigste agile Methode. Die Bezeichnung agil wurde im Februar 2001 bei einem Treffen in Utah auf Vorschlag von Mike Beedle ausgewählt, als Ersatz für das bis dahin gebräuchliche lightweight (aus dem englischen "leichtgewichtig"). Bei diesem Treffen wurde auch das Agile Manifest formuliert.

Welche Bestandteile enthält die Agiler Softwareentwicklung?


Agile Leitsätze

Vier Leitsätze wurden im Februar 2001 als Agiles Manifest (im englischen Manifesto for Agile Software Development) formuliert:

- 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

Agile Prinzipien

Agile Prinzipien sind Leitsätze für agile Arbeit. Bei schwergewichtigen Prozessen werden Prinzipien von umfangreichen Methodenbeschreibungen überlagert und lassen Prinzipien in den Hintergrund treten. Die Benennung der Prinzipien soll ihnen gegenüber formalen Methoden wieder mehr Gewicht verleihen.

Im Agilen Manifest sind zwölf Prinzipien aufgelistet:

- Zufriedenstellung des Kunden durch frühe und kontinuierliche Auslieferung von wertvoller Software
- Agile Prozesse nutzen Veränderungen (selbst spät in der Entwicklung) zum Wettbewerbsvorteil des Kunden.
- Lieferung von funktionierender Software in regelmäßigen, bevorzugt kurzen Zeitspannen (wenige Wochen oder Monate)
- Zusammenarbeit von Fachexperten und Entwicklern während des Projektes (Bsp.: Gemeinsamer Code-Besitz
- Bereitstellung des Umfeldes, welche von motivierten Individuen für die Aufgabenerfüllung benötigt wird
- Informationsübertragung nach Möglichkeit im Gespräch von Angesicht zu Angesicht
- Als wichtigstes Fortschrittsmaß gilt die Funktionsfähigkeit der Software
- Einhalten eines gleichmäßigen Arbeitstempos von Auftraggebern, Entwicklern und Benutzern
- Ständiges Augenmerk auf technische Exzellenz und gutes Design
- Einfachheit ist essenziell (KISS-Prinzip)
- Die besten Architekturen, Anforderungen und Entwürfe entstehen in selbstorganisierten Teams
- Selbstreflexion der Teams über das eigene Verhalten zur Anpassung im Hinblick auf Steigerung der Effektivität

Agile Methoden

Agile Methoden sollen dazu dienen, dass die Aufwandskurve möglichst niedrig bleibt. Änderungen oder neue Anforderungen sollen dadurch mit wenig Aufwand berücksichtigt werden können. Streng genommen bezeichnet agile Methode eine an Agilität ausgerichtete Methode zur Softwareentwicklung.

Agile Prozesse

Zu den bekanntesten agilen Prozessen zählen: - Scrum
- Extreme Programming (XP)
- Kanban
- Scrumban
- Dynamic Systems Development Method (DSDM)
- Feature Driven Development (FDD)
- Adaptive Software Development (ASD)
- Crystal

Was ist eine Agile Bewertung?

Eine agile Bewertung gibt Auskunft , inwieweit agile Werte in Prozesse und Methoden umgesetzt wurden. Mit dem Agility Index Measurements gibt es den Vorschlag, Softwareprojekte genauso wie bei CMMI anhand fester Faktoren zu bewerten. Der ähnlich benannte Agility Measurement Index bewertet die Entwicklung von Softwareprojekten in fünf unterschiedlichen Dimensionen (Dauer, Risiko, Erfindungsreichheit, Aufwand und Interaktion). Weiterhin gibt es agile Selbstbewertungen, um zu bestimmen, ob ein Team auf agile Weise arbeitet.