1. Juli 2022 von Stefan Mönk
#1 Agile Softwareentwicklung – wir arbeiten agil! Wirklich?
Dem Begriff „Agilität“ möchte ich gerne eine aufeinander aufbauende Blog-Serie widmen. Dabei soll es um Themen wie agile Softwareentwicklung, agile Frameworks, agiles Mindset und agile Methoden gehen. Mein Ziel ist es, dass jede und jeder – von klassischen Wasserfallmanagerinnen und managern bis zu Vollblut-Agilistinnen und -Agilisten – etwas für sich zum Mitnehmen findet. Um eine Basis für alle weiteren Diskussionen sowie für den weiteren Austausch zu ermöglichen, möchte ich zunächst ein einheitliches Grundverständnis schaffen. Dafür möchte ich ganz am Anfang starten und fragen: Was bedeutet überhaupt „agil“? Das Wirtschaftslexikon Gabler erklärt dies unabhängig von der Softwareentwicklung:
Agilität ist die Gewandtheit, Wendigkeit oder Beweglichkeit von Organisationen und Personen beziehungsweise in Strukturen und Prozessen. Man reagiert flexibel auf unvorhergesehene Ereignisse und neue Anforderungen. – Gabler Wirtschaftslexikon
Kurzgefasst, es werden Dinge passieren, die wir nicht vorhersehen können. Trotzdem werden wir darauf reagieren müssen, und das wird am besten gelingen, wenn wir diesen Umstand zuerst einmal akzeptieren und Veränderung als etwas Positives verstehen. Bei adesso gibt es einen klaren Fokus auf die Softwareentwicklung. Daher möchte ich auch hier den Schwerpunkt setzen.
Erste agile Ansätze lassen sich bereits früh nachverfolgen. So haben die NASA und IBM erste agile Methoden beispielsweise schon 1950 eingeführt. Das Incremental Iterative Development, kurz IID, zeichnete sich schon damals durch iterative Teamarbeit, anschließende Review-Phasen und ein besseres Verständnis von Änderungen durch neue Erkenntnisse aus.
Die IEEE Computer Society fasste die Methodik von IID im Jahr 2003 so zusammen:
Key steps in the process were to start with a simple implementation of a subset of the software requirements and iteratively enhance the evolving sequence of versions until the full system is implemented. At each iteration, design modifications are made along with adding new functional capabilities.
Wir halten also fest: Agile Softwareentwicklung ist nichts Neues. Es wird bereits seit über 70 Jahren daran gefeilt. Damals wie heute gilt: Wenn man verstanden hat, dass unvorhersehbare Ereignisse passieren werden, kann darauf mit einer größeren Vernunft und Besonnenheit reagiert werden. Das tun wir, indem wir immer nur kleine Schritte gehen, zurückschauen, daraus lernen und das Gelernte im nächsten kleinen Schritt wieder anwenden. Wir inspizieren, was wir erreicht haben, und wir adaptieren unser Verhalten und Tun, um noch besser zu werden.
Die 2000er als agile Revolution
Ein entscheidendes Momentum der Agilität finden wir vermutlich im Jahr 2001. Im Februar 2001 versammelten sich in den USA in Utah 17 Softwareentwicklerinnen und -entwickler, um über effizientere Methoden in der Softwareentwicklung zu sprechen. Das Ergebnis beinhaltet das bis heute relevante Agile Manifest sowie dessen 12 Prinzipien. Das Manifest ist sich des Umstandes bewusst, dass es kein Schwarz-Weiß in der Projekt- und/oder Produktentwicklung geben kann. So werden die klassischen Ansätze wie Prozesse und Werkzeuge, umfassende Dokumentation, Vertragsverhandlungen und das Befolgen eines Planes geschätzt und geachtet. Jedoch werden diese Punkte weniger gewichtet als Individuen und Interaktionen, funktionierende Software, Zusammenarbeit mit den Kundinnen und Kunden sowie das Reagieren auf Veränderung.
Vereinfacht könnte es folgendermaßen zusammengefasst werden: Wir konzentrieren uns im agilen Denken mehr auf die bewusste Kommunikation mit- und untereinander, anstatt diese durch Prozesse, Schriftverkehr und Toolings zu ersetzen.
Die 12 Prinzipien des agilen Manifests sollen diesem mehr Gewicht und Leichtigkeit im Alltag verleihen. Sie beschreiben Denkweisen und Orientierungspunkte für ein agiles Mindset. Dieses Thema werde ich auch noch in einem meiner folgenden Artikel genauer beleuchten.
Agile Softwareentwicklung in der Praxis
Wir nehmen mit: Wenn es um Agilität geht, wollen wir flexibel auf unvorhergesehene Ereignisse reagieren. Veränderung ist gut. Veränderung ist ein Vorteil für unsere Kundinnen und Kunden, denn mit jeder Veränderung kommt unser System einen Schritt näher an das heran, was die Kundin oder der Kunde tatsächlich braucht. Hierhinter steckt einer der vermutlich wichtigsten Punkte der gesamten Softwareentwicklung: Agiles Handeln macht es uns leichter, den Wert, den unser Produkt liefert, zu messen.
Kann eine Kundin oder ein Kunde damit etwas anfangen oder wurde nur einfach irgendetwas entwickelt? Wenn wir diese Frage nun mit einer verstärkten Kommunikation von Angesicht zu Angesicht verbinden, werden wir anfangen, die Dinge nicht mehr nur durch unsere eigene Brille zu sehen. Wir verstehen den User immer mehr und können dadurch tatsächlich einen Mehrwert für diesen generieren.
Kurz gesagt, Entwicklerinnen und Entwickler brauchen den direkten Kontakt zu den Fachleuten. Projekt- und Produktverantwortliche brauchen Akzeptanz und Verständnis für unvorhersehbare Ereignisse – vor allem in Bezug auf Schätzungen und Planbarkeit. Das Management braucht Vertrauen gegenüber seinen Mitarbeitenden. Kundinnen und Kunden müssen bei der Frage, was Agilität bedeutet und wie die Prozesse innerhalb der agilen Softwareentwicklung funktionieren, abgeholt werden.
Man kann Agilität implementieren. Das machen sogar sehr viele Unternehmen. Aber welches Unternehmen lebt Agilität tatsächlich? Wie viele der Kolleginnen und Kollegen kennen die Inhalte des agilen Manifests, der 12 Prinzipien oder wissen, welche Werte das angewandte Framework tatsächlich vertritt und voraussetzt? Die Gefahr von Agilität ist, zu glauben, es einfach tun zu können, und dabei die Basis vollkommen zu vernachlässigen. Mehr über agile Werte und Prinzipien sowie Empirie folgt übrigens in meinen nächsten Blog-Beiträgen. Agile Softwareentwicklung bedeutet mehr als regelmäßige Meetings und kurze Entwicklungszyklen.
Agilität muss gelebt werden, damit andere sie nachleben können.
Wir erschließen bessere Wege, Software zu entwickeln, indem wir es selbst tun und anderen dabei helfen.
Habt ihr diesen Satz schon mal gehört? Es handelt sich um den ersten Satz des agilen Manifests und ich finde, er ergibt Sinn.
Weitere spannende Themen aus der adesso-Welt findet ihr in unseren bisher erschienenen Blog-Beiträgen.