#9: Agile Entwicklung versus agile Systeme

101 Dinge, die ich bei KnowGravity lernte, 2. Februar 2023, Markus Schacher

Heute sind agile Ansätze fester Bestandteil in der Entwicklung von IT-Systemen. Kern dieser Ansätze ist, dass in kurzen Sprints diejenigen Features realisiert werden, welche den Benutzern den grössten Nutzen bringen und die inhaltlich am klarsten sind. Das Wort „Agilität“ stammt vom lateinischen „agilitas“ und bedeutet „Beweglichkeit“. Wenn von agilen Ansätzen gesprochen wird, stelle ich mir oft die Frage, wer oder was denn „beweglich“ sein soll: Ist es das Entwicklungsteam, das agil auf stetig ändernde Anforderungen reagiert soll oder ist es das zu entwickelnde System, das sich rasch an neue Gegebenheiten anpassen lassen soll?

Je agiler ein System sein soll, umso wichtiger ist es, dass diese Agilität auch Teil seiner DNA wird: Seine Nutzer müssen es über einen längeren Benutzungs-Zeitraum mit minimalem Aufwand neuen Gegebenheiten anpassen können. Das ist die zentrale Aufgabe der „Architektur“: Ein System resilient zu machen. Das gilt unabhängig davon, ob es sich beim „System“ um eine Applikation, eine Maschine, ein Gebäude oder um ein Unternehmen handelt. Aus diesem Grund erfordert ein (langlebiges) Massenprodukt Agilität im System, wogegen eine (langlebige) Einzelanfertigung Agilität in der (Weiter-)Entwicklung und Wartung erfordert.

Für die Gestaltung agiler Systeme braucht es erfahrenes Engineering; für agile Entwicklung erfahrenes Management.