This page has been robot translated, sorry for typos if any. Original content here.

Wie man Oma erklärt, was Agile in 15 Minuten mit Bildern ist

Agile in 15 Minuten mit Bildern
Das große Bild öffnet sich beim Drücken in einem neuen Fenster!

Flexible Entwicklungsmethodik (Agile Softwareentwicklung, Agile-Methoden) ist eine Reihe von Ansätzen zur Softwareentwicklung, die sich auf den Einsatz der iterativen Entwicklung, die dynamische Bildung von Anforderungen und die Bereitstellung ihrer Implementierung als Ergebnis der ständigen Interaktion in selbstorganisierenden Arbeitsgruppen aus Spezialisten verschiedener Profile konzentriert. Es gibt verschiedene Methoden im Zusammenhang mit der Klasse der flexiblen Entwicklungsmethoden, insbesondere extreme Programmierung, DSDM, Scrum, FDD.

Es wird als eine effektive Praxis der Organisation der Arbeit von kleinen Gruppen (die homogene kreative Arbeit leisten) verwendet, indem sie mit ihrem Management eine kombinierte (liberale und demokratische) Methode kombiniert. Die meisten flexiblen Methoden zielen darauf ab, Risiken zu minimieren, indem die Entwicklung in eine Reihe von kurzen Zyklen, sogenannten Iterationen, gebracht wird, die normalerweise zwei bis drei Wochen dauern. Jede Iteration selbst sieht aus wie ein Software-Projekt in Miniatur und beinhaltet alle Aufgaben, die für eine minimale Erweiterung der Funktionalität erforderlich sind: Planung, Anforderungsanalyse, Design, Programmierung, Test und Dokumentation. Obwohl eine einzelne Iteration normalerweise nicht ausreicht, um eine neue Version des Produkts freizugeben, ist es selbstverständlich, dass am Ende jeder Iteration ein flexibles Softwareprojekt zur Veröffentlichung bereit ist. Am Ende jeder Iteration bewertet das Team die Entwicklungsprioritäten neu.

Agile Methoden betonen die direkte Kommunikation von Angesicht zu Angesicht. Die agilsten Teams befinden sich im selben Büro, manchmal auch Englisch. bullpen. Zumindest umfasst es auch "Produkteigentümer" (der Kunde oder sein autorisierter Vertreter, der die Produktanforderungen definiert, welche Rolle der Projektmanager, der Geschäftsanalytiker oder der Kunde übernehmen kann). Das Büro kann auch Tester, Interface-Designer, technische Redakteure und Manager umfassen. Die Hauptmetrik agiler Methoden ist das Arbeitsprodukt. Agile-Methoden, die direkte Kommunikation bevorzugen, reduzieren den Umfang der schriftlichen Dokumentation im Vergleich zu anderen Methoden. Dies führte dazu, dass diese Methoden als undiszipliniert kritisiert wurden.

Das meist gesehene Video auf YouTube auf agil. 744 625 Ansichten zum Zeitpunkt der Veröffentlichung dieses Artikels. Einfache Art der Präsentation, Bilder und nur 15 Minuten - das Beste, was ich gesehen habe. TED ruht.

"Jedes Geschäft dauert immer länger als erwartet, auch wenn wir das Hofstadter-Gesetz berücksichtigen." - Das Hofstadter-Gesetz

Rollen

Agile за 15 минут с картинками

Das ist Pat, der Besitzer des Produkts. Sie kennt die technischen Details nicht, aber sie hat eine Vision vom Gesamtbild, sie weiß, warum wir das Produkt herstellen, welche Probleme er löst und für wen.

Agile за 15 минут с картинками

Sie sind interessierte Personen. Sie werden das Produkt verwenden, es unterstützen oder irgendwie in die Entwicklung einbezogen werden.

Agile за 15 минут с картинками

Dies sind User Storys. Sie äußerten die Wünsche der interessierten Personen. Beispiel: "Das Buchungssystem der Fluggesellschaft muss nach Flügen suchen."

Agile за 15 минут с картинками

Stakeholder haben viele Ideen und Pat hilft, aus Ideen eigene Geschichten zu machen.

Agile за 15 минут с картинками

Dies ist das Entwicklungsteam. Diejenigen, die ein funktionierendes System aufbauen werden.

Agile за 15 минут с картинками

Durchsatz

Agile за 15 минут с картинками

Da das Team eine flexible Entwicklungsmethodik verwendet, speichern sie nicht alle diese Geschichten in der großen Veröffentlichung, im Gegenteil, sie veröffentlichen sie sofort und so oft wie möglich. Normalerweise veröffentlichen sie 4-6 User Storys pro Woche. Dies ist ihre Bandbreite. Es ist sehr einfach zu messen - die Anzahl der User Storys in 7 Tagen.

