agile manifesto understanding agile values
Agiles Manifest Einführung:
Unser vorheriges Tutorial zu Agile Methodik erklärte uns alles über agile Modelle und Methoden im Detail.
Bisher geht es uns jedoch nicht darum, warum Agilität überhaupt erforderlich war und wie Agilität die Mängel der vorhandenen Softwareentwicklungsmethoden wie dem Wasserfallmodell überwunden hat.
In diesem Tutorial werden wir uns eingehender mit den Details von Agile und dem Agile Manifest befassen. Wir werden sehen, was das Manifest sagt und welche Werte und Prinzipien darin verankert sind.
Was du lernen wirst:
Einführung
Wie wir in unserem gesehen haben vorheriges Tutorial Frühere Entwicklungsmethoden haben zu viel Zeit in Anspruch genommen, und als die Software für die Bereitstellung bereit war, hätten sich die Geschäftsanforderungen geändert, sodass die aktuellen Anforderungen nicht mehr erfüllt wurden.
Die Geschwindigkeit des Wandels, die zu dieser Zeit fehlte, verursachte viele Probleme. Als sich die Leiter verschiedener Entwicklungsmethoden trafen, um über den weiteren Weg zu entscheiden, konnten sie sich auf eine bessere Methode einigen und den Wortlaut des Manifests festlegen.
Dies wurde als 4 Werte und 12 Prinzipien erfasst, um den Praktizierenden zu helfen, es zu verstehen, sich darauf zu beziehen und es in die Praxis umzusetzen. Und zu diesem Zeitpunkt konnte sich keiner von ihnen vorstellen, welche Auswirkungen dies auf die Zukunft des Projektmanagements haben würde.
Test-Website in verschiedenen Browsern online
Agiles Manifest
Das Manifest wurde sehr sorgfältig formuliert, um die Essenz von Agilität in minimalen Worten festzuhalten. Es lautet wie folgt:
„Wir entdecken bessere Möglichkeiten zur Entwicklung einer Software, indem wir dies tun und anderen dabei helfen. Durch diese Arbeit sind wir zu dem folgenden Wert gekommen:
- Individuen und Interaktionen über Prozesse und Werkzeuge.
- Arbeitssoftware über umfassende Dokumentation.
- Kundenzusammenarbeit über Vertragsverhandlungen.
- Antworten auf Umstellung nach einem Plan.
Das heißt, während die Elemente auf der rechten Seite einen Wert haben, schätzen wir die Elemente auf der linken Seite mehr. “
Wie wir sehen können, sind dies ziemlich prägnante und einfache Aussagen, die sehr deutlich machen, was die Gründer fördern wollten. Normalerweise sind traditionelle Projektpläne starr und konzentrieren sich auf Verfahren und Zeitpläne, aber das agile Manifest verbreitet genau das Gegenteil.
Es bevorzugt:
- Menschen
- Produkt
- Kommunikation und
- Empfänglichkeit
Wir werden dieses neue Paradigma untersuchen, das die Gründer im Detail fördern wollten, indem sie ein tieferes Verständnis der agilen Werte und Prinzipien erlangen.
Die 4 agilen Werte
Die vier Werte zusammen mit den 12 Prinzipien leiten die agile Softwarebereitstellung. Wir werden jetzt jeden der Werte im Detail diskutieren.
# 1) Individuen und Interaktionen über Prozesse und Werkzeuge
Einzelpersonen und Interaktionen werden Prozessen und Tools vorgezogen, da dadurch der Prozess schneller reagiert. Wenn die Personen ausgerichtet sind und sich erst einmal verstanden haben, kann das Team alle Probleme mit den Tools oder Prozessen lösen.
Wenn die Teams jedoch darauf bestehen, sich blind an die Prozesse zu halten, kann dies zu Missverständnissen zwischen den einzelnen Personen führen und zu unerwarteten Hindernissen führen, was zu Projektverzögerungen führt.
Aus diesem Grund ist es immer vorzuziehen, Interaktionen und Kommunikation zwischen den Teammitgliedern zu haben, anstatt blind von den Prozessen abhängig zu sein, um den Weg nach vorne zu weisen. Eine Möglichkeit, dies zu erreichen, besteht darin, einen involvierten Product Owner zu haben, der arbeitet und in Zusammenarbeit mit dem Entwicklungsteam Entscheidungen treffen kann.
Wenn Einzelpersonen die Möglichkeit haben, selbst Beiträge zu leisten, können sie sich auch frei präsentieren, was sie auf den Tisch bringen können. Wenn diese Teaminteraktionen darauf abzielen, ein häufiges Problem zu lösen, können die Ergebnisse sehr wirkungsvoll sein.
# 2) Arbeitssoftware über umfassende Dokumentation
Das traditionelle Projektmanagement umfasste eine umfassende Dokumentation, die eine Verzögerung von Monaten mit sich brachte. Dies wirkte sich negativ auf die Projektabwicklung aus und die daraus resultierenden Verzögerungen waren unvermeidlich.
Die Art der Dokumentation, die für diese Projekte erstellt wurde, war sehr detailliert und es wurden so viele Dokumente erstellt, dass viele von ihnen während des Projektfortschritts nicht einmal erwähnt wurden. Dies war ein unnötiges Übel, mit dem die Projektteams früher lebten.
Dies verschärfte aber auch die Lieferprobleme. Der Schwerpunkt lag in einem solchen Umfang auf der Dokumentation, da die Teams ein fertiges Produkt erhalten wollten, das zu 100% den Spezifikationen entsprach. Aus diesem Grund lag der Schwerpunkt auf der detaillierten Erfassung aller Spezifikationen.
Dennoch war das Endprodukt früher ganz anders als erwartet oder hätte an Relevanz verloren. Aus diesem Grund ist laut Agile eine funktionierende Software eine viel bessere Option, um die Kundenerwartungen zu messen, als jede Menge Dokumentation.
Dies bedeutet nicht, dass die Dokumentation nicht erforderlich ist. Es bedeutet nur, dass ein funktionierendes Produkt jeden Tag ein besserer Indikator für die Ausrichtung auf die Kundenbedürfnisse und -erwartungen ist als ein vor Monaten erstelltes Dokument. Dies bedeutet auch, dass die Teams reaktionsschnell und bereit sind, sich bei Bedarf an Änderungen anzupassen, während sie dem Kunden die funktionierende Software zeigen, wenn der Sprint endet.
Wenn das Produkt während der Sprints nicht getestet wird, entstehen im nächsten Sprint vielfältige Kosten und Anstrengungen. Sobald die Funktionalität bereitgestellt ist, steigen die Kosten für diese Änderungen erheblich weiter an.
3. Zusammenarbeit der Kunden bei Vertragsverhandlungen
Verhandlung bedeutet, dass die Details noch erfasst werden und noch nicht abgeschlossen sind. Es besteht noch Raum für Neuverhandlungen. Aber sobald die Verhandlungen beendet sind, kann es keine Diskussion darüber geben. Was Agile sagt, ist, dass statt Verhandlungen eine Zusammenarbeit angestrebt wird.
Zusammenarbeit bedeutet, dass noch Raum für Diskussionen besteht und die Kommunikation noch nicht abgeschlossen ist.
Keine einmalige Sache. Dies bietet einen zweifachen Vorteil: Während es dem Team hilft, eine Kurskorrektur durchzuführen, wenn dies zu einem früheren Zeitpunkt erforderlich ist, hilft es dem Kunden, auch seine Vision zu verfeinern und seine Anforderungen bei Bedarf im Verlauf des Kurses neu zu definieren Projekt.
Der andere Aspekt ist, dass herkömmliche Softwareentwicklungsmodelle den Kunden einbeziehen, bevor die Entwicklung während der Dokumentations- und Verhandlungsphase beginnt, und dass sie während der Projektentwicklung nicht so involviert sind.
Sobald die Anforderungen eingefroren sind, können sie das Produkt erst sehen, wenn das Produkt fertig ist. Agile durchbricht diese Barriere auch, indem es Kundenbeteiligung über den gesamten Lebenszyklus ermöglicht.
Dies hilft den agilen Teams, sich besser auf die Kundenbedürfnisse auszurichten. Dies kann unter anderem durch einen engagierten und engagierten Product Owner erreicht werden, der dem Team in Echtzeit bei der Klärung und Ausrichtung der Arbeit an den Kundenprioritäten helfen kann
4. Reagieren auf Umstellung nach einem Plan
Der Standard-Denkprozess ist, dass die Änderungen eine teure Angelegenheit sind und wir Änderungen um jeden Preis vermeiden sollten. Das ist, was der unnötige Fokus auf Dokumentation und ausgearbeiteten Plänen ist, indem die Zeitpläne und Produktspezifikationen eingehalten werden.
Aber wie uns die Erfahrung auch lehrt, sind Veränderungen meistens unvermeidlich, und anstatt davonzulaufen, sollten wir versuchen, sie anzunehmen und zu planen.
Agile ermöglicht uns diesen Übergang. Was Agile denkt, ist, dass Veränderungen keine Kosten sind, sondern ein willkommenes Feedback, das zur Verbesserung des Projekts beiträgt. Es ist nicht zu vermeiden, sondern schafft Mehrwert.
Mit den von Agile vorgeschlagenen kurzen Sprints können die Teams kurzfristig ein schnelles Feedback erhalten und Prioritäten verschieben. Von Iteration zu Iteration können neue Funktionen hinzugefügt werden.
Warum machen wir das? Weil die meisten Funktionen, die mit dem Wasserfall-Ansatz entwickelt wurden, niemals verwendet werden. Dies liegt daran, dass das Wasserfallmodell dem Plan folgt, während dies die Phase ist, in der wir am wenigsten wissen.
Agile plant auch, folgt aber auch dem Just-in-Time-Ansatz, bei dem die Planung bei Bedarf gerade genug erfolgt. Und die Pläne können sich im Verlauf der Sprints immer ändern.
Die 12 agilen Prinzipien
Es gibt 12 agile Prinzipien, die nach der Erstellung des Manifests hinzugefügt wurden, um den Teams beim Übergang in die Agilität zu helfen und sie zu führen und zu überprüfen, ob die Praktiken, denen sie folgen, mit der agilen Kultur übereinstimmen.
Es folgt der Text der ursprünglichen 12 Prinzipien, die 2001 von der Agile Alliance veröffentlicht wurden:
# 1) Unsere höchste Priorität ist es, den Kunden durch die frühzeitige und kontinuierliche Lieferung einer wertvollen Software zufrieden zu stellen.
#zwei) Begrüßen Sie sich ändernde Anforderungen, auch spät in der Entwicklung. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden.
#3) Stellen Sie häufig funktionierende Software bereit, von einigen Wochen bis zu einigen Monaten, wobei Sie die kürzere Zeitspanne bevorzugen.
# 4) Geschäftsleute und Entwickler müssen während des gesamten Projekts täglich zusammenarbeiten.
# 5) Bauen Sie Projekte um motivierte Personen auf. Geben Sie ihnen die Umgebung und Unterstützung, die sie benötigen, und vertrauen Sie darauf, dass sie ihre Arbeit erledigen.
# 6) Die effizienteste und effektivste Methode zur Übermittlung von Informationen an und innerhalb des Entwicklungsteams ist ein persönliches Gespräch.
Fragen zu manuellen und Automatisierungstests
# 7) Arbeitssoftware ist das wichtigste Maß für den Fortschritt.
# 8) Agile Prozesse fördern eine nachhaltige Entwicklung. Die Sponsoren, Entwickler und Benutzer sollten in der Lage sein, auf unbestimmte Zeit ein konstantes Tempo einzuhalten.
# 9) Die kontinuierliche Aufmerksamkeit für technische Spitzenleistungen und gutes Design erhöht die Agilität.
# 10) Einfachheit - Die Kunst, die Menge der nicht geleisteten Arbeit zu maximieren, ist sehr wichtig.
#elf) Die besten Architekturen, Anforderungen und Designs entstehen aus selbstorganisierenden Teams.
# 12) In regelmäßigen Abständen überlegt das Team, wie es effektiver werden kann, und passt dann sein Verhalten entsprechend an.
Diese agilen Prinzipien bieten den Entwicklungsteams praktische Anleitungen.
Eine andere Möglichkeit, die 12 Prinzipien zu organisieren, besteht darin, sie in den folgenden vier verschiedenen Gruppen zu betrachten:
- Kundenzufriedenheit
- Qualität
- Zusammenarbeit
- Projektmanagement
# 1) Unsere höchste Priorität ist es, den Kunden durch frühzeitige und kontinuierliche Lieferung einer wertvollen Software zufrieden zu stellen - Kunden werden offensichtlich begeistert sein, wenn bei jedem Sprint eine funktionierende Software ausgeliefert wird, anstatt eine mehrdeutige Wartezeit durchlaufen zu müssen, nach deren Ablauf nur sie das Produkt sehen können.
Hier kann der Kunde als Projektsponsor oder als Person definiert werden, die für die Entwicklung bezahlt. Der Endbenutzer des Produkts ist auch ein Kunde, aber wir können zwischen beiden unterscheiden, da der Endbenutzer als Benutzer bezeichnet wird.
#zwei) Begrüßen Sie sich ändernde Anforderungen, auch spät in der Entwicklung. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden - Änderungen können ohne große Verzögerungen in die Gesamtzeitpläne aufgenommen werden.
Da die agilen Teams vor allem an Qualität glauben, möchten sie lieber Änderungen einbeziehen und gemäß den Kundenanforderungen liefern, als Änderungen zu vermeiden und ein Produkt zu liefern, das nicht den Geschäftsanforderungen entspricht.
#3) Stellen Sie häufig funktionierende Software bereit, von einigen Wochen bis zu einigen Monaten, wobei Sie die kürzere Zeitspanne bevorzugen - Dafür sorgen die Teams, die im Sprint arbeiten. Da Sprints Iterationen mit Zeitrahmen sind und am Ende jedes Sprints eine funktionierende Software liefern, erhalten Kunden regelmäßig eine Vorstellung vom Fortschritt
# 4) Geschäftsleute und Entwickler müssen während des gesamten Projekts täglich zusammenarbeiten - Bessere Entscheidungen werden getroffen, wenn beide zusammenarbeiten und zwischen beiden eine ständige Rückkopplungsschleife für die Kurskorrektur und die Beweglichkeit von Änderungen besteht. Die Kommunikation zwischen den Stakeholdern ist immer der Schlüssel zur Agilität.
# 5) Bauen Sie Projekte um motivierte Personen auf. Geben Sie ihnen die Umgebung und Unterstützung, die sie benötigen, und vertrauen Sie darauf, dass sie ihre Arbeit erledigen - Sie müssen die Teams unterstützen, vertrauen und motivieren. Ein motiviertes Team ist eher erfolgreich und liefert ein überlegenes Produkt als unglückliche Teams, die nicht bereit sind, ihr Bestes zu geben.
Eine Möglichkeit, dies zu tun, besteht darin, das Entwicklungsteam zu befähigen, sich selbst zu organisieren und eigene Entscheidungen zu treffen.
# 6) Die effizienteste und effektivste Methode zur Übermittlung von Informationen an und innerhalb des Entwicklungsteams ist ein persönliches Gespräch. Die Kommunikation ist besser und effektiver, wenn sich die Teams am selben Ort befinden und sich zu Gesprächen persönlich treffen können. Es hilft, Vertrauen aufzubauen und bringt Verständnis zwischen verschiedenen Stakeholdern.
# 7) Arbeitssoftware ist das wichtigste Maß für den Fortschritt - Eine funktionierende Software übertrifft alle anderen KPIs und ist der beste Indikator für die geleistete Arbeit.
# 8) Agile Prozesse fördern eine nachhaltige Entwicklung. Die Sponsoren, Entwickler und Benutzer sollten in der Lage sein, auf unbestimmte Zeit ein konstantes Tempo einzuhalten - Die Konsistenz der Lieferung wird betont. Das Team sollte in der Lage sein, sein Tempo über die Dauer des Projekts beizubehalten und nach den ersten Sprints nicht auszubrennen.
# 9) Kontinuierliche Aufmerksamkeit für technische Exzellenz und gutes Design erhöht die Agilität - Das Team sollte über alle Fähigkeiten und ein gutes Produktdesign verfügen, um die Änderungen zu bewältigen und ein qualitativ hochwertiges Produkt zu produzieren, während Änderungen berücksichtigt werden können
# 10) Einfachheit - Die Kunst, die Menge der nicht geleisteten Arbeit zu maximieren, ist wesentlich und reicht gerade aus, um die Definition der geleisteten Arbeit zu erfüllen.
#elf) Die besten Architekturen, Anforderungen und Designs entstehen aus selbstorganisierenden Teams - Selbstorganisierte Teams werden befähigt und übernehmen Verantwortung für ihre Arbeit. Dies führt zu einer offenen Kommunikation und einem regelmäßigen Ideenaustausch zwischen den Teammitgliedern.
# 12) In regelmäßigen Abständen überlegt das Team, wie es effektiver werden kann, und passt dann sein Verhalten entsprechend an. Selbstverbesserung führt zu schnelleren Ergebnissen und weniger Nacharbeit.
Fazit
Die Kundenorientierung und der Fokus auf Kommunikation haben den Erfolg sichtbar gemacht, der heute sichtbar ist.
Es ist eine bewährte Technik, die nicht nur Auswirkungen auf die Softwarebereitstellung hat, sondern auch auf andere Branchen. Heute ist sie eine Branche für sich.
In unserem nächsten Tutorial in dieser Reihe erfahren Sie mehr über das Scrum-Team und seine Rollen!
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- Agile Scrum Online Quiz: Testen Sie Ihr Wissen über Agile Scrum
- Die Änderung der Denkweise eines agilen Testers: Anpassung an das agile Manifest
- Kanban vs Scrum vs Agile: Ein detaillierter Vergleich, um Unterschiede zu finden
- So liefern Sie mithilfe des Agile Scrum-Prozesses in kurzer Zeit hochwertige Softwarefunktionen
- SAFe Agile Tutorial: Was ist Scaled Agile Framework?
- 4 Schritte zur Entwicklung der Denkweise für agile Tests für einen erfolgreichen Übergang zu agilen Prozessen
- JIRA Agile Tutorial: So verwenden Sie JIRA effektiv zum Verwalten agiler Projekte
- DevOps-Praxis basierend auf agilem Manifest (Teil 2 - Block 1)