Es ist schwer vorstellbar, wie viel Software und Aktivität aus dem Agilen Manifest entstanden ist. Vor dem Manifest war die Softwareentwicklung kein besonders schneller Prozess. Das Agile Manifest und die Zwölf Prinzipien der agilen Softwareentwicklung waren die Folgen der Frustration der Industrie in den 90er Jahren. Die enorme Zeitverzögerung zwischen den Geschäftsanforderungen und der Lieferung der Technologie führte zum Abbruch vieler Projekte. Die damaligen Softwareentwicklungsmodelle, angeführt vom Wasserfallmodell, entsprachen nicht den Anforderungen an die Geschwindigkeit. Das Agile Manifest und die Zwölf Prinzipien von Agile Software versuchten, die Dinge zu ändern, die Entwicklungszeit zu beschleunigen und Qualität zu produzieren. Wir werden die vier Werte und zwölf Prinzipien diskutieren, die zu einer höheren Qualität der Software führen, die an zufriedene Kunden geliefert wird.
Die 4 Werte des agilen Manifests
Das Agile Manifest besteht aus vier Grundwerten und 12 unterstützenden Prinzipien, die den Agile Ansatz in der Softwareentwicklung leiten. Jede Agile-Methodik wendet die vier Werte auf unterschiedliche Weise an, aber alle verlassen sich auf sie, um die Entwicklung und Bereitstellung einer qualitativ hochwertigen, funktionierenden Software zu steuern.
Individuen und Interaktionen mehr als Prozesse und Werkzeuge
Menschen höher zu bewerten als Prozesse oder Werkzeuge ist leicht zu verstehen, weil es die Menschen sind, die auf Geschäftsanforderungen reagieren und den Entwicklungsprozess vorantreiben. Wenn der Prozess oder die Tools die Entwicklung vorantreiben, reagiert das Team weniger auf Veränderungen und ist weniger bereit, die Bedürfnisse der Kunden zu erfüllen. Kommunikation ist ein Beispiel für den Unterschied zwischen der Bewertung von Individuen und Prozessen. Im Falle von Einzelpersonen ist die Kommunikation fließend und geschieht bei Bedarf. Im Falle eines Prozesses ist die Kommunikation geplant und erfordert spezifische Inhalte.
Funktionierende Software mehr als umfassende Dokumentation
In der Vergangenheit wurde viel Zeit damit verbracht, das Produkt für die Entwicklung und Auslieferung zu dokumentieren. Technische Spezifikationen, Test- und Dokumentationspläne, Lasten- und Pflichtenhefte, technische Anforderungen und Genehmigungen schienen daher erforderlich. Die Liste ist umfangreich und immer noch ein Grund für lange Verzögerungen in der Entwicklung. Agile eliminiert die Dokumentation nicht, aber es rationalisiert sie. Es gibt Entwicklern was sie brauchen, um ihre Arbeit zu erledigen, ohne sich in Details zu verlieren. Agile dokumentiert Anforderungen als User Stories, die für einen Softwareentwickler ausreichen, um mit dem Aufbau einer neuen Funktion zu beginnen. Das Agile Manifest legt Wert auf Dokumentation, aber es legt mehr Wert auf funktionierende Software.
Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
Verhandeln ist dem Zeitraum, in dem der Kunde und der Produktmanager die Details einer Lieferung ausarbeiten. Kollaboration entspricht einer ganz anderen Idee. Oft verahndeln Kunden die Anforderungen an das Produkt sehr detailliert, bevor sie mit den Arbeiten beginnen. Der Kunde wird meist vor und nach einem Entwicklungsprozess einbezogen, jedoch nicht währenddessen. Das Agile Manifest fördert einen Kunden, der sich während des gesamten Entwicklungsprozesses engagiert und mitarbeitet. Das macht es für die Entwicklung wesentlich einfacher, die Bedürfnisse des Kunden zu erfüllen. Agile Methoden können den Kunden in regelmäßigen Abständen für periodische Demos einschließen. Genauso können Endbenutzer als Teil des Projektteams integriert werden, um sicherzustellen, dass das Produkt den Geschäftsanforderungen des Kunden entspricht.
Reagieren auf Veränderung mehr als das Befolgen eines Plans
Die herkömmliche Softwareentwicklung betrachtete Wandel als Aufwand, so dass er vermieden werden musste. Die Absicht war es, detaillierte, durchdachte Pläne zu entwickeln, so dass das Team direkt mit der Arbeit starten kann. Mit Agile können aufgrund der Kürze einer Iteration Prioritäten von Iteration zu Iteration verschoben und neue Funktionen in die nächste Iteration eingefügt werden. Änderungen verbessern ein Projekt immer, sie bieten einen zusätzlichen Wert. Agile Methoden erlauben es dem Team, den Prozess zu modifizieren und ihn an das Team anzupassen und nicht umgekehrt.
12 Prinzipien hinter dem Agilen Manifest
Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.
Durch die Verkürzung der Zeit zwischen der Dokumentation des Projekts, der Berichterstattung an Kunden und dem anschließenden Feedback können Teams sich auf das eigentliche Projektziel konzentrieren: Die Probleme der Kunden zu lösen.
Heisse Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden.
Veränderung muss angenommen werden. Änderung die Kunden spät in der Projektphase wünsche, sind willkommen und werden umgesetzt. Agile bleibt flexibel ohne das Rad ständig neu erfinden zu müssen.
Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kürzere Zeitspanne.
Um Veränderungen zu akzeptieren, müssen Unternehmen Zeitpläne oftmals komplett aufgeben oder Zeitspannen verkürzen. Die Planung von Ressourcen (Zeit) verschlingt diese oft nur unnötig
Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten.
Fachexperten und Entwickler sprechen oftmals zwei verschiedene Sprachen. Doch sowohl die Geschäfts- als auch die Entwicklerseite eines Projekts sind entscheidend für den Erfolg. Eine Brücke zwischen den beiden muss errichtet werden, damit sie einander begegnen und zusammenarbeiten können.
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.
Mit anderen Worten, kein Mikromanagement. Es untergräbt die Moral und entmutigt Talente. Natürlich sollte man die Arbeit beobachten und bei Bedarf eingreifen. Die Übertragung von Verantwortung ist jedoch sinnlos, wenn diese nicht benutzt werden darf.
Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteams zu übermitteln, ist im Gespräch von Angesicht zu Angesicht.
Gesprächsdokumentationen oder ausschweifender E-Mail-Verkehr sind Zeitfresser, die in den seltensten Fällen notwendig sind. Um die Geschwindigkeit von Informationsaustausch zu erhöhen, sollten Teammitglieder bevorzugt das persönliche Gespräch suchen. Um eine kollaborative Umgebung zu schaffen sollten Teams unter anderem im selben physischen Raum arbeiten.
Funktionierende Software ist das wichtigste Fortschrittsmaß.
Fortschritt wird nicht gemessen, indem Aufgabenlisten abgehakt werden oder das Projekt sich über die geplante Zeitachse bewegt, sondern am Erfolg der Software bzw. des Produkts. Das Ziel eines Projekts ist nicht der Prozess
Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmäßiges Tempo auf unbegrenzte Zeit halten können.
Teams sollten in einem geeigneten und nachvollziehbaren Tempo arbeiten können. Eine Überforderung des Teams wird sich zwangsläufig auf die Qualität des Projekts auswirken. Die Steigerung des Tempos entsteht durch die interne Weiterentwicklung und Verbesserung der Teams.
Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität.
Egal an was das Projektteam arbeitet, es muss zu jeder Zeit sichergestellt werden, dass es sich kontinuierlich verbessert. Das agile Framework Scrum gründet hierzu auf dem Ansatz von Inspect und Adapt um Projektinhalte konstant zu überprüfen und weiterzuentwickeln.
Einfachheit — die Kunst, die Menge nicht getaner Arbeit zu maximieren — ist essenziell.
Ein effizientes Projekt vermeidet unnötige Kompliziertheiten und gestaltet Prozesse so einfach wie möglich.
Die besten Architekturen, Anforderungen und Entwürfe entstehen durch selbstorganisierte Teams.
Starke Teams brauchen Autonomie, um unabhängig zu handeln. So bleiben sie flexibel und stellen sich schneller auf Veränderungen ein. Das geschenkte Vertrauen sollte also nicht hinterfragt werden.
In regelmäßigen Abständen reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.
Ein weiterer Vorteil der Befähigung eines selbstorgansierten Teams besteht darin, dass sie während des Projektverlaufs immer wieder innehalten, reflektieren und optimieren. Sie handeln nicht aus einer Routine oder folgen blind dem Protokoll, sondern überdenken ihre Beziehung zum Projekt und passen sie bei Bedarf an. Eine sich ständig weiterentwickelnde Gruppe, ist ständig engagiert und sucht nach Möglichkeiten, die Produktivität zu verbessern.
Einen Überblick zur Serie Scrum Basics findest du hier: Scrum Basics: Alles auf einen Blick
Schreibe einen Kommentar