Manche Geschichten sind groß, sie können als zwei gezählt werden, manche sind klein, sie können als halb gezählt werden.

Um diesen Rhythmus zu erhalten und nicht in manuellen Regressionstests stecken zu bleiben, arbeitet das Team intensiv an einem automatischen Test der konstanten Integration. Daher müssen Sie für jede Funktion Autotests schreiben, und der Großteil des Codes verfügt über integrierte Autotests.

Agile за 15 минут с картинками

Das Problem ist, dass es viele interessierte Personen gibt und ihre Wünsche nicht mit 4-6 Geschichten pro Woche zufrieden sein können.

Jedes Mal, wenn wir eine benutzerdefinierte Story implementieren, haben sie ein paar weitere Ideen, aus denen weitere Anfragen folgen.

Was passiert, wenn wir alles tun, was sie von uns verlangen? Wir werden eine Überlastung haben.

Agile за 15 минут с картинками

Nehmen wir an, das Team wird für diese Woche 10 neue Storys erstellen, wenn der Befehl an Eingang 10 und am Ausgang 4-6 überladen ist. Es wird sich beeilen, zwischen den Aufgaben wechseln, die Motivation verlieren, am Ende die Produktivität und die Qualität sinken. Dies ist offensichtlich eine Verluststrategie.

Scrum und XP verwenden in diesem Fall die Methode "Wetter von gestern". Das Team sagt: "In letzter Zeit haben wir 4-6 Features pro Woche gemacht, welche 4-6 Features werden wir nächste Woche machen?"

Die Aufgabe des Product Owners ist es, kompetent auszuwählen, welche User Stories in dieser Woche umgesetzt werden.

Kanban empfiehlt, sich auf mehrere Aufgaben zu beschränken - WIP-Limit. Angenommen, das Team entscheidet, dass 5 eine akzeptable Anzahl von User Stories ist, über die sie gleichzeitig ohne Überladung arbeiten können, ohne von einem zum anderen zu springen.

Agile за 15 минут с картинками

Beide Ansätze funktionieren gut und sie erstellen beide eine Aufgabenwarteschlange, die in Scrum Backlog oder eine priorisierte Aufgabenliste genannt wird.

Diese Warteschlange muss auch verwaltet werden.Wenn interessierte Personen 10 Geschichten pro Woche anfordern und das Team 4-6 Geschichten implementiert, wird diese Warteschlange immer mehr. Und schon bald wird dein Backlog für sechs Monate gestrichen. Das heißt, eine Geschichte wird 6 Monate warten.

Es gibt nur einen Weg, um eine Liste von Aufgaben unter Kontrolle zu halten - das ist das Wort "Nein"

Agile за 15 минут с картинками

Dies ist das wichtigste Wort für den Besitzer des Produkts. Er muss ihn jeden Tag vor dem Spiegel trainieren.

"Ja" sagen ist einfach. Eine wichtigere Aufgabe besteht jedoch darin, zu entscheiden, was nicht zu tun ist, und Verantwortung dafür zu übernehmen. Der Besitzer des Produkts bestimmt auch die Abfolge dessen, was wir gerade tun und was später passiert. Dies ist eine schwierige Aufgabe und sollte zusammen mit dem Entwicklungsteam und mindestens einer interessierten Person durchgeführt werden.

Agile за 15 минут с картинками

Um richtig Prioritäten zu setzen, muss der Product Owner den Wert jeder Story und deren Umfang verstehen.

Entscheidungsfindung

Einige Geschichten sind extrem notwendig, und einige sind nur Bonus-Features. Die Entwicklung einiger Geschichten wird einige Stunden dauern, die Entwicklung anderer - Monate.

Wie korreliert die Größe der Geschichte mit ihrem Wert? Auf keinen Fall.

Es bedeutet nicht mehr besser. Der Wert und die Komplexität der Aufgabe helfen Pat dabei, Prioritäten zu setzen.

Wie bestimmt der Eigentümer des Produkts den Wert und das Volumen der Geschichte? Auf keinen Fall.

Es ist ein Ratespiel. Und es ist besser, an allem teilzunehmen. Pat kommuniziert ständig mit Stakeholdern, um den Wert jeder Geschichte zu kennen, kommuniziert mit dem Entwicklungsteam, um den Umfang der Arbeit zu kennen, aber all dies sind ungefähre Vermutungen, keine genauen Zahlen. Am Anfang wird es immer Fehler geben und das ist normal. Kommunikation ist viel wertvoller als super genaue Zahlen.

