Bei der Wahl zwischen zwei Optionen besteht immer das Risiko, von Meinungen und zweifelhaften Fakten beeinflusst zu werden. Bei der Auswahl einer Methodik oder eines Arbeitsansatzes bemühen wir uns, Fehler zu vermeiden und so viele Fakten und Details wie möglich zu studieren, um die richtige Wahl zu treffen.
In der agilen Softwareentwicklung ist diese Wahl ebenfalls eine Herausforderung, insbesondere wenn es um Scrum und Kanban geht.

Scrum vs Kanban: zwei Methoden, eine Wahl
Bevor Sie zu einer so schwierigen Auswahl kommen, könnten Sie wahrscheinlich vor einem weiteren vorläufigen Dilemma stehen, das mit der Wahl zwischen
Wasserfall und Agilität zusammenhängt . Sie haben jedoch die richtige Wahl getroffen und stehen nun vor zwei unabhängigen Wegen in der Welt der agilen Entwicklung.
Scrum und Kanban sind zwei Zweige der Agile-Familie (viele Menschen betrachten Kanban jedoch nicht als unabhängige Methode und unterscheiden sie von anderen Methoden). Beide sind flexibel und iterativ.
Es gab eine
Umfrage , die 2018 unter 101592 Softwareentwicklern aus aller Welt durchgeführt wurde. Fast 86% von ihnen verwenden Agile in ihrer Arbeit. Sieht beeindruckend aus, oder?
Scrum oder Kanban: Was ist die beste Wahl?
Scrum ermöglicht es Menschen, komplexe Anpassungsprobleme zu lösen und gleichzeitig Produkte von höchstem Wert produktiv zu liefern.
Das Scrum-Framework ist leicht und einfach zu verstehen, kann jedoch schwierig zu beherrschen sein. Es besteht aus kurzen Iterationen oder Sprints, die normalerweise 2-3 Wochen dauern.
Die Liste der möglichen Funktionen für die Iteration wird vom Team erstellt. Dann starten sie einen Sprint. Normalerweise ändern sich die Funktionen, an denen während eines Sprints gearbeitet wird, nicht. Was am Anfang begonnen wurde, muss sowieso bis zum Ende erledigt sein.
Scrum enthält verschiedene Begriffe, Konzepte und Artefakte. Um sie alle zu verstehen, lesen und studieren Sie das
Scrum-Glossar oder den ultimativen Leitfaden.
Kanban kann aus der Perspektive des Ortes betrachtet werden, an dem es erstellt wurde - Toyota Company.
Tägliche Förderlinien produzieren Autokomponenten. Eine spezielle Maschine entwirft Spiegel für Toyota-Autos: Links-, Rechts-, Rückspiegel und Spiegel für Sonnenblenden. Mit nur einem Klick auf eine Schaltfläche wird der Modus geändert und sie erhalten ein neues Produkt.
Der entscheidende Moment dabei ist, dass sie jederzeit Prioritäten ändern können. Sie können die Maschine in einen anderen Modus schalten und das wars.
Wenn Sie jedoch mehr Theorie über Kanban benötigen, können Sie es als visuelles System zur Verwaltung der Arbeit betrachten, während sie sich durch einen Prozess bewegt. Es visualisiert den Workflow und die tatsächliche Arbeit, die diesen Prozess durchläuft.
Kanban hilft dabei, potenzielle Engpässe in Prozessen zu identifizieren und zu beheben, um einen kostengünstigen Ablauf zu gewährleisten.
Der Hauptunterschied zwischen Scrum und Kanban ist die Iterationslänge:
- Sie arbeiten 2 Wochen in Scrum.
- In Kanban können Sie Entwicklern sogar täglich Aufgaben zur Verfügung stellen.
Kanban ist flexibler. Stellen Sie sich vor, Sie haben gestern eine neue Funktion für den Produktionsserver mit einigen Ereignissen zur Verfolgung der KPIs der Funktion veröffentlicht.
Mithilfe von Analysen versteht Ihr Produktmanager, dass ein Fehler aufgetreten ist. Er beschließt, einige Änderungen an der Logik des Features vorzunehmen. Er legt die Aufgabe auf ein Kanban-Brett und hebt sie in einer Spalte auf. Sobald der Programmierer frei ist, nimmt er diese Aufgabe auf und gibt sie direkt nach dem Testen frei. Es wird mehrere Tage für alles dauern.
Bei Scrum müssen Sie einen ganzen Sprint warten, das sind 2-3 Wochen.
Scrum erfordert eine Aufgabenschätzung mit Story Points oder Stunden. Ohne diese Schätzung können Sie keinen Sprint bilden. Und Sie sollten genau wissen, ob Sie alle Aufgaben in 2 Wochen erledigen werden.
Nach 2 Wochen erhalten Sie wertvolle Statistiken darüber, wie viele Story Points oder Stunden Ihr Team während eines Sprints absolviert hat. Mit Hilfe dieser Informationen sagt ein Scrum-Meister voraus, wo sich das Team in 2 Wochen befinden wird.
In Kanban können die Leute auch schätzen, aber dies ist optional. Es gibt keine Teamgeschwindigkeit. Sie berücksichtigen nur eine durchschnittliche Zeit für die Erledigung der Aufgabe und zählen sie in einem Zykluszeitbericht.
Task-Zykluszeit = Zeit, die für die Arbeit an einer Aufgabe aufgewendet wurde - Zeit, zu der die Aufgabe gestartet wurdeStellen Sie sich vor, das aktuelle Ziel in Scrum ist es, einen Sprint zu beenden, aber für Kanban müssen Sie eine Aufgabe beenden.
Von der Theorie zur Praxis: wie wir es machen
Begrenzung abwischen
WIP ist in Arbeit. Es ist wichtig, die Anzahl der Aufgaben zu begrenzen, an denen Spezialisten gleichzeitig arbeiten können. Ja, es gibt keinen Caesar und Napoleon unter uns, der für unglaubliche Multitasking-Fähigkeiten berühmt ist.
Es ist optimal, wenn Menschen nur an einer Aufgabe zu einer Zeiteinheit arbeiten. Normalerweise dauert es
15 Minuten, bis ein Entwickler von einer Aufgabe zu einer anderen wechselt.
Sie brauchen Zeit, um Tee zu kochen, einige Artikel im Internet zu lesen, die Anforderungen für eine neue Aufgabe zu lesen und sich daran zu erinnern, wo Sie angehalten und diese Stelle im Code gefunden haben.
Stellen Sie sicher, dass der Wechsel von Aufgabe zu Aufgabe ein Übergang von einem Gedankenweg zum anderen ist und es nicht immer einfach ist, zurück zu kommen.

Schwimmbahnen
Niemand ist vor Fehlern geschützt und Ihre Website funktioniert möglicherweise nicht während der Geschäftszeiten. Sie erstellen eine Aufgabe und weisen sie beispielsweise Ihrem DevOps-Techniker sofort zu.
Aber er macht eine andere Aufgabe und plant, sie morgen bis zum Mittagessen zu erledigen. Was tun? Es ist keine gute Idee, sich um ihn zu drehen, auf die Schulter zu tippen und zu einem Blocker zu wechseln. Sie können es einmal tun, aber ist es die richtige Art zu handeln? Auf jeden Fall nein, deshalb benutzen wir Swimlanes.
In diesem Beispiel ist der "Blocker" Swimlane die Lösung, mit der der Entwickler seine aktuelle Aufgabe sofort beendet, sie anhält und daran arbeitet, Dinge zu blockieren.
Wir verwenden auch eine "Someday" Swimlane, die alle Aufgaben abdeckt, die wir wahrscheinlich eines Tages unter diesem Block erledigen werden.
Die Swimlane hilft dabei, alle unnötigen Dinge beiseite zu legen, damit sich die Leute auf die wichtigen Aufgaben konzentrieren können.

Unterspalten
Es gibt eine Spalte "Codierung" und eine Spalte "Testen" direkt danach. Wenn der Entwickler seine Aufgabe beendet hat, verschiebt er sie in den "Test". Sie denken vielleicht, dass der Tester bereits mit der Arbeit an dieser Aufgabe begonnen hat, aber tatsächlich macht er eine andere. Sobald der Entwickler die Aufgabe zum Testen verschiebt, stört er das WIP-Limit für die Qualitätssicherung. Das ist eine echte Herausforderung!
Tatsächlich kann der Entwickler diese Aufgabe nicht in die Spalte "Testen" verschieben und sie in der Spalte "Codieren" belassen. Dies ist auch nicht gut, da seine Aufgabe in der Spalte "In Bearbeitung" verbleibt, obwohl er sie bereits abgeschlossen hat.
Wie kann man die nächste Aufgabe übernehmen, wenn die WIP-Grenzwerte nicht überschritten werden sollen? Unterspalten helfen. Der Entwickler verschiebt die abgeschlossene Aufgabe einfach aus der Unterspalte "Coding To-do" in die "Coding Done". Und der Tester übernimmt zu gegebener Zeit eine neue Testaufgabe aus der Unterspalte "Coding Done".

Letzte Gedanken
Zusammenfassend lassen Sie uns Scrum als flexible Entwicklungsmethode definieren, Kanban jedoch als noch flexibler bezeichnen.
Scrum sieht zu Beginn der Produktentwicklung besser aus, da es hilft, Termine einfacher zu verwalten. Zusätzlich gibt es genug Kommunikation in Teams. Sie besprechen Sprint Backlog vor dem Start gründlich.
Sie besprechen Aufgaben mit ihren Schöpfern. Das Team schätzt die Aufgaben gemäß dem Planning Poker-System. In der Tat hilft Scrum, den Kern des Produkts zu verstehen.
Nach der Produkteinführung erhalten Sie jedoch Feedback von Benutzern und müssen schnell reagieren. Sie beginnen mit der Messung und Optimierung von Produktmetriken, alles unterteilt Ihren Entwicklungszyklus in kleinere Einheiten und Sie erledigen viele kleine Aufgaben im Chaos. Dies ist der richtige Zeitpunkt, um sich an Kanban zu erinnern, das für einen solchen Fall perfekt ist.
Haben Sie beide Methoden angewendet? Was ist dein Favorit in der Opposition Kanban gegen Scrum?