Neben Lean und Six Sigma gibt es viele andere Methoden, um Prozesse aufzubauen oder zu verbessern. Agile Software Development – agile Softwareentwicklung ist eine davon und wird bei Entwicklern immer beliebter. Der Begriff umfasst mehrere Softwareentwicklungsmethoden, darunter Scrum, Kanban und Lean Softwareentwicklung.
Agiles Manifest
Der Begriff “agil” entstand 2001 bei einem Treffen von Softwareentwicklern bei der Erstellung des Agile Manifests. Es enthält vier Kernaussagen, die sie bei bei Entwicklung von Software als wichtig erachten:
- Menschen und Interaktionen sind wichtiger als Prozesse und Werkzeuge
Software, die funktioniert ist wichtiger als Dokumentation
- Die Zusammenarbeit mit dem Kunden ist wichtiger als die Vertragsverhandlungen
- Der Umgang mit Veränderungen ist wichtiger als die Einhaltung eines Plans
Aus diesen vier Kernaussagen entstanden 12 Prinzipien, die eine agile Softwareentwicklung einhalten muss.
- Kundenzufriedenheit durch schnelle, kontinuierliche Bereitstellung von nutzbarer Software
- Spätere Änderungen der Kundenwünsche sind willkommen
- Eine gut funktionierende Software wird innerhalb eines Zeitraums von mehreren Wochen geliefert
- Die Entwickler arbeiten eng mit den Menschen zusammen, die das Tagesgeschäft gut kennen
- Die Projekte werden von motivierten und zuverlässigen Mitarbeitern durchgeführt
- Die beste Art der Kommunikation ist die Kommunikation in Form eines Gesprächs
- Die Bereitstellung von funktionsfähiger Software ist das Maß für den Fortschritt
- Die Entwicklung kann jederzeit fortgesetzt werden
- Es wird ständig auf technische Qualität und gutes Design geachtet
- Je weniger du tun musst, desto besser
- Die Teams organisieren sich selbst
- Eine Anpassung an die Gegebenheiten ist erforderlich
Dieses Manifest war eine Reaktion auf das traditionelle Projektmanagement, auch Wasserfallmethode genannt, bei der der Schwerpunkt auf geplanten Prozesschritten un einer Vielzahl von Dokumentationen liegt. In der agilen Softwareentwicklung ist es wichtig, auf (unerwartete) Veränderungen während des gesamten Prozesses reagieren zu können. Durch die Lieferung eines funktionierenden Teilprodukts alle zwei Wochen hat der Kunde die Möglichkeit, seine Wünsche zu ändern und das Entwicklungsteam hat die Zeit, Verbesserungen umzusetzen. Ziel ist es, letztendlich ein Endprodukt zu liefern, das den Wünschen des Kunden in vollem Umfang entspricht und sich an ändernde Gegebenheiten im Unternehmen oder die eingetretenen technischen Entwicklungen anpasst.
Merkmale
Typisch für agile Entwicklungsmethoden ist der kurze Zeitraum, in der Regel 1-4 Wochen, in dem die Software entwickelt wird. Diese Perioden werden Iterationen genannt und können als Teilprojekte betrachtet werden, die am Ende der Periode etwas Nützliches liefern. Dieser Prototyp wird getestet und bewertet, anschließend können Verbesserungen vorgenommen werden. So weiß das Entwicklungsteam, ob es auf dem richtigen Weg ist und die Iteration kann ohne Risiko gestartet werden. Dieser gesamte Prozess wird von einem Scrum Master überwacht.
Nicht nur das Produkt wird bewertet, sondern auch der Entwicklungsprozess. Ziel ist es, eine kontinuierliche Verbesserung anzustreben, eine Eigenschaft, die von der Lean-Methode übernommen wurde.
Im Gegensatz zur Wasserfallmethode, bei der es auf die Dokumentation ankommt, liegt der Schwerpunkt der agilen Softwareentwicklung auf dem persönlichen Kontakt. Dies ist auch der Grund, warum agile Entwicklungsteams immer an einem Ort arbeiten, um die Kommunikation zu verbessern.
Das letzte Merkmal von agil ist, dass bei jeder Iteration ein Teilprodukt geliefert wird, das tatsächlich funktioniert. Dieses Produkt muss sofort in bereits bestehende Software integriert werden können, um zu testen, ob alles einwandfrei funktioniert.