Was ist Agile?

Diagramm, das verschiedene Aspekte der Agile-Einfütterung miteinander zeigt, z. B. Zusammenarbeit, Entwicklung und automatisierte Versionssteuerung und Bereitstellung.

Agile ist ein Begriff, der Ansätze für die Softwareentwicklung beschreibt, die inkrementelle Bereitstellung, Teamzusammenarbeit, kontinuierliche Planung und kontinuierliches Lernen hervorheben. Der Begriff Agile wurde 2001 im Agile Manifesto geprägt. Das Manifest richtete grundsätze ein, um einen besseren Ansatz für die Softwareentwicklung zu leiten. Im Kern deklariert das Manifest vier Wertanweisungen, die die Grundlage der Agile-Bewegung darstellen. Wie geschrieben, gibt das Manifest folgende Zustände an:

Wir haben einen Wert:

  • Einzelpersonen und Interaktionen über Prozesse und Tools.
  • Funktionierende Software anstatt umfassende Dokumentation.
  • Zusammenarbeit mit Kunden anstatt Vertragsverhandlungen.
  • Reagieren auf Die Änderung nach einem Plan.

Das Manifest impliziert nicht, dass die Elemente auf der rechten Seite dieser Anweisungen nicht wichtig oder erforderlich sind. Stattdessen werden Elemente auf der linken Seite einfach wertiger.

Agile Methoden und Methoden

Es ist wichtig zu verstehen, dass Agile keine Sache ist. Sie tun nicht Agile. Vielmehr ist Agile eine Denkweise, die einen Ansatz für die Softwareentwicklung antreibt. Da es keinen einzigen Ansatz gibt, der für alle Situationen funktioniert, hat der Begriff Agile verschiedene Methoden und Methoden dargestellt, die mit den Wertanweisungen im Manifest übereinstimmen.

Agile Methoden, die häufig als Frameworks bezeichnet werden, sind umfassende Ansätze für Phasen des DevOps-Lebenszyklus: Planung, Entwicklung, Übermittlung und Vorgänge. Sie verschreiben eine Methode für die Durchführung von Arbeiten mit klaren Anleitungen und Grundsätzen.

Scrum ist das am häufigsten verwendete Agile-Framework und das, mit dem die meisten Menschen beginnen. Agile Praktiken sind dagegen Techniken, die in Phasen des Softwareentwicklungslebenszyklus angewendet werden.

  • Planning Poker ist eine zusammenarbeitende Schätzungspraxis, die dazu gedacht ist, Teammitglieder zu ermutigen, ihre Kenntnisse darüber zu teilen, was getan hat . Viele Menschen finden den Prozess spaß, und es hat sich bewährt, Teamarbeit und bessere Schätzungen zu fördern.
  • Kontinuierliche Integration (CI) ist eine gängige Agile Engineering-Praxis, die die Integration von Codeänderungen in den Hauptzweig häufig umfasst. Ein automatisierter Build überprüft Änderungen. Daher gibt es eine Reduzierung der Integrationsschulden und eine kontinuierlich verschiffbare Hauptzweigstelle.

Diese Praktiken, wie alle Agile-Praktiken, tragen die Agile-Bezeichnung , da sie mit den Prinzipien im Agile-Manifest konsistent sind.

Was Agile nicht ist

Da Agile eine Beliebtheit erlangt hat, haben viele Stereotypen und Fehlinterpretationen einen negativen Schatten auf ihre Wirksamkeit geworfen. Es ist einfach zu sagen" "Ja, wir machen Agile", ohne rechenschaftspflichtig. Denken Sie daran, einige Dinge zu berücksichtigen, die Agile nicht ist.

  • Agile ist keine Cowboycodierung. Agile sollte nicht verwechselt werden mit einem "we'll figure it as we go"-Ansatz für die Softwareentwicklung. Eine solche Idee konnte nicht weiter von der Wahrheit sein. Agile erfordert sowohl eine Definition von erledigter als auch expliziter Wert, der kunden in jedem Sprint bereitgestellt wird. Während agile Werte autonomie für Einzelpersonen und Teams, betont sie die ausgerichtete Autonomie, um sicherzustellen, dass die erhöhte Autonomie einen erhöhten Wert erzeugt.
  • Agile ist nicht ohne Strenge und Planung. Im Gegenteil, agile Methoden und Praktiken betonen in der Regel Disziplin in der Planung. Der Schlüssel ist eine kontinuierliche Planung im gesamten Projekt, nicht nur die Planung im Vorfeld. Die kontinuierliche Planung stellt sicher, dass das Team von der von ihnen ausgeführten Arbeit lernen kann. Durch diesen Ansatz maximieren sie die Rendite für Investitionen (ROI) der Planung.

