Immer häufiger wird von agiler Software-Entwicklung, agilen Prozessen, agilen Frameworks oder agilen Projekten gesprochen. Aber was bedeutet das eigentlich? Und woher kommt dieser Begriff?
Das Wort Agil kommt aus dem Lateinischen (lat. agilis) und steht dort für flink und beweglich. Und genau diese Bedeutung hat es auch heute noch in der deutschen Sprache.
Das was wir heute im Zusammenhang mit Software und der Entwicklung von Software als agil bezeichnen, wurde etwa Anfang der 1990er Jahre geprägt. Ich hatte meine erste Berührung mit dem Thema etwa Anfang der 2000er Jahre.
Ein paar Daten, die ich dazu gefunden habe:
- 1995
der erste Konferenzbeitrag von Ken Schwaber zu Scrum auf der OOPSLA. - 1996
im Umfeld eines schwierigen Projekts entsteht Extreme Programming. - 1999
erscheint das erste Buch zu Extreme Programming von Kent Beck. - 2001
das „Agile Manifest“ wird verfasst und das erste Buch zu Scrum erscheint. - 2007
Kanban wird das erste Mal der Öffentlichkeit vorgestellt.
Vor 2001 wurde eher von leichtgewichter (engl. lightweight) Software-Entwicklung gesprochen und der Begriff „agil“ war noch nicht verbreitet.
Warum agile Software-Entwicklung?
Anfang der 1990er Jahre kam das Bedürfnis nach neuen Möglichkeiten Software zu entwickeln auf. Das hatte sicher damit zu tun, dass Software immer komplexer wurde. Anders als z.B. der Bau einer Brücke oder die Entwicklung eines Computers, ist die Entwicklung von Software ein kaum greifbarer Vorgang. Kritiker sagen sogar, dass dabei nicht eigentlich etwas hergestellt wird, sondern dass es sich nur um die Anwendung von Wissen – sozusagen einen kreativen Prozess – handelt.
Auch das Umfeld einer Software in Entwicklung neigt dazu sich permanent zu ändern. Das betrifft z.B. die Anforderungen, Schnittstellen zu anderen Systemen und den Benutzern, Programmiersprachen und die Hardware auf der das System laufen soll.
All diese Faktoren sorgen dafür, dass starre Prozesse in der Software-Entwicklung nicht so gut funktionieren. Besonders die häufigen Änderungen an den Anforderungen lassen klassische Projektmanagement-Methoden alt aussehen und verzögern (und verteuern) die Projekte.
Die agilen Methodiken versuchen da gegen zu steuern und ein Umfeld zu bieten, dass auf Änderungen an Anforderungen eingestellt ist („welcome change“) und den Entwickler-Teams die Möglichkeit gibt, ihr Wissen und ihre Stärken auszuspielen. Die agilen Methoden sind also tatsächlich das, was der Begriff „agil“ bedeutet: flink, beweglich (und flexibel).
Ob das reicht, um die Entwicklung von Software in den Griff zu bekommen, muss sich erst noch zeigen. Vielleicht taucht aber auch bald schon die nächste Gruppe von Methodiken am Horizont auf, macht alles besser und löst die agile Software-Entwicklung ab.