Agile Softwareentwicklung kurz erklärt
Die Grundidee agiler Softwareentwicklung ist es, funktionsfähige Software schnellstmöglich und ohne große bürokratische Hürden bereitzustellen.
Wie der Name schon sagt, geht es darum, Softwareentwicklung „agil“, also beweglich, zu halten. Software wird so kontinuierlich weiterentwickelt, oft sind es nur kleine Anpassungen, die aber schnell ausgeführt werden sollen.
Im Idealfall arbeitet ein kleines Team, das aus Entwicklern und Vertretern des Kunden besteht, während des gesamten Lifecycles der Softwareentwicklung zusammen. Regelmäßige persönliche Treffen verkürzen die Kommunikationswege, statt ausführlicher Dokumentationen steht das „Machen“ im Vordergrund. Damit unterscheidet sich die agile Softwareentwicklung sehr von der klassischen Softwareentwicklung.
Bei der klassischen Softwareentwicklung dauert es im Regelfall recht lange, bis die erste Codezeile programmiert wird. Stattdessen muss der Kunde seine Anforderungen in einem Lastenheft detailliert aufschreiben. Je nach Komplexität der benötigten Software kann dieser Punkt ziemlich viel Zeit in Anspruch nehmen. Oft wird aber erst nach Projektstart deutlich, welche Funktionen der Kunde tatsächlich braucht. Die Integration neuer Funktionen in ein bestehendes Projekt ist im Regelfall mühsam – und kostenintensiv.
Hier spielt die agile Softwareentwicklung ihre große Stärke aus. Da Kunde und Entwickler kontinuierlich zusammenarbeiten, lassen sich Veränderungen und damit notwendige neue Funktionen, relativ zeitnah gemeinsam umsetzen.
Agiles Manifest: Grundlage für agile Softwareentwicklung
Die agile Softwareentwicklung bzw. agiles Projektmanagement beruht im Prinzip auf vier Leitsätzen, die 2001 im Agilen Manifest (englisch: Manifesto for Agile Software Development) von Kent Beck, Ken Schwaber und Jeff Sutherland (Begründer von SCRUM) und zahlreichen weiteren führen Softwareentwicklern formuliert wurden.
- Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge
- Funktionierende Software ist wichtiger als umfassende Dokumentationen
- Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlungen
- Auf eine Veränderung zu reagieren ist wichtiger als das Befolgen eines Plans
Zusammengefasst lässt sich sagen, dass eine erfolgreiche Softwareentwicklung zwar einen formalen Rahmen wie einen Vertrag und standardisierte Prozesse benötigt, dass aber der ständige Austausch, gegenseitige Rücksichtnahme und flexibles Arbeiten mindestens ebenso wichtig ist.
Neben den vier Leitsätzen enthält das Agilen Manifest zwölf Prinzipien, die bei der agilen Softwareentwicklung berücksichtigt werden sollen:
- Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.
- Heiße Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden.
- Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kürzere Zeitspanne.
- Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten.
- Errichte Projekte rund um motivierte Individuen. Gib ihnen das Umfeld und die Unterstützung, die sie benötigen und vertraue darauf, dass sie die Aufgabe erledigen.
- Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteams zu übermitteln, ist im Gespräch von Angesicht zu Angesicht.
- Funktionierende Software ist das wichtigste Fortschrittsmaß.
- Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmäßiges Tempo auf unbegrenzte Zeit halten können.
- Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität.
- Einfachheit — die Kunst, die Menge nicht getaner Arbeit zu maximieren — ist essenziell.
- Die besten Architekturen, Anforderungen und Entwürfe entstehen durch selbstorganisierte Teams.
- In regelmäßigen Abständen reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.
Fazit: Agile Softwareentwicklung vs. klassische Softwareentwicklung
Der größte Vorteil der agilen Softwareentwicklung ist die Zeitersparnis, bis erste Ergebnisse vorliegen. Außerdem ist die leichtere Anpassbarkeit der Software ein großer Vorteil im Vergleich zur klassischen Softwareentwicklung. Wie erfolgreich eine agile Softwareentwicklung ist, hängt aber letztendlich immer von der Zusammenarbeit des jeweiligen Teams ab.
Oder anders gesagt: Die agile Arbeitsweise lohnt sich vor allem dann, wenn das finale Ziel eines Softwareprojekts nicht klar definiert werden kann, weil die produzierenden Ergebnissen regelmäßig am Markt gemessen werden müssen.
Die klassische Projektplanung lohnt sich, wenn das Ziel definitiv im vornherein ganz klar definiert werden kann. Dann ist diese Form der Zusammenarbeit effizienter.
Bildnachweis: Antonov Maxim/Shutterstock.com
0 Comments