Aktualisiert am 25.09.2019
4. Vom Anfänger zum Profi

Agile Softwareentwicklung in Kürze

Wenn du heutzutage professionell Software entwickelst, kommst du an Agiler Software-Entwicklung nicht vorbei; in diesem Beitrag erkläre ich dir, was das genau ist und warum agile Entwicklung heute de facto der Industriestandard ist.

Ein historischer Abriss

In Kürze zusammengefasst bezeichnet Agile Software-Entwicklung das Programmieren mit minimalem bürokratischem Aufwand bei größtmöglicher Flexibilität, sich an Veränderungen anzupassen. Vielleicht wird der Begriff klarer, wenn man sich das Gegenmodell anschaut: Inbesondere bevor das Internet in seiner heutigen Form die Welt erobert hat, wurde Software in einem ganzen Stück von Anfang bis Ende gebaut, fertig dem Kunden übergeben und im Normalfall danach selten wieder angefasst. Um böse Überraschungen zu vermeiden, wurde die Entwicklung von riesigem bürokratischen Aufwand begleitet, von Verträgen bis hin zum Projektmanagement.

Zu Zeiten, als man Software auf Datenträgern in Geschäften gekauft hat, hatte dieses Modell durchaus seine Daseinsberechtigung, aber mit den heutigen technischen Möglichkeiten, Software an den Kunden auszuliefern und aktuell zu halten hat sich auch die Entwicklung von Software revolutioniert. Software ist heutzutage nicht mehr "fertig" entwickelt, sondern eher als Service angeboten – und oft auch bezahlt, weshalb wir heute eher Abos bezahlen als einen einmaligen Kaufpreis.

Und von Software, die in Austausch mit dem Kunden weiterentwickelt wird ist der logische Weg dann auch nicht mehr weit zu einer Software-Entwicklung, die den Kunden von Anfang an im Fokus hat und schnell auf Veränderungen von Anforderungen oder der Marktsituation reagieren können möchte.

Das ist agile Software-Entwicklung

Auch wenn es agile Programmierung so oder so ähnlich auch schon vorher gegeben hat – richtig Fahrt aufgenommen hat das Konzept mit dem Agile Manifesto, das im Jahr 2001 von einer Handvoll von Programmier-Avantgardisten verschiedenster Couleur beim produktiven Skifahren in Utah erstellt wurde und wie folgt lautet:

"We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more."

In Kürze übersetzt legt das agile Manifest Wert auf

  • gut zusammenarbeitende und kommunizierende Teams (zum Beispiel mit Kanban, Sprints und Daily Standup Meetings)
  • funktionierende, einfach verständliche, benutzbare Software (UX Design ist nicht umsonst quasi zeitgleich mit agiler Entwicklung enstanden)
  • einen engen Kontakt mit dem Kunden ab der ersten Sekunde an
  • Flexibilität, sich neuen Anforderungen oder Gegebenheiten anzupassen

Die Realität in der IT-Branche

Auch wenn sich heutzutage quasi jede Firma, die Software macht, agile Entwicklung auf die Fahnen schreibt, wird dort nicht unbedingt komplett agil entwickelt. Man sollte die agile Software-Entwicklung in der Realität eher als ein Vorbild verstehen, an das sich manche mehr und manche weniger halten – aber am Ende des Tages ist und bleibt es dennoch der Industriestandard.

Die durchaus als Teil von agiler Softwareentwicklung zu sehende Projektmanagement-Methodik Scrum ist ein gutes Beispiel dafür: hier gelten klare Regeln, an denen sich beileibe nicht alle halten, die von sich behaupten, nach Scrum zu arbeiten. So verhält es sich auch mit agiler Software-Entwicklung im Ganzen: wirklich zu hundert Prozent hält sich kaum jemand daran, aber die meisten picken sich zumindest ein paar wichtige Rosinen heraus und orientieren sich grundsätzlich an dem, was das Agile Manifest beschreibt. Und genau deswegen kommst du im Arbeitsleben an agiler Entwicklung auch nicht vorbei und solltest zumindest grundsätzlich wissen, worum es dabei geht.

Zusammenfassung

  • Agile Software-Entwicklung minimiert Bürokratie und maximiert Flexbilität
  • Der Kunde und die Software stehen im Vordergrund
  • Teams und Kommunikation sind unabdingbar
  • Iteration ist wichtiger als verfrühte Perfektion