Jedes Mal, wenn Entwickler etwas Neues veröffentlichen, lernen wir mehr Informationen und können besser navigieren.

Eine Priorisierung ist nicht genug. Um Geschichten schnell und oft zu veröffentlichen, müssen Sie in Stücke zerbrechen, die Sie in ein paar Tagen tun können. Wir wollen, dass die Trichter am Anfang kleine und klare Geschichten haben und am Ende - groß und vage. Im Laufe der Zeit können wir unsere neuesten Erkenntnisse über das Produkt und die Bedürfnisse des Benutzers nutzen. Dies wird alles als Löschen des Backlogs bezeichnet.

Pat hält ein Treffen ab, um den Backlog jeden Mittwoch von 11 bis 12 Uhr aufzulösen. Normalerweise geht es an das gesamte Team und manchmal auch an mehrere Stakeholder. Der Inhalt der Treffen ist anders. Fokussierung auf Evaluation, Aufgliederung von Geschichten, auf Akzeptanzkriterien.

Der Besitzer des IT-Produkts muss ständig mit allen kommunizieren

Reife Besitzer des Produkts unterscheiden 2 Komponenten des Erfolgs: eine Leidenschaft für Arbeit und Kommunikation. Welche Aufgaben entscheidet der Produkteigentümer mit dem Team?

Das Gleichgewicht zwischen der Komplexität der Entwicklung und dem Wert der Benutzerhistorie

In einem frühen Stadium ist das Gleichgewicht von Unsicherheit und mehreren Risiken auf einmal bedroht.

Risiken

Agile за 15 минут с картинками

  • Geschäftsrisiko: "Tun wir das Richtige?"
  • Soziales Risiko: "Können wir tun, was wir brauchen?"
  • Technisches Risiko: "Wird das Projekt auf dieser Plattform funktionieren?"
  • Risiken bei den Kosten und dem Zeitplan der Umsetzung: "Werden wir es schaffen und werden wir genug Geld haben?"

Wissen kann als das Gegenteil von Risiko gesehen werden. Wenn die Unsicherheit groß ist, konzentrieren wir uns auf den Erwerb von Wissen - Schnittstellen-Prototypen, technische Experimente.

Kompromisse zwischen den Werten des Wissens und den Werten für den Kunden

Aus Sicht des Kunden sieht die Kurve so aus:

Agile за 15 минут с картинками

In Bezug auf den Wert für den Kunden sieht diese Kurve so aus.

Agile за 15 минут с картинками

Mit abnehmenden Unsicherheiten können wir uns auf Werte für den Kunden konzentrieren. Wir wissen was und wie es geht. Es bleibt nur zu tun. Nachdem wir die Hauptgeschichten implementiert haben, werden wir Bonus-Features erstellen oder ein neues Projekt starten.

Kompromiss zwischen kurzfristigem und langfristigem Denken

Agile за 15 минут с картинками

Was ist zuerst zu implementieren? Reparieren Sie dringend Fehler oder beginnen Sie mit der Entwicklung einer atemberaubenden Funktion, die die Benutzer erstaunen wird. Oder machen Sie ein ausgeklügeltes Plattform-Upgrade, das die Arbeit in der Zukunft beschleunigt. Es ist notwendig, ständig ein Gleichgewicht zwischen reaktiver und proaktiver Arbeit zu wahren.

Richtige Dinge tun, Dinge richtig machen oder schnell machen?

Agile за 15 минут с картинками

Idealerweise - alle drei gleichzeitig, aber in Wirklichkeit müssen Sie wählen.

Agile за 15 минут с картинками

Angenommen, wir sind hier. Wir versuchen, mit Hilfe einer idealen Architektur ein ideales Produkt zu schaffen. Wenn wir viel Zeit verbringen, kommen wir vielleicht nicht in das "Marketing-Fenster" und wir haben Probleme mit Geld. Oder:

Agile за 15 минут с картинками

Wir machen ein schnelles Prototyp-Produkt. Für eine kurzfristige Perspektive ist das nicht schlecht. Auf lange Sicht bekommen wir technisches Risiko. Und die Entwicklungsgeschwindigkeit wird auf Null fallen. Oder:

Agile за 15 минут с картинками

Wir sind hier, wir schaffen einen wundervollen Tempel in Rekordzeit. Aber der Benutzer brauchte keinen Tempel, er brauchte einen lebenden Van.

Zwischen den Rollen in Scrum gibt es eine gesunde Konfrontation

Agile за 15 минут с картинками

Der Besitzer des Produkts konzentriert sich auf den Bau der richtigen Dinge. Das Team konzentriert sich darauf, Dinge richtig zu bauen. Scrum-Master oder Agil-Trainer konzentriert sich auf die Reduzierung des Feedback-Zyklus.