"Pläne sind wertlos, aber Die Planung ist alles." — Dwight D. Eisenhower

  • Agile ist keine Entschuldigung für den Mangel an einer Roadmap. Dieses Missverständnis hat wahrscheinlich den größten Schaden für die Agile-Bewegung insgesamt getan. Organisationen und Teams, die einem Agile-Ansatz folgen, wissen absolut, wo sie gehen und welche Ergebnisse sie erreichen möchten. Das Erkennen von Änderungen im Rahmen des Prozesses unterscheidet sich von der Pivotierung in eine neue Richtung jede Woche, jeden Sprint oder Monat.
  • Agile ist keine Entwicklung ohne Spezifikationen. Es ist in jedem Projekt erforderlich, ihr Team daran auszurichten , warum und wie die Arbeit geschieht. Ein agiler Ansatz für Spezifikationen umfasst die Sicherstellung, dass Spezifikationen richtig groß sind und dass sie entsprechend berücksichtigen, wie die Teamsequenzen ausgeführt und funktionieren.
  • Agile ist nicht in der Lage, ungeplante Arbeit und andere Unterbrechungen zu bewerkstelligen. Es ist wichtig, Sprints im Zeitplan abzuschließen. Aber nur weil ein Problem auftritt, bedeutet die Entwicklung von Sidetracks nicht, dass ein Sprint fehlschlagen muss. Teams kann Unterbrechungen planen, indem Ressourcen vor der Zeit für Probleme und unerwartete Probleme designt werden. Dann können sie diese Probleme beheben, bleiben aber mit der Entwicklung auf dem Weg.
  • Agile ist für große Organisationen nicht unangemessen. Eine häufige Beschwerde besteht darin, dass die Zusammenarbeit, eine wichtige Komponente von Agile-Methoden, in großen Teams schwierig ist. Ein weiterer Griff besteht darin, dass skalierbare Ansätze für Agile Struktur und Methoden einführen, die Flexibilität beeinträchtigen. Trotz dieser Fehlannahmen ist es möglich, agile Prinzipien erfolgreich zu skalieren. Informationen zur Überwindung dieser Schwierigkeiten finden Sie unter Skalieren von Agile auf große Teams.
  • Agile ist nicht ineffizient. Um die sich ändernden Anforderungen der Kunden anzupassen, investieren Entwickler zeit für jede Iteration, um ein funktionierendes Produkt zu demonstrieren und Feedback zu sammeln. Es ist wahr, dass diese Bemühungen die Zeit verringern, die sie für die Entwicklung ausgeben. Die Einbindung von Kundenanfragen spart jedoch zu einem späteren Zeitpunkt erhebliche Zeit. Wenn Features mit der Vision des Kunden übereinstimmen, vermeiden Entwickler wichtige Überarbeitungen in der Linie.
  • Agile ist für heutige Anwendungen nicht schlecht geeignet, was sich häufig auf Datenstreaming zentriert. Solche Projekte umfassen in der Regel mehr Datenmodellierungs- und Extrakttransformationslasten (ETL)-Workloads als Benutzeroberflächen. Diese Tatsache macht es schwierig, verwendbare Software in einem konsistenten, engen Zeitplan zu demonstrieren. Aber durch das Anpassen von Zielen können Entwickler weiterhin einen agilen Ansatz verwenden. Anstatt an Aufgaben zu arbeiten, die jede Iteration ausführen, können sich Entwickler auf die Ausführung von Datenexperimenten konzentrieren. Anstatt ein Arbeitsprodukt alle paar Wochen zu präsentieren, können sie die Daten besser verstehen.

Warum Agile?

Warum sollten alle einen agilen Ansatz in Betracht ziehen? Es ist klar, dass sich die Regeln des Engagements bei der Erstellung von Software in den letzten 10-15 Jahren grundlegend verändert haben. Viele der Aktivitäten sehen ähnlich aus, aber die Landschaft und Umgebungen, in denen wir sie anwenden, sind deutlich unterschiedlich.

  • Vergleichen Sie, was sie heute mit den frühen 2000er Jahren software kaufen möchten. Wie oft fahren personen zum Store, um Geschäftssoftware zu kaufen?
  • Überlegen Sie, wie Feedback von Kunden zu Produkten gesammelt wird. Wie hat ein Team verstanden, welche Personen vor sozialen Medien über ihre Software nachdenken?
  • Überlegen Sie, wie oft ein Team die von ihnen gelieferte Software aktualisieren und verbessern möchte. Jährliche Aktualisierungen sind gegen den modernen Wettbewerb nicht mehr möglich.

Forresters Diego Lo Guidice sagt es am besten in seinem Blog, Transforming Application Delivery (Oktober 2020).

"Alles hat sich dramatisch verändert. Nachhaltigkeit bedeutet neben grün und sauber, dass das, was wir heute bauen, einfach und schnell morgen verändert werden muss. Strategische Pläne sind kurzfristig, und Planung und Veränderung sind kontinuierlich." — Diego Lo Guidice, Forrester

Die Regeln haben sich geändert, und Organisationen auf der ganzen Welt passen nun ihren Ansatz an die Softwareentwicklung entsprechend an. Agile Methoden und Methoden versprechen nicht, jedes Problem zu lösen. Aber sie versprechen, eine Kultur und Umgebung zu schaffen, in der Lösungen durch Zusammenarbeit, kontinuierliche Planung und Lernen entstehen, und ein Wunsch, qualitativ hochwertige Software häufiger zu versenden.

Nächste Schritte

Durch die Entscheidung, die Agile-Route zur Softwareentwicklung zu übernehmen, können einige interessante Möglichkeiten zur Verbesserung Ihres DevOps-Prozesses eingeführt werden. Eine wichtige Reihe von Überlegungen konzentriert sich auf die Vergleiche und Kontraste der agilen Entwicklung mit dem aktuellen Ansatz einer Organisation.