Was ist Agile?

Was ist agil?

Agile ist ein Begriff, der verwendet wird, um Ansätze für die Softwareentwicklung zu beschreiben, die auf inkrementelle Bereitstellung, Teamzusammenarbeit, kontinuierliche Planung und kontinuierliches Lernen hinweisen. Der Begriff Agile wurde im Jahr 2001 im Agile Manifesto (Agile-Manifest)bezeichnet. Das Manifest hat sich zum Festlegen von Prinzipien für einen besseren Ansatz für die Softwareentwicklung entwickelt. Im Kern deklariert das Manifest vier Wertanweisungen, die die Grundlage der Agile-Bewegung darstellen. Wie geschrieben, gibt das Manifest...

Wir sind jetzt auf den Wert gekommen:

  • Individuen und Interaktionen mehr als Prozesse und Werkzeuge
  • Funktionierende Software mehr als umfassende Dokumentation
  • Zusammenarbeit mit dem Kunden mehr Vertragsverhandlungen
  • Reagieren auf Veränderung mehr als das Befolgen eines Plans

Dies bedeutet nicht, dass die Elemente auf der rechten Seite dieser Anweisungen nicht wichtig oder erforderlich sind. Stattdessen sind Elemente auf der linken Seite einfach höherwertiger.

Agile Methoden und Methoden

Es ist wichtig zu verstehen, dass Agile keine Sache ist. Sie machen keine Agile-Methode. Stattdessen ist Agile eine Mentalität, die einen Ansatz für die Softwareentwicklung antreibt. Da es keinen einzelnen Ansatz gibt, der für alle Situationen funktioniert, stellt der Begriff Agile eine Vielzahl von Methoden und Methoden dar, die mit den Wertanweisungen im Manifest übereinstimmen.

Agile Methoden (häufig als Frameworks bezeichnet) sind umfassende Ansätze für Phasen des DevOps-Lebenszyklus: Planung, Entwicklung, Bereitstellung und Betrieb. Sie schreiben eine Methode für die Durchführung von Aufgaben mit eindeutigen Anleitungen und Prinzipien vor.

Das gängigste Agile-Framework ist Das gängigste Agile-Framework, mit dem die meisten Beginnen beginnen. Agile Methoden sind dagegen Techniken, die in Phasen des Softwareentwicklungslebenszyklus angewendet werden. Die Planung von Plans ist z. B. eine gemeinsame Schätzverfahren, mit der Teammitglieder dazu aufgefordert werden, ihr Verständnis dafür zu teilen, was geschehen ist. Der Prozess ist recht amüsiert und hat sich bewährt, die Teamarbeit und bessere Schätzungen zu fördern. Continuous Integration (auch bekannt als CI) ist eine gängige agile Entwicklung, bei der Codeänderungen häufig in den Hauptzweig integriert werden. Ein automatisierter Build überprüft Änderungen, was zu einer Verringerung der Integrationslasten und zu einem kontinuierlich versenderbaren Hauptzweig führt. Diese Vorgehensweisen tragen wie alle Agile-Methoden das Agile-Label, da sie mit den Prinzipien im Agile-Manifest konsistent sind.

Was Agile nicht ist

Mit zunehmender Beliebtheit von Agile haben viele Stereotype und/oder Fehlinterpretationen einen negativen Schatten hinsichtlich ihrer Effektivität werfen. Es ist einfach zu sagen:"Ja, wir machen Agile", ohne verantwortlich zu sein. In diesem Fall sehen wir uns einige Dinge an, die Agile nicht ist.

  • Agile programmiert nicht. Agile sollte nicht mit dem Ansatz "Wir werden es bei der Entwicklung von Software herausfinden" verwechselt werden. Dies konnte nicht weiter von der Wahrheit entfernt sein. Agile erfordert sowohl einen Definition of Done als auch einen expliziten Wert, der kunden in jedem Sprint bereitgestellt wird. Agile wertet zwar die Eigenständigkeit von Einzelpersonen und Teams, aber es wird die ausrichtungsautonomie hervorgehoben, um sicherzustellen, dass die erhöhte Eigenständigkeit einen höheren Wert erzeugt.
  • Agile ist nicht ohne Strenge und Planung. Im Gegensatz dazu wird bei agilen Methoden und Methoden in der Regel die Disziplin "Planung" hervorgehoben. Der Schlüssel ist die kontinuierliche Planung im gesamten Projekt, nicht nur die Planung im Vor- und Nach oben. Die kontinuierliche Planung stellt sicher, dass das Team aus der von ihnen ausgeführten Arbeit lernen kann, wodurch die Planung des ROI (Rendite) maximiert wird.