Unabhängig davon ist es wichtig, die Wichtigkeit der Geschwindigkeit zu betonen, da eine kurze Rückkopplungsschleife das Training beschleunigt. So können wir schnell herausfinden, welche Dinge richtig sind und wie sie richtig aufgebaut werden.

Kompromisse zwischen der Entwicklung eines neuen Produkts und der Verbesserung des Alten

Agile за 15 минут с картинками

Das Produkt kann niemals vollständig fertig gestellt werden, da es ständig Änderungen benötigt. Wenn das Team mit der Arbeit an einem neuen Produkt beginnt, was passiert dann mit dem alten Produkt? Der Transfer des Produkts von einem Team zum anderen ist sehr teuer und riskant. Normalerweise unterstützt das Team das alte Produkt und entwickelt ein neues. Daher bezieht sich das Konzept des "Backlog" nicht auf das Produkt, sondern auf das Team. Backlog ist eine Liste von Dingen, die ein Product Owner von einem Team wünscht. Und eine Reihe von Geschichten für verschiedene Produkte. Der Eigentümer des Produkts muss ständig das tatsächliche für die Implementierung auswählen.

Zeitplan der Zerstörung von Geschichten

Von Zeit zu Zeit werden interessierte Personen Pat fragen: "Wann werden sie mein Feature veröffentlichen?" Oder "Wie viele Features werden zu Weihnachten veröffentlicht?". Der Produkteigentümer muss in der Lage sein, die Erwartungen des Benutzers zu verwalten. Und verwalten Sie die Erwartungen realistisch.

Agile за 15 минут с картинками

Zwei Trends - optimistisch und pessimistisch (das kann man mit dem Auge sehen). Der Abstand zwischen den Trends zeigt, wie instabil die Geschwindigkeit des Teams ist. Im Laufe der Zeit werden sich diese Trends stabilisieren und der Unsicherheitskegel wird abnehmen.

Angenommen, eine interessierte Person fragt, wann diese Funktion ausgeführt wird?

Agile за 15 минут с картинками

Dies ist eine Frage mit festem Inhalt und auf unbestimmte Zeit. Um dies zu beantworten, verwendet Pat zwei Trendlinien. Die Antwort ist im April oder Mai.

Agile за 15 минут с картинками

Die interessierte Person fragt Pat: "Wie viel wird bis Weihnachten getan?" Dies ist ein befristeter Begriff mit ungewissem Inhalt. Die Trendlinien schneiden auf der vertikalen Skala ein mögliches Segment dessen, was sie realisieren können.

Agile за 15 минут с картинками

Die interessierte Person fragt: "Können wir diese Funktionen zu Weihnachten machen?" Dies ist eine Frage mit festen Zeitrahmen und festen Inhalten. Pat konzentriert sich auf Trends und antwortet: "Nein". Hinzufügen: "Bis Weihnachten werden wir Zeit haben, so viel zu tun, aber so lange werden wir diese Arbeit vollständig abschließen müssen."

Es ist normalerweise besser, den Inhalt eines Projekts zu reduzieren als die Zeit zu erhöhen. Wenn wir den Inhalt reduzieren, haben wir die Möglichkeit, die Zeit zu verschieben. Wir können etwas hier und den Rest später veröffentlichen.

Der Besitzer des Produkts führt die Berechnungen wöchentlich durch und verwendet nur empirische Daten und gibt kein Wunschdenken weiter. Er ist ehrlich über die Unsicherheit. Das Team behält das Arbeitstempo bei, und Pat übt keinen Druck auf sie aus und zwingt sie zur Beschleunigung.

Mehrere Befehle

Agile за 15 минут с картинками

Lassen Sie uns ein paar Produktbesitzer und mehrere Teams haben. Das Modell ist das gleiche - Bandbreitenmanagement, Kommunikation mit Stakeholdern, Entscheidung über die Ablehnung von User Stories. Geschwindigkeit ist die Summe der Geschwindigkeiten aller Teams. Die Prognose kann allgemein oder für jedes Team sein. Besitzer von Produkten haben eine zusätzliche Aufgabe - mit anderen Eigentümern des Produkts zu kommunizieren. Es ist notwendig, Arbeiten an Backlogs zu organisieren, um Abhängigkeiten zu minimieren und Synchronisation bereitzustellen. In großen Projekten muss der Chief Product Owner (CPO) alle anderen synchronisieren.

Video auf Englisch

Video auf Russisch

Über Agile Product Ownership in Kürze & habrahabr.ru & wiki