Agile Softwareentwicklung
Übersicht
zuletzt besuchte Definitionen...
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. In 2001 entstand das sogenannte Manifest für agile Softwareentwicklung, das aus vier Werten und zwölf Prinzipien besteht. Die vier Werte
- „Individuen und Interaktionen mehr als Prozesse und Werkzeuge
- Funktionierende Software mehr als umfassende Dokumentation
- Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
- Reagieren auf Veränderung mehr als das Befolgen eines Plans“
besagen, dass für eine erfolgreiche Entwicklung von Programmen zwar formale Grundlagen wie standardisierte Prozesse, Dokumentation sowie vorgegebene Rahmen und Handlungsanweisungen durch Verträge notwendig sind, weiche Kriterien wie Kommunikation, Rücksichtnahme auf Beteiligte und flexibles Agieren jedoch mindestens ebenso wichtig sind.
Um diese Werte zu berücksichtigen, wurden deshalb die zwölf Prinzipien formuliert, die bei der agilen Softwareentwicklung befolgt 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 Entwicklungsteam 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.“
Beispiele für agile Methoden in der Softwareentwicklung sind Crystal, eXtreme Programming, Scrum, oder Feature Driven Development.