next up previous contents index
Nächste Seite: 7.6 Emergent Design Aufwärts: 7 Agile Softwareentwicklung Vorherige Seite: 7.4 Manifest agiler Softwareentwicklung   Inhalt   Index

7.5 Begriff Agilität

Neben dem Manifest der agilen Softwareentwicklung muss der Begriff Agilität zum Verständnis der agilen Softwareentwicklung betrachtet werden. Dabei wird von einer Welt ausgegangen, die einem ständigen Wandel unterliegt. Im Rahmen der Softwareentwicklung könnte sich die Welt z. B. wandeln durch:

Sowohl klassische als auch agile Softwareentwicklung beschreiben Mittel, um diesen Wandel zu bewältigen. So existiert in der klassischen Softwareentwicklung z. B. das Change Management und Risikomanagement. Der agile Vertreter Extreme Programming nimmt lediglich eine kurzfristige Planung vor, um auf Änderungen in den Anforderungen reagieren zu können.

Während die klassische Softwareentwicklung Wandel als ein erfolgreich zu verwaltendes Risiko betrachtet, sieht die agile Softwareentwicklung Wandel als eine Chance. Daraus leitet sich für die klassische Softwareentwicklung die Forderung ab, Wandel möglichst zu vermeiden bzw. die Auswirkungen auf das Projekt so gering als möglich zu halten. Für die agile Softwareentwicklung hingegen bedeutet dies, Wandel als integralen Bestandteil eines Projektes zu akzeptieren. Dies sind zwei vollständig entgegengesetzte Positionen in Bezug auf Wandel der Welt.

Akzeptiert man eine sich wandelnde Welt, dann bedeutet dies nicht, dass jede Planung sinnlos ist. Man ist sich vielmehr bewusst, dass Pläne keine Vorwegnahme der Zukunft sind, sondern lediglich eine Hypothese der zukünftigen Entwicklung darstellen. Deshalb kann man Pläne nicht realisieren, sondern man kann lediglich nachträglich die Qualität der Hypothese prüfen. Die Zukunft einer Welt ist dann nicht vorhersagbar, wenn die Welt auf Nicht-Linearität und Nicht-Determinismus beruht. Da die agile Softwareentwicklung von solch einer sich wandelnden Welt ausgeht, bildet das neue Weltbild50 die philosophische Grundlage der agilen Softwareentwicklung.

Agilität bedeutet aber nicht nur Wandel zu akzeptieren. Agilität geht einen Schritt weiter und fordert Wandel, wenn dies sinnvoll erscheint. Dies kann vorteilhaft sein, z. B. wenn man einen Wandel auslöst, dem die Konkurrenz nicht oder nur unter hohem Aufwand folgen kann. Wandel der Anforderungen kann sinnvoll sein, wenn sich durch die geänderten Anforderungen und die entsprechend realisierte Software höhere Geschäftswerte realisieren lassen.

Demnach müssen zwei Bedingungen erfüllt sein, damit eine Organisation (z. B. ein Unternehmen) als agil bezeichnet werden kann (nach Hig02, S. 5f und S. XXIII):

  1. Die Organisation akzeptiert und bewältigt Wandel.
  2. Die Organisation nutzt und löst Wandel zum eigenen Vorteil aus.
Das ist die Bedeutung von Agilität. Damit eine Organisation agil sein kann, muss sie gewandt sein (Hig02, S. 30f), d. h. sich schnell neuen Situationen anpassen können, teilweise auch durch Improvisation. Bevor man aber improvisieren kann, muss man zuerst das Gebiet beherrschen und die Grenzen kennen. Neben umfangreichen theoretischem Wissen setzt dies praktische Erfahrung voraus.51 Darüber hinaus muss eine agile Organisation flexibel sein (Hig02, S. 33f), d. h. die Bereitschaft zur Überarbeitung bewährter Vorgehen muss existieren. Das bedeutet nicht, dass sich die Organisation mit jedem Wandel selbst ändern muss, denn eine sich ständig verändernde Struktur ist keine Organisation. Es gilt somit eine Organisationsstruktur zu finden, die situationsabhängige Anpassungen zulässt.

Für die Softwareentwicklung bedeutet dies, den durch Wandel zusätzlich verursachten Arbeitsaufwand möglichst gering zu halten. Ein Mittel ist die Reduzierung der zu ändernden Dokumentation. Weiterhin kann der Einsatz von Werkzeugen helfen, Wandel effektiv zu bewältigen. Dabei darf aber kein Wandel ausgelöst werden, um das Vorhandensein der Werkzeuge zu rechtfertigen. Weitere konkrete Umsetzungen von Agilität finden sich bei den einzelnen Vertretern der agilen Softwareentwicklung und werden an dieser Stelle nicht diskutiert.

Vor der Formulierung des Manifest agiler Softwareentwicklung wurden die heute als agil bezeichneten Methodiken als ,,leicht`` charakterisiert. Der Begriff ,,leicht`` ist allerdings nicht treffend, da man in diesem Zusammenhang annehmen könnte, dass klassische Vorgehensmodelle von bestimmten Aktivitäten und Artefakten bereinigt werden und somit die agilen Methodiken lediglich eine Teilmenge der klassischen Vorgehensmodelle sind. Wie bereits an den beiden vorgestellten Vertretern der agilen Softwareentwicklung deutlich gezeigt wurde, ist dem nicht so. ,,Leicht`` bezieht sich somit auf die Gestaltung der Softwareentwicklung. Gemeint sind damit wenig formalisierte Methodiken, die ,,leicht aber ausreichend`` (Coc03, S. 233) sind. Tatsächlich können aber auch sehr stark formalisierte Projekte agil sein, wenn sie Wandel akzeptieren und Wandel bewusst gestalten und damit das neue Weltbild als philosophische Basis wählen.


next up previous contents index
Nächste Seite: 7.6 Emergent Design Aufwärts: 7 Agile Softwareentwicklung Vorherige Seite: 7.4 Manifest agiler Softwareentwicklung   Inhalt   Index
Sebastian Stein 2004-08-30