Kanban-Modell in der Softwareentwicklung

Was ist Kanban?

Kanban ist ein sehr beliebtes Framework für die Entwicklung in der agilen Softwareentwicklungsmethodik. Es bietet eine transparente Möglichkeit, die Aufgaben und Arbeitskapazität eines Teams zu visualisieren. Es verwendet hauptsächlich physische und digitale Tafeln, um den Teammitgliedern die Visualisierung des aktuellen Stands des Projekts, an dem sie arbeiten, zu ermöglichen.

Kanban entstand in den 1940er Jahren bei Toyota. Kanban bedeutet auf Japanisch „billBretter.“ Das Kanban-Board verfügt über Spalten und Story-Karten. Die Spalten sind nichts, aber Workflow-Status und Karten sind nichts anderes als eine Demonstration der tatsächlichen Aufgabe, die ein Teammitglied ausführt.

Wann ist Kanban sinnvoll?

Hier sind die Gründe für die Verwendung der Kanban-Entwicklungsmethode:

  • Kanban kann in jedem Bereich eingesetzt werden und kann sehr effektiv in der Softwareentwicklung eingesetzt werden. Kanban-Projektmanagement trägt dazu bei, die Effizienz des Teams zu verbessern.
  • Es handelt sich um ein Pull-basiertes System. Aufgaben werden gezogen, sobald eine Person frei ist.
  • Kanban sollte verwendet werden, wenn Sie Ihre Arbeit jederzeit freigeben möchten. Es erfordert eine Git-Verzweigung, ist aber machbar.
  • Kanban sollte verwendet werden, wenn Sie die Prioritäten spontan ändern möchten. Dazu müssen Sie diese Geschichte lediglich ganz oben auf die To-Do-Warteschlange setzen.
  • Es sollte verwendet werden, wenn Sie Ihre Arbeit visualisieren und den Fortschritt Ihrer Aufgaben visuell sehen möchten.

Kanban-Karten

Das Kanban-System empfiehlt die Visualisierung der Arbeit. Es schlägt die Verwendung der physischen und der digitalen Tafel vor.

Kanban-Karten
Kanban-Karten

Die Kanban-Karten sind wesentliche Bestandteile des Kanban-Boards, da sie die Arbeit darstellen, an der das Team arbeitet. Diese Karten werden haben

  1. Priorität
  2. Eigentümer
  3. Art
  4. Geburtstermin

Eine Spalte im Kanban-Board stellt die Arbeitsphase dar, und Sie können für die Spalte ein WIP-Limit (Work in Progress) festlegen. Das WIP-Limit bezeichnet die maximale Anzahl an Karten, die in dieser Spalte verbleiben können.

Da das Kanban-Projektmanagement ein Pull-basiertes System verwendet, kann ein Entwickler, sobald er frei ist, eine Karte aus der To-Do-Spalte in die Entwicklungsspalte ziehen.

Kanbantafel

Kanbantafel ist ein agiles Projektmanagement-Tool, das bei der Implementierung von Kanban hilft, um Projekte für persönliche und geschäftliche Zwecke zu verwalten. Es handelt sich um ein physisches oder digitales (JIRA) Board, das Teams dabei helfen soll, ihre Arbeit in verschiedenen Phasen und Prozessen zu visualisieren. Es hilft auch, die Arbeitsschritte mit Spalten mithilfe von Karten darzustellen.

Es verfügt über Spalten, die den Status der Arbeit darstellen

  1. Machen,
  2. Entwickler
  3. Testen
  4. Fertig.

Jede dieser Spalten kann Karten enthalten, die kleiner als das WIP-Limit sind. Die Karten repräsentieren die eigentliche Arbeit.

Sie können positive Zahlen verwenden, um die laufende Arbeit zu begrenzen, und diese Grenzzahl kann sowohl in physischen als auch in digitalen Kanban-Boards oben in den Spalten platziert werden. Jeder Einzelne im Team kann den Status seiner Karte verwalten und das gesamte Team kann den Arbeitsablauf visualisieren. Als nächstes lernen wir in diesem Kanban-Tutorial den Kanban-Workflow kennen.

Kanban-Workflow

Kanban-Workflow ist eine Reihe von Schritten, die Teams dabei helfen, explizite Richtlinien und Prinzipien in Kanban zu definieren. Es stellt die Regeln und Verfahren dar, während die Arbeit in verschiedenen Phasen der Entwicklungs- und Lieferzyklen läuft. Der Kanban-Workflow besteht aus schrittweisen Prozessen zwischen dem Beginn und der Lieferung einer bestimmten Aufgabe.

Das Grundprinzip von Kanban ist: „Hör auf zu beginnen, fang an zu beenden“. Mit Hilfe von WIP-Limits kann mehr Arbeit erledigt werden. In jedem modernen Tool wie JIRA sind anpassbare Kanban-Workflows und -Status verfügbar.

Nachfolgend sind die grundlegenden Zustände aufgeführt, die viele Softwareteams für ihr Workflow-Management befolgen.

Staaten Verständnis für Aufgaben
Tun In diesem Zustand kommen hier zum ersten Mal Aufgaben an.
Bereit zur Analyse Analysieren Sie die Aufgabe und fügen Sie Anforderungen vollständig hinzu.
Bereit für die Entwicklung Die Analyse ist abgeschlossen und die Entwicklung kann beginnen.
In der Entwicklung Aufgaben werden entwickelt.
Bereit zum Testen Die Entwicklung ist abgeschlossen und jetzt kann mit dem Testen begonnen werden.
Im Test Aufgaben werden getestet.
Bereit zur Freigabe Tests abgeschlossen; Eine Freilassung kann erfolgen.
Freigegeben/Fertig Veröffentlicht.

Die vier Prinzipien von Kanban

Nachfolgend sind die vier wichtigsten Grundprinzipien von Kanban aufgeführt:

  1. Beginnen Sie mit dem, was Sie jetzt haben: Das Kanban-System schlägt vor, schrittweise zu arbeiten und mit dem zu beginnen, was Sie derzeit haben. Da es zu seinen Praktiken gehört, sich kontinuierlich zu verbessern, müssen Sie das System schrittweise verbessern.
  1. Stimmen Sie der Verfolgung schrittweiser, evolutionärer Veränderungen zu: Kanban empfiehlt eine schrittweise Änderung im Prozess, und Sie dürfen keine große Änderung im Prozess auf einmal vornehmen.
  1. Respektieren Sie den aktuellen Prozess, die Rollen und Verantwortlichkeiten: Beginnen Sie noch einmal mit dem, was Sie jetzt haben, und ändern Sie den Prozess, die Rolle und die Verantwortlichkeiten schrittweise.
  1. Ermutigen Sie Führungspersönlichkeiten auf allen Ebenen: Jeder Einzelne kann als Führungskraft agieren und Ideen einbringen, um die Effizienz des gesamten Kanban-Systems zu verbessern. Sie sollten nicht denken, dass es sich hierbei um eine Aktivität auf Managementebene handelt und dass sogar das jüngste Mitglied des Teams als Führungskraft fungieren kann.

Die sechs Kanban-Kernpraktiken

Following sind die wichtigsten sechs Kernpraktiken von Kanban:

  1. Visualisieren Sie den Arbeitsablauf: Dieses Prinzip schlägt vor, ein Kanban-Board (physisch oder digital) zur Visualisierung des Arbeitsablaufs zu haben. Jeder Einzelne eines Teams muss seine Karte und die Karten anderer Teammitglieder sehen. Sie können Ihre Karten wie im obigen Bild in verschiedenen Spalten verschieben. Es sorgt für viel Transparenz im Team und erleichtert zudem die Lösung von Blockaden
  1. Laufende Arbeiten begrenzen: Kanban ist ein Pull-basiertes System und verbessert die Effizienz eines Teams, indem es die laufenden Arbeiten begrenzt und Aufgaben bereitstellt, die vom Team innerhalb des vorgegebenen Zeitrahmens erledigt werden können. Dieses WIP-Limit gilt vom Anfang bis zum Ende des Workflows. Sie können den Grenzwert mithilfe einer positiven Ganzzahl oben auf die Spalte anwenden.
  1. Konzentrieren Sie sich auf den Fluss: Dieses Prinzip konzentriert sich auf den Fluss und auf etwaige Unterbrechungen. Kommt es zu Unterbrechungen oder Blockaden, müssen diese dauerhaft behoben werden.
  1. Explizite Richtlinien: Im Team können Richtlinien festgelegt werden, um die Nacharbeit zu reduzieren und sich auf die Bereiche zu konzentrieren, die Aufmerksamkeit erfordern oder in denen es effektiver ist.
  1. Rückkopplungsschleife: Feedbackschleifen sind bei Kanban sehr wichtig. Dies geschieht nicht nur innerhalb des Teams, sondern auch zwischen mehreren Teams, Trainern usw. Dies trägt dazu bei, den allgemeinen Zustand des Kanban-Systems zu verbessern.
  1. FORTLAUFENDE VERBESSERUNGEN: Dies ist das Kernprinzip des Kanban-Systems. Darin heißt es, dass Sie den Prozess jederzeit verbessern können, was zu einer höheren Effizienz führt.

Pull-basiertes System

Kanban ist eine Pull-basierte Methode, bei der Aufgaben gezogen und nicht gepusht werden. Sobald Sie Ihre aktuelle Karte vervollständigt haben, können Sie eine neue Karte aus der vorherigen Spalte des Kanban-Boards ziehen.

Mit dem WIP-Limit hilft Kanban bei der Verbesserung der Durchlaufzeit und Zykluszeit. Zwischen diesen beiden Zeitpunkten sollte eine möglichst geringe Lücke bestehen. Wir haben zum Beispiel 5 Entwickler und nur 1 Tester; Was passiert in diesem Fall? Es würde immer viele Karten geben, die getestet werden müssten, und sie werden sitzen bleiben idle und warten.

Um die oben genannten Probleme zu überwinden und die Effizienz zu verbessern, folgt Kanban dem Pull-basierten Ansatz mit WIP-Limits, bei dem eine begrenzte Anzahl von Karten gezogen werden muss.

Ein Tester holt also eine Aufgabe aus der Phase „Testbereit“, wenn er seine aktuelle Aufgabe abgeschlossen hat. Mit dem WIP-Limit in Kanban-Spalten (Entwicklungsstadien) werden Sie im Kanban-Workflow nicht viele unbeaufsichtigte Karten haben.

Das Pull-basierte System hilft auch dabei, die richtige Geschwindigkeit für das Team zu finden. Mit der richtigen Geschwindigkeit wird das Team bessere Leistungen erbringen.

Vorlaufzeit und Zykluszeit

In der Kanban-Methode werden häufig Durchlaufzeit und Zykluszeit verwendet. Es gibt einen Unterschied zwischen beiden, und es ist wichtig, dies zu verstehen, um Verwirrung zu vermeiden.

Vorlaufzeit Ciklusidő
Die Durchlaufzeit wird als die Zeit zwischen dem Eintreffen der Aufgabe in Ihrem Workflow und ihrem Verlassen des Workflows, d. h. ihrer Freigabe, gemessen. Die Zykluszeit wird als die Zeit zwischen dem Eintreffen der Aufgabe im Status „In Bearbeitung“ und dem Eintreffen der Aufgabe im Status „Bereit zur Freigabe“ gemessen.

Hier ist es auch wichtig zu verstehen, dass die Zeit zwischen der Veröffentlichungsbereitschaft und der tatsächlichen Veröffentlichung nicht berücksichtigt werden darf.

Cycle Time = Work in Progress/Throughput

Im Idealfall sollte die Lücke zwischen Durchlaufzeit und Zykluszeit minimal sein, und Kanban verwendet ein kumulatives Flussdiagramm (CFD), um historische Daten zur Vorlaufzeit und Zykluszeit zu messen.

Kumulatives Flussdiagramm (CFD)

CFD ist ein Diagramm, das in allen führenden Ländern verfügbar ist Workflow-Management-Tools wie JIRA. Dieses Diagramm misst die Gesamtzahl der Arbeitskarten/Aufgaben, die in den Workflow aufgenommen wurden, und die im Laufe der Zeit abgeschlossenen Karten/Aufgaben.

Es hilft Ihnen, eine Schätzung der durchschnittlichen Durchlaufzeit und Zykluszeit für eine vorgegebene Zeit zu erhalten.

Das CFD-Diagramm liefert Ihnen Indikatoren oder Problembereiche, die Sie beheben müssen. Basierend auf diesem Diagramm erhalten Sie ein klares Bild. Sie können die Durchlaufzeit und Zykluszeit Ihres Teams korrigieren.

Kumulatives Flussdiagramm für Kanban
Kumulatives Flussdiagramm für Kanban
  1. Vorlaufzeit: Dies ist die Zeitspanne zwischen dem Eintreffen einer neuen Karte in Ihrem Workflow und ihrem endgültigen Verlassen des Workflows.
  2. Ciklusidő: Es handelt sich um die Zeitspanne zwischen dem Eintreffen der Karte im betriebsbereiten Zustand und dem Zeitpunkt, zu dem die Karte zur Freigabe bereit ist.
  3. WIP: Work in Progress (WIP) begrenzt die maximale Anzahl von Arbeitselementen in den verschiedenen Phasen des Workflows.
  4. Durchsatz: Dies ist die tatsächliche Leistung und gibt die tatsächliche Anzahl der in einem bestimmten Zeitraum gelieferten Karten an.
  5. Durchsatz = WIP/Zykluszeit

Begrenzung des WIP (in Arbeit)

In der Kanban-Entwicklungsmethodik begrenzt WIP die Anzahl der Aufgaben/Karten, an denen ein Teammitglied oder das gesamte Team gleichzeitig arbeiten kann.

Die WIP-Grenzwerte stellen sicher, dass das Team seine Arbeit stabilisiert und die Vorhersagekraft erhöht, die im Pull-basierten System unerlässlich ist. Normalerweise wird die Entscheidung über das WIP-Limit vom Team selbst getroffen.

Grund für die Festlegung der WIP-Limits

Hier sind Gründe, die WIP-Limits festzulegen:

  • Es verlagert den Fokus auf die Erledigung von Dingen, da sich der Einzelne jeweils auf eine einzelne Aufgabe konzentriert.
  • Es hilft Teams, ihre Kapazitäten zu verstehen.
  • Es verbessert den Produktivitätsvorsprung und die Zykluszeit.
  • Es hilft dabei, die Anhäufung von Aufgaben (im Wartemodus) zu vermeiden.
  • Es hilft bei der Bewegung des Arbeitsablaufs und der Aufgaben bleiben in Bewegung.
  • Es hilft auch, Blockaden aufzulösen, da eine Person nicht zwischen verschiedenen Aufgaben wechseln muss.

Scrum vs. Kanban

Hier sind die wichtigen Unterschiede zwischen Scrum vs. Kanban

Gedränge Kanban
Gedränge legt Wert auf Planung. Es beginnt mit sprint Planung und endet mit sprint Retrospektive. Es finden viele Besprechungen statt, die dazu beitragen, sicherzustellen, dass das Team auf die nächsten Schritte, Prioritäten und Erkenntnisse aus den vorherigen ausgerichtet ist sprints. Kanban ist offen für Änderungen unterwegs. Es bedeutet weniger Steifigkeit und Dinge können sich häufig ändern.
Es empfiehlt die Sammlung von Zeitmessungen während gemacht sprints Kanban empfiehlt Grafiken um einen Überblick über den Fortschritt des Teams im Laufe der Zeit zu erhalten.
Gedränge nicht mehr bittet die Teams um eine Zusage. Vielmehr geht es um die sprint Ziele und Prognosen. Kanban setzt auf Zeit-boxing und Prognosen.
Es betont die Planung und so weiter Schätzung spielt eine sehr wichtige Rolle in Scrum Kanban hat keine zwingenden Anforderungen zur Schätzung.
Jedes Das Individuum hat seine Rolle und Verantwortlichkeiten. Nein Stellen Sie Rollen so flexibel ein im Hinblick auf die individuellen Verantwortlichkeiten.
Die Iterationen/Sprints haben eine feste Dauer. Diese Dauer variiert zwischen 2 Wochen und 1 Monat. Kanban ist basiert nicht auf der Dauer. Dieses Ding wird anhand der Zykluszeiten gemessen.
Teams sind verpflichtet, sich zu verpflichten einen bestimmten Arbeitsaufwand. Engagement nicht erforderlich Für Teams ist es optional.
Bei dieser Methode funktionsübergreifende Teams sind wichtig, da sie alle Störungen bewältigen können, die zu einem Engpass in der Softwareentwicklung führen können. Eine spezialisiertes Team ist wichtig.
Das Hinzufügen von Artikeln ist nicht möglich zu laufenden Iterationen. Neu Elemente können einfach hinzugefügt werden wenn die zusätzliche Kapazität verfügbar ist.
A sprint Der Rückstand gehört nur a einzelnes Team. Mehrere Teamss können Kanban-Board teilen.
Liefergegenstände sind bestimmt durch sprints, wobei eine Reihe von Arbeiten abgeschlossen und zur Überprüfung bereit sein müssen. Produkte und Prozesse sind kontinuierlich geliefert auf einer erforderlichen Basis. Der Test- und Überprüfungsprozess läuft also gleichzeitig abneogewöhnlich.
Scrum-Softwareentwicklungsmethode konzentriert sich auf den Rückstand. Ganz nach der Kanban-Methode Der Schwerpunkt liegt auf dem Prozess-Dashboard.
Jedes Das Teammitglied hat eine bestimmte Rolle In Scrum legen der Master Zeitpläne fest, der Produktbesitzer legt Ziele fest und die Teammitglieder führen die Entwicklungsarbeit durch. Es gibt keine vordefinierten Rollen für ein Team. Möglicherweise gibt es jedoch noch einen Projektmanager. Das Team wird zur Zusammenarbeit ermutigt und arbeitet zusammen.
Am besten für Projekte mit sich ändernde Prioritäten. Ideal für Teams mit stabile Prioritäten Das wird sich im Laufe der Zeit wahrscheinlich nicht ändern.
Misst die Produktion Geschwindigkeit nutzen bis sprints. Misst die Produktion mit Zykluszeit oder die genaue Zeit, die benötigt wird, um einen vollständigen Teil eines Projekts abzuschließen.
Scrum erfordert a völlige Abkehr vom traditionellen Modell zum Agile-Scrum-Modell, das im Projekt implementiert werden soll. Kanban lässt keine drastischen Veränderungen zu im Projekt.
Es ist eine ideale Methode für Projekte mit sehr unterschiedliche Prioritäten. Am besten geeignet für Teams mit stabilen Prioritäten.
In Scrum ist die gesamte tEam konzentriert sich auf die Zusammenarbeit und die Erledigung der Aufgabe qualitativ hochwertige Entwicklungsarbeit zu leisten. Teams arbeiten daran, Ziele zu erreichen und verkürzen Sie die Zeit bis zum Abschluss des gesamten Prozesses. Daher ist die Verkürzung des Zeitzyklus hier der größte Erfolgsindikator.
Gedränge Schwerpunkt auf seinen Zeitplänen; Neue Elemente können nicht zu laufenden Iterationen hinzugefügt werden. Kanban ist von Natur aus iterativer gibt es keine konkreten Zeitrahmen. So können immer dann neue Artikel hinzugefügt werden, wenn zusätzliche Kapazitäten verfügbar sind.
Die gesamte Arbeit wird in erledigt Chargen/Sprints. Das gesamte Projekt basiert auf der Bewegung von Single-Threaded-Arbeitselement fließt.
Scrum Master fungiert als Problemlöser. Kanban macht Mut Jedes Teammitglied ist ein Anführer und die Verantwortung unter allen zu teilen.
Scrum schreibt vor Zeit-boxed-Iterationen. Kanban konzentriert sich auf eine andere Dauer planen für individuelle Iteration.
Scrum hilft Unternehmen dabei Sparen Sie Zeit und Geld. Kanban-Methode Fokus auf kontinuierliche Verbesserung, Produktivität und Effizienz.
Erreichen stabile und konsistente Kommunikation Leistungssteigerung auf allen Ebenen. Bei Teammitgliedern ist die Wahrscheinlichkeit höher ihre Ziele viel einfacher erreichen aufgrund der visuellen Natur von Kanban-Boards.
Projekt sind codiert und getestet während der sprint Überprüfen Bei Teammitgliedern ist die Wahrscheinlichkeit höher ihre Ziele viel einfacher erreichen aufgrund der visuellen Natur von Kanban-Boards.
einfacher, sich an die ständigen Veränderungen anzupassen wegen dem kurz sprints und regelmäßiges Feedback. ausgelegt für eine gleichmäßige, gleichmäßige Ausgabe, können große Veränderungen in der Kundennachfrage zum Scheitern von Kanban führen.
Die Gesamtkosten des Projekts sind minimal, was dazu führen kann schnelleres und günstigeres Ergebnis. Wenn eine Aufgabe nicht richtig eingeschätzt wird, wird die Die Gesamtkosten des Projekts werden niemals korrekt sein. In solchen Fällen kann die Aufgabe auf mehrere verteilt werden sprints.
Diese Methodik erfordert erfahrene Teammitglieder nur. Wenn das Team also aus Leuten besteht, die keine Experten sind, kann das Projekt nicht rechtzeitig abgeschlossen werden. Nein bestimmte Zeitrahmen werden jeder Phase zugewiesen, sodass die Teammitglieder nie eine Vorstellung davon bekommen, wie viel Zeit sie in jeder Phase verbringen können.
Bei dieser Agile-Scrum-Methode ist dies der Fall einfacher, ein Qualitätsprodukt zu liefern zu einem geplanten Zeitpunkt. Es ist für a konzipiert regelmäßige, konstante Leistung, Große Veränderungen in der Kundennachfrage können dazu führen, dass Kanban sinkt.
Der Projektplan wird niemals stören auch wenn ein Teammitglied das Team verlässt. Wenn eines der Teammitglieder während der Entwicklung ausscheidet, ist dies möglich der Projektentwicklung schaden.
Manchmal tägliche Treffen vereiteln Teammitglieder. Veraltetes Kanban-Board kann zu Problemen im Entwicklungsprozess führen.
Große Projekte können problemlos aufgeteilt werden in leicht handhabbar sprints.

Zusammenfassung

  • Kanban-Definition: Kanban ist definiert als eine agile Entwicklungsmethodik zur Entwicklung von Software, Automobilen, Waren, Medikamenten, Schuhen oder anderen Fertigungsarbeiten.
  • Kanban nutzt das Kanban-Board zur Visualisierung der Arbeit. Es verwendet Spalten als Phasen (Aufgabe, Entwicklung, Tests usw.) und Karten als Arbeitsaufgabe.
  • Die Kanban-Methodik unterstützt die physische und digitale Tafel zur Visualisierung.
  • Kanban ist ein Pull-basiertes System, bei dem die Teammitglieder Karten von der vorherigen Phase in die aktuelle Phase ziehen.
  • Die Kanban-Methode nutzt das CFD-Diagramm, um die Durchlaufzeit und Zykluszeit des Teams zu verstehen. Dieses Diagramm hilft den Teams, die Lücke zwischen diesen beiden Zeitpunkten zu schließen und die Effizienz zu verbessern.
  • Mit der Kanban-Entwicklungsmethodik begrenzt WIP die Anzahl der Aufgaben/Karten, an denen ein Teammitglied oder das gesamte Team gleichzeitig arbeiten kann.
  • WIP-Grenzwerte verlagern den Fokus auf die Erledigung von Aufgaben, da sich eine Person jeweils auf eine einzelne Aufgabe konzentriert.