Agiles Manifest (Manifest für agile Softwareentwicklung)
Was ist das Agile Manifest?
Das Agile Manifest ist ein Dokument, das vier zentrale Werte und zwölf Prinzipien festlegt, die Softwareentwickler nach Ansicht seiner Verfasser als Leitlinien für ihre Arbeit verwenden sollten.
Das offiziell als Manifest für Agile Softwareentwicklung (Manifesto for Agile Software Development) bezeichnete Dokument wurde von 17 Entwicklern während eines Ausflugs vom 11. bis 13. Februar 2001 in der Lodge des Skiresorts Snowbird in Utah verfasst.
Die Entwickler nannten sich selbst Agile Alliance. Sie suchten nach einer Alternative zu den bestehenden Softwareentwicklungsprozessen, die sie als kompliziert, unflexibel und zu sehr auf Dokumentationsanforderungen fokussiert empfanden. Zu den Entwicklern gehörten unter anderem Kent Beck, Arie van Bennekum, Alistair Cockburn, Andrew Hunt und Jeff Sutherland. Die Mitglieder der ursprünglichen Allianz verfügten über Erfahrung in der Softwareentwicklung und im Unternehmertum.
Das erklärte Ziel der Entwickler war nicht die Ablehnung von Methodik, sondern vielmehr die Wiederherstellung der Glaubwürdigkeit des Begriffs Methodik. Darüber hinaus suchten die Entwickler nach einem Gleichgewicht zwischen den bestehenden Entwicklungsmethoden und den neuen Alternativen. Sie räumten ein, dass sie Modellierung und Dokumentation akzeptierten, jedoch nur, wenn diese einen klaren, vorteilhaften Nutzen hatten.
Die Entwickler erklärten auch, dass Planung zwar wichtig sei, man jedoch akzeptieren müsse, dass sich Pläne ändern können und Flexibilität für diese Änderungen erforderlich ist. Insgesamt konzentriert sich das Manifest darauf, Menschen und Interaktionen gegenüber Prozessen und Werkzeugen den Vorrang zu geben.
Agiles Projektmanagement bringt agile Teams aus Programmierern, Stakeholdern und Anwendern zusammen, um agile Prinzipien zu unterstützen. Die Teammitglieder führen persönliche Gespräche, sowohl vor Ort als auch aus der Ferne, und kommunizieren regelmäßig, um den Fortschritt zu messen. Dieser Ansatz unterstützt den wichtigsten Aspekt des agilen Prozesses – die schrittweise Entwicklung von Software unter Einbeziehung der Nutzer, im Gegensatz zu einem Endprodukt mit minimaler Nutzerinteraktion.
Entwicklung des Agilen Manifests
Das Bekenntnis zur schrittweisen Entwicklung von Software mit regelmäßigen Erweiterungen und Phasen ist das, was den agilen Ansatz in der Softwareentwicklung ausmacht. Der Ansatz bietet den Nutzern neue Versionen oder Releases der Software nach kurzen Arbeitsphasen, die oft als Sprints bezeichnet werden.
Dieser agile Prozess steht im Gegensatz zum traditionellen Wasserfallmodell der Softwareentwicklung. Bei diesem Ansatz sammeln die Entwickler die Bedürfnisse und Anforderungen der Benutzer und erstellen dann die Software in einem Schritt. Das fertige Projekt wird am Ende des Projektzyklus veröffentlicht. Dies ähnelt dem Softwareentwicklungslebenszyklus, der die Bewertung der vorhandenen Software, die Planung der neuen Softwareanforderungen, den Entwurf der vorgeschlagenen Software, die Entwicklung der neuen Software, das Testen, die Inbetriebnahme und die Überwachung umfasst.
Die Agile Alliance erklärte, sie suche nach einer Alternative zu den dokumentationsorientierten, schwerfälligen Softwareentwicklungsprozessen des Wasserfallmodells.
Der Zweck des Agilen Manifests
Befürworter agiler Methoden sagen, dass die vier Werte des Agilen Manifests einen Softwareentwicklungsprozess fördern, der sich auf Qualität konzentriert, indem Produkte geschaffen werden, die den Bedürfnissen und Erwartungen der Verbraucher entsprechen.
Die zwölf Prinzipien zielen darauf ab, ein Arbeitsumfeld zu schaffen und zu unterstützen, das sich auf den Kunden und die Kundenzufriedenheit konzentriert, sich an den Geschäftszielen ausrichtet und schnell auf veränderte Nutzerbedürfnisse und Marktkräfte reagiert und sich anpasst.
4 Werte von Agile
Die vier Kernwerte der agilen Softwareentwicklung, wie sie im Agile Manifesto formuliert sind, lauten wie folgt:
- Individuen und Interaktionen stehen über Prozessen und Tools.
- Funktionierende Software steht über umfassender Dokumentation.
- Kundenkooperation steht über Vertragsverhandlungen.
- Reagieren auf Veränderungen statt Befolgen eines Projektplans.
12 Prinzipien von Agile
Das Agile Manifest geht über die Festlegung des Umfangs eines Softwareprojekts und dessen anschließende Entwicklung und Veröffentlichung hinaus. Der vielleicht wichtigste Aspekt des Manifests ist die enge Zusammenarbeit und der regelmäßige Austausch mit denjenigen, die die neue oder aktualisierte Software nutzen werden.
Im Folgenden sind die zwölf Prinzipien des Agilen Manifests aufgeführt:
- 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.

Agile versus Scrum und andere Methoden
Agile, wie im Agile Manifesto beschrieben, wird als Philosophie betrachtet. Andere Methoden und Frameworks formalisieren viele oder alle Ideen des Manifests.
Ein Beispiel ist Scrum, ein Framework für das Management und die Steuerung iterativer Projekte. Der Product Owner in einem Scrum-Prozess arbeitet mit funktionsübergreifenden Teams zusammen, um eine Liste der zu erledigenden Aufgaben zu erstellen. Diese Liste wird als Product Backlog bezeichnet.
Andere Frameworks und Methoden, die sich an der Agile-Philosophie orientieren, sind Kanban, Crystal, Lean und Extreme Programming.
Kontroversen um Agile
Agile wurde von Softwareentwicklungsteams in der gesamten Technologiebranche sowie in IT-Abteilungen von Unternehmen weitgehend übernommen. Darüber hinaus wird Agile zugeschrieben, dass es den Softwareentwicklungsprozess schneller, reaktionsfähiger und besser in der Lage macht, die Bedürfnisse von Anwendern, Kunden und Unternehmen zu erfüllen als traditionelle Wasserfallmethoden.
Einige Kritiker sagen jedoch, dass Agile überbewertet ist und nicht in allen Situationen funktioniert. Die mit Agile verbundenen Methoden, Terminologien und Kulturen funktionieren auch nicht gut innerhalb der Kulturen einiger Organisationen und Projekte.
Einige Entwicklungsteams behaupten, eine agile Mentalität zu haben, obwohl sie in Wirklichkeit lediglich einige traditionelle Entwicklungsansätze aufgegeben haben, ohne die Werte und Prinzipien von Agile zu übernehmen.

Die Relevanz von Agile heute
Mit dem Aufkommen vieler neuer Entwicklungswerkzeuge seit der Veröffentlichung des Manifests im Jahr 2001 ist die Softwareentwicklung heute viel einfacher. Es wurde mehr Software als je zuvor entwickelt, was die Frage aufwirft: Ist agile Entwicklung noch relevant? Tools zur Erstellung von Apps können auf ein Smartphone heruntergeladen werden, Entwickler tauschen Ideen über soziale Medien aus und Cloud-Technologie steht für alle Arten von Entwicklungsaktivitäten zur Verfügung.
Die persönliche Note, für die das Agile Manifest eintritt, ist nach wie vor relevant, aber die Verwendung von Kommunikation und Flexibilität im Gegensatz zu einem formalen Plan kann für Entwicklungsteams eine Herausforderung darstellen. Dies gilt insbesondere für Teams, die an großen Projekten mit geografisch verstreuten Mitarbeitern arbeiten. Kommentare in sozialen Medien können nützlich, aber auch frustrierend sein. Dennoch ist die enge Zusammenarbeit mit den Anwendern heute genauso wichtig wie im Jahr 2001.