2. Agile Entwicklung
Flexibilität und schnelle Reaktionen auf geänderte Anforderungen
“Agile Softwareentwicklung bezeichnet Ansätze im Softwareentwicklungsprozess, die die Transparenz und Flexibilität erhöhen und zu einem schnelleren Einsatz der entwickelten Systeme führen sollen, um so Risiken im Entwicklungsprozess zu minimieren. Die Kernidee besteht darin, Teilprozesse möglichst einfach und somit beweglich (=agil) zu halten.” (Siepermann/ Gabler 2018)
Die agile Softwareentwicklung ist in Abgrenzung zu klassischen Softwareentwicklungsmethoden wie dem Wasserfall oder V-Modell entwickelt worden. Zugrunde liegt die Feststellung, dass sich Anforderungen und Wünsche von Kund*innen laufend ändern und Softwareprojekte nicht im Voraus detailliert planbar sind. Starre Vorgehensweisen können zu aufwändigen nachträglichen Anpassungen führen, während durch agile Prinzipien veränderte Anforderungen bereits im laufenden Prozess berücksichtigt werden können.
→ Gabler Wirtschaftslexikon: Agile Softwareentwicklung
Im Jahr 2001 veräffentlichte die Agile Alliance im Rahmen des Agilen Manifests vier Leitsätze der agilen Entwicklung. Sie lauten:
- Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge
- Funktionierende Software ist wichtiger als umfassende Dokumentationen
- Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlungen
- Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans
Basierend auf den Leitsätzen enthält das Agile Manifest außerdem 12 Agile Entwicklungs-Prinzipien.
→ The Agile Manifesto Authors 2001-1019→ Agile Alliance
Agilität im Projektkontext
- unterschiedliche Stakeholder-Gruppen (Assistenznehmer*innen, Assistent*innen, Teamleitungen Assistenzfirmen)
- vielfältige Rollen-Anforderungen (Requirements-Engineering, Software-Architektin, Projektmanagerin, Frontend-Entwicklerin, App-Entwicklerin mit Schwerpunkt Backend, Stakeholder-Kommunikatorin)
- Iterative Entwicklungsphasen, in denen Methodiken ausgewählt, abgewogen und wieder verworfen werden
- laufende Optimierung des Prozesses mit hoher Flexibilität, ohne starre Vorgehensweise
Methoden und Techniken
- Scrum (angepasst): Sprints & Sprint-Planning, insb. in der Anforderungsanalyse, bei den UML-Modellierungen und in der Implementierung
- **Kanban: ** Kanban-Boards auf GitHub Projects
- Stakeholder Mapping: Regelmäßiger Einbezug der relevanten Stakeholder, Anpassen der Anforderungen, Personas etc.
- Design Thinking & Prototyping: Schnelles Entwickeln von Prototypen, interaktive Mockups für frühe Feedbacks zu User Flows, Navigation und Inhalten
- Flexibles Rollenmanagement: Dynamische Anpassung der eigenen Rolle je nach Kommunikationspartner*in, Kontext und Zwischenziel