"Pläne sind wertlos, aber die Planung ist alles." --Dwight D. Andershower

  • Agile ist kein Grund für das Fehlen einer Roadmap. Dieses Missverständnis hat wahrscheinlich die agile Bewegung insgesamt am meisten geschädigt. Organisationen und Teams, die einem Agile-Ansatz folgen, wissen absolut, wohin sie gehen und welche Ergebnisse sie erzielen möchten. Das Erkennen von Änderungen als Teil des Prozesses unterscheidet sich vom Pivotieren in eine neue Richtung jede Woche, jeden Sprint oder jeden Monat.
  • Agile ist keine Entwicklung ohne Spezifikationen. Es ist in jedem Projekt erforderlich, ihr Team auf dem Laufenden zu halten, warum und wie die Arbeit erfolgen soll. Ein agiler Ansatz für Spezifikationen umfasst die Sicherstellung, dass die Spezifikationen die richtige Größe haben und entsprechend widerspiegeln, wie das Team sequenziert und arbeitet.

Warum Agile?

Warum sollte jemand also einen Agile-Ansatz in Betracht ziehen? Es ist klar, dass sich die Einbindungsregeln für das Erstellen von Software in den letzten 10 bis 15 Jahren grundlegend geändert haben. Viele aktivitäten sehen ähnlich aus, aber die Landschaft und umgebungen, in denen wir sie anwenden, unterscheiden sich deutlich. Überlegen Sie kurz, wie es ist, software heute im Vergleich zu den frühen 2000er Jahren zu erwerben. Wie oft fahren Menschen in den Store, um Geschäftssoftware zu kaufen? Überlegen Sie, wie Feedback von den Kunden mithilfe von Produkten gesammelt wird. Wie hat ein Team vor sozialen Medien verstanden, was die Benutzer über ihre Software gedacht haben? Überlegen Sie abschließend, wie oft ein Team die von ihnen gelieferte Software aktualisieren und verbessern möchte. Jährliche Updates sind gegen den modernen Wettbewerb nicht mehr möglich. Forrester esFolge Lo Guidice and Dave West said it best in their paper title title transforming Application Delivery (February of 2011).

"Unternehmen erleben heutzutage eine viel höhere Geschwindigkeit von Geschäftsänderungen. Marktchancen treten in Monaten oder Wochen statt in Jahren auf." -- Guy Lo Guidice und Dave West, Forrester

Die Regeln haben sich geändert, und Organisationen auf der ganzen Welt passen ihren Ansatz für die Softwareentwicklung entsprechend an. Agile Methoden und Methoden versprachen nicht, jedes Problem zu lösen. Sie haben jedoch das Ziel, eine Kultur und Umgebung zu schaffen, in der Lösungen durch Zusammenarbeit, kontinuierliche Planung und Lernen und den Wunsch entstehen, qualitativ hochwertige Software häufiger zu liefern.

Nächste Schritte

Die Entscheidung, den Agile-Weg zur Softwareentwicklung zu gehen, kann einige interessante Möglichkeiten zur Verbesserung Ihres DevOps-Prozesses bieten. Ein wichtiger Satz von Überlegungen konzentriert sich darauf, wie die Agile-Entwicklung den aktuellen Ansatz einer Organisation vergleicht und im Gegensatz dazu vergleicht.