Bildquelle: pixabay.com

Die heutigen Software-Teams sind zumindest in ihren Prozessen agiler! Sie sind bereit, außerhalb der festgelegten Parameter zu denken, um zu verfolgen, was für sie funktioniert. Sie möchten unbedingt neue Techniken des Projektmanagements und der Projektprozesse erlernen und anwenden.

Eine Projektmanagementmethode namens Kanban macht seit einigen Jahren die Runde in der Softwareindustrie und hat in den letzten fünf Jahren an Aktualität gewonnen. Zusammen mit den agilen Methoden hat die Einführung der Kanban-Methode den Unternehmen viel zu feiern gegeben.

Aber es gibt auch die Kritik, dass Kanban nichts anderes als eine verherrlichte To-Do-Liste ist. Worum geht es also? Lass es uns herausfinden.

Was ist Kanban?

Wenn Ihr Unternehmen bereit ist, über den traditionellen Ansatz des Software-Projektmanagements hinauszugehen, mangelt es heute nicht mehr an Projektmanagementtechniken.

Zum einen gibt es das Agile Project Management System, das sich auf nichtlineare, iterative Methoden der Softwareentwicklung konzentriert. Der Einsatz von agilen Methoden zeigt sich in Scrum, das sich auf einen flexibleren Ansatz für das Projektmanagement konzentriert.

Agile verfügt auch über Links zu anderen Projektmanagement-Frameworks wie Kanban und Extreme Programming. Von diesen hat Kanban eine Menge Popularität erreicht. Wer will denn nicht, dass die Japaner einen Prozess entwickeln?

Kanban ist ein Konzept, das im Toyota-Werk entwickelt wurde, um eine Just-in-Time-Produktion (JIT) zu erreichen, die Kosten senkt und eine geringere Ressourcennutzung ermöglicht. Im Kern folgt es dem Pull-Prinzip der Arbeit, dh, Aufgaben oder Produkte müssen nach Anforderungen und Anforderungen „gezogen“ werden und dürfen nicht von oben nach unten „geschoben“ werden. Es wurde entwickelt, um eine bedarfsgerechte Bevorratung von Automobilkomponenten in Toyota-Werken zu gewährleisten. Dies bedeutete, dass bei steigender Nachfrage Anfragen ausgefüllt wurden.

Das Konzept wurde mit ein paar Änderungen von David Anderson in seinem 2010 erschienenen Buch Kanban an die Softwareindustrie angepasst. Seitdem wurde es mit großem Erfolg für verschiedene Projekte eingesetzt. Dies kann bei komplexen Projekten, bei denen es zu einer Überlastung auf einer Seite des Entwicklungszyklus kommen kann, immens hilfreich sein.

Grundsätzlich behandelt das Kanban-System den Softwareprojektprozess als eine Pipeline. Angenommen, ein Softwareprozess hat drei Arten von Aufgaben: Analyse, Entwicklung, Testen und schließlich Bereitstellung. Angenommen, es sind zwanzig Aufgaben zu erledigen.

Im Falle eines traditionellen Projektmanagementsystems, wenn zum Beispiel

  • Insgesamt gibt es 25 Geschichten
  • Analysten können fünf Storys pro Woche verarbeiten
  • Entwickler sind in der Lage, fünf Geschichten pro Woche zu verarbeiten
  • Tester sind auf drei Geschichten pro Woche begrenzt

In dieser Situation stapelt sich die Arbeit einfach am Ende der Tester. Am Ende der ersten Woche stellt sich die Situation wie folgt dar:

  • Nur drei Geschichten sind zum Einsatz übergegangen.
  • Entwickler und Analysten arbeiten an drei Storys, da Tester nicht in der Lage sind, die Ergebnisse der Entwickler zu übernehmen und dieselben zu testen.
  • Die Arbeit wird angehäuft und Entwickler und Analysten sowie der Projektmanager bleiben in Verlegenheit.

Die Analysten und Entwickler können jetzt einfach ihre Daumen drehen! Oder ihr Vorgesetzter erkennt, dass sie untätig sind, und weist sie einem anderen Projekt zu, in dem eine ähnliche Situation auftreten kann. Es gibt also zwei Projekte, die sich derzeit in der Testphase befinden!

Die Probleme in einer solchen Situation sind nicht schwer zu erkennen. Was bringt es, zehn Geschichten (oder Software-Teile) zu entwickeln, wenn sie nicht bald getestet werden?

Nun zur Kanban-Methode.

Die Kanban-Methode ist ein äußerst einfaches Konzept. Es folgt einer einfachen Logik, bei der zuerst die Engpässe mithilfe einer Pull-Methode beseitigt und die in Bearbeitung befindlichen Arbeiten (Works in Progress, WIPs) für bessere Arbeitsprozesse begrenzt werden.

In seiner einfachsten Form, Kanban, hilft "Visual Board", indem es Elemente von einer To-Do-Liste "abzieht", anstatt mit Zeitleisten zu arbeiten. Die Kanban-Methode hilft bei der Identifizierung von Engpässen, damit der Prozessfluss besser verwaltet wird.

Ein Kanban-Basistafel enthält eine Liste der zu erledigenden Aufgaben, laufenden Aufgaben und erledigten Aufgaben.

In der Softwareverwaltung können die Aufgaben jedoch etwas komplexer sein. Die meisten Agile-Projekte haben auch ein ähnliches Board. Auf einer Kanbantafel sind die Phasen des Einsatzes zusammen mit einer Nummer für jede Spalte deutlich gekennzeichnet. Diese Zahl gibt die maximale Anzahl von Aufgaben oder Storys an, die ein bestimmter Schritt verarbeiten kann.

So würde unser Beispiel auf einem Kanban-Board Anfang der zweiten Woche aussehen. Dies bedeutet, dass Entwickler und Analysten in dieser Woche nicht an der optimalen Anzahl von Storys arbeiten. Es wäre offensichtlich, dass die Arbeit am Ende des Testers angehäuft wird. Und Organisationen können sicherstellen, dass Teams zusammenarbeiten, um die Tests durchzuführen. Alternativ können sie sich andere Modelle des Prozessflusses ansehen, damit dies nicht passiert.

Wenn Projekte über das Kanban-System abgewickelt werden, gibt es weniger Spielraum für die Arbeit, die angehäuft wird. Geschichten werden entsprechend der maximal verfügbaren Bandbreite aufgenommen.

In einer typischen Kanban-Konfiguration wird die Arbeit entsprechend der verfügbaren Bandbreite in Anspruch genommen, und die Arbeit wird von den Teams eingezogen, sodass sie immer über die maximale Kapazität verfügen. Das System ermöglicht auch eine schnelle Bearbeitung dringender Aufgaben, so dass diese mit minimalem Aufwand durch das Board bewegt werden können.

Schauen Sie sich dieses Kanban-Board an.

Es ist klar, dass alle Stufen mit maximaler Effizienz arbeiten. Und die Aufgabe, die sich auf der Überholspur befindet, wird ebenfalls berücksichtigt.

Kanban ist keineswegs die einzige Methode, mit der die Effizienz durch Begrenzung des WIP gesteigert werden kann. Es gibt andere Systeme, die das gleiche Ergebnis erzielen - zum Beispiel CONWIP- (Constant Works in Progress) und DBR-Systeme (Drum-Buffer-Rope), die hauptsächlich für die Fertigungsindustrie bestimmt sind.

Kanban ist jedoch das System, das am besten an die Softwareindustrie angepasst wurde.

Wie unterscheidet sich Kanban von agilen Methoden?

Kanban ist eine Methode, die einige Elemente des agilen Projektmanagements verwendet. Viele Projekte im Agile Framework haben Wurzeln in Lean-Ansätzen. Der Unterschied zwischen Kanban-Methodik und agilem Projektmanagement ist nicht so schwarz-weiß, wie die Befürworter der beiden Methoden glauben machen würden. Sie haben mehr gemeinsam als Unterschiede.

Das Agile Framework ist kein absolutes. Die Frage ist nicht, ob Teams agil sind oder nicht. Teams haben oft Beweglichkeit in unterschiedlichem Maße. Eine der Methoden für mehr Flexibilität in Ihrem Softwareentwicklungsprozess ist die Verwendung von Kanban.

Es gibt einige Unterschiede zwischen Kanban und Agile-Methoden. Einige der Merkmale der Kanban-Entwicklung, die sich ein wenig von Agile unterscheiden, sind:

  • Zeitleisten sind kein wesentlicher Faktor . Dies ist ein schwieriges Konzept, um unsere Köpfe herum zu wickeln, da es sehr nicht intuitiv zu sein scheint. "Wie arbeiten Sie ohne Fristen?", Fragen die Leute oft. Wenn jedoch jedes Mitglied des Teams mit maximaler Effizienz beschäftigt ist, spielt die Zeit keine Rolle mehr.
  • Geschichten (Aufgaben) sind größer als in typischen agilen Systemen. In der Regel sind Länge und Komplexität von Storys länger als bei einem typischen Scrum-Projekt. Da der Schwerpunkt nicht auf der Schätzung der Zeit liegt, sondern lediglich darauf, den Prozess voranzutreiben, kann es sich Kanban leisten, an größeren Geschichten zu arbeiten.
  • Es gibt keine wesentlichen Änderungen in bestehenden Prozessen. Die Prinzipien von Kanban für die Softwareentwicklung, wie sie von seinem Gründer David Anderson in seinem Blog formuliert wurden, beinhalten die folgenden Grundprinzipien:
    • Beginnen Sie mit dem, was Sie jetzt tun
    • Stimmen Sie zu, inkrementelle, evolutionäre Veränderungen zu verfolgen
    • Respektieren Sie den aktuellen Prozess, die Rollen, Verantwortlichkeiten und Titel
  • Jede Geschichte wird in Zykluszeit gemessen . Das Projekt wird nicht durch die traditionelle Agile-Berechnung der Geschwindigkeit (die Anzahl der in einer bestimmten Zeit abgeschlossenen Storys) bewertet, sondern durch die Zykluszeit. Dies bedeutet, dass Kanban den Schwerpunkt darauf legt, wie lange es gedauert hat, eine Aufgabe zu erledigen. Auf vielen Kanban-Tafeln ist häufig ein Ticker zu sehen, in dem angegeben ist, wie viele Tage das Team benötigt, um eine Geschichte fertigzustellen. Diese Schätzung fließt in den nächsten Zyklus ein.

Kanban: Eine Tafel, aber was noch?

Kanban ist also eine Tafel, die uns zeigt, wie die Geschichten angeordnet sind - ist das auch so eine große Sache, fragen viele. Tatsächlich wird viel darüber diskutiert, was Kanban ist und kann.

Ist Kanban nur eine Methode zur Verwaltung des Workflows? Oder ist es etwas, das man zusammen mit agilen Methoden für maximale Effizienz verwenden kann? Oder kann es eine völlig neue Art des Workflow-Managements sein?

Jedes Team verwendet Kanban nach eigenem Ermessen für die jeweilige Situation. Unabhängig davon hat Kanban das Potenzial, als Lebensstil für die Softwareentwicklung zu fungieren, wenn es optimal genutzt wird.

Unabhängig davon, ob es zur Verwaltung von Workflows oder als neues Paradigma in der Softwareentwicklung verwendet wird, ist es unbestritten, dass es bei der Verwaltung von WIPs hilfreich ist.

Damit Kanban optimal funktioniert, ist es wichtig, es nicht nur als WIP-Verwaltung, sondern auch als Projektmanagement-Framework zu betrachten. Bestimmte grundlegende Richtlinien unterstützen den Prozess.

  1. Optimieren Sie Teams so, dass kein Team etwas beginnt, das es nicht beenden kann. Dies erleichtert den Prozess.
  2. Widersetzen Sie sich nicht den Änderungen des ursprünglichen Kanban-Systems. Wenn Ihr Projekt mit Fristen und Zeitplänen gut zurechtkommt, berücksichtigen Sie die gleichen Kriterien wie Sie. Dies sorgt für eine gesündere und robustere Entwicklungsumgebung.
  3. Meiden Sie keine Teamarbeit. Kanban mag wie ein Modell erscheinen, basiert aber nicht auf Einzelpersonen, die isoliert arbeiten. Teamarbeit muss ein wesentlicher Bestandteil der Kanban-Softwareentwicklung sein.
  4. Querdenken. Denken Sie über Änderungen im Workflow nach. Viele Teams entscheiden sich jetzt für die testgesteuerte Entwicklung mit der akzeptanztestgesteuerten Entwicklung, bei der die Akzeptanztests zunächst mit Anwendungsfällen durchgeführt werden, die dann die erforderlichen Funktionen und die Art der Entwicklung bestimmen.

Hybriden

Da immer mehr Unternehmen die für ihre jeweilige Situation am besten geeigneten Projektmanagement-Tools verwenden, ist es nicht verwunderlich, dass zwei der besten Projektmanagement-Methoden - Scrum und Kanban - mit großem Erfolg integriert wurden.

Der Hybrid namens Scrumban steckt in vielen Projekten.

Wenn eine Organisation Scrum bereits einsetzt, es jedoch schwierig ist, das Projekt zusammenzuhalten, da die Sprints nicht gut funktionieren oder die Tests nicht luftdicht sind, ist es möglicherweise an der Zeit, über Scrumban nachzudenken.

Um es einfach zu erklären, musste Scrumban ein Vergrößerungsglas zu den Sprints mitnehmen. Es geht nicht nur um die Sprints als Teil des Projekts, es geht darum, was innerhalb der Sprints passiert. Scrumban hilft dabei zu untersuchen, wie eine Story in einem Sprint verarbeitet wird, und das könnte den Unterschied ausmachen.

Scrumban oder eine seiner Varianten ist eine minimale Änderung gegenüber bestehenden Praktiken. Das Schöne an der Verwendung von Kanban ist, dass es mit praktisch jedem Projektmanagementmodell verwendet werden kann: Wasserfall, Agile oder alles dazwischen.

Erste Schritte mit Kanban

Es ist einfach, mit dem Kanban-System zu beginnen. Es ist auch möglich, Kanban auf minimale Weise als Testversion für einen bestimmten Teil eines Projekts zu implementieren.

  1. Planen Sie den Softwareentwicklungsprozess. Machen Sie eine übersichtliche Darstellung des gesamten Prozesses. Wie funktioniert das Projekt - vom ersten Entwurf über die Entwicklung bis hin zum Testen und Ändern von Funktionen - in der Realität?
  2. Führen Sie die Schritte auf, in denen Kanban verwendet wird. Verwenden Sie die Schritte, die vollständig unter Ihrer Kontrolle stehen. Dies umfasst normalerweise die Analyse-, Entwicklungs-, Überprüfungs- und Testphase.
  3. Arbeiten Sie an wichtigen Punkten wie:
    1. Begrenzung der in Bearbeitung befindlichen Arbeiten für jeden Schritt.
    2. Prozesse für beschleunigte / blockierte Arbeit
    3. Back-of-the-Envelope-Schätzungen in Bezug auf die Zykluszeit
    4. Häufigkeit der Überprüfung des Kanban-Boards / -Prozesses / der Schätzung
  4. Kaufen Sie ein Whiteboard und einen Stapel Post-It-Zettel.
  5. Loslegen
  6. Nach Bedarf überprüfen.
  7. Wiederholen

Also, mach weiter und leg los mit Kanban!

Haben Sie keine Angst, wenn es nicht so wird, wie Sie es ursprünglich beabsichtigt hatten. Die ganze Idee hinter agilen Methoden ist es, Veränderungen in Menschen und Prozessen Rechnung zu tragen! Teilen Sie uns Ihre Erfahrungen mit der Kanban-Methode mit.

Empfohlene Artikel

  1. 6 Hilfreichste A Project Management Office (PMO)
  2. 8 nützliche Schritte zum Erstellen anspruchsvoller Story Maps für Ihr Projekt
  3. Die 5 wichtigsten Werte extremer Programmierung (leistungsstark)