Agile Methoden Scrum und Kanban im Projektmanagement

Autor / Redakteur: Thomas Joos / Stephan Augsten

In der agilen Softwareentwicklung haben sich Scrum und Kanban bewährt. Die Vorgehensmodelle helfen Anwendungsentwicklern dabei, immer komplexere Software oder Folgeversionen in kürzeren Produktzyklen fertigzustellen.

Anbieter zum Thema

Agile Vorgehensmodelle im Projektmanagement erfordern gute Teamarbeit und Aufgabenteilung.
Agile Vorgehensmodelle im Projektmanagement erfordern gute Teamarbeit und Aufgabenteilung.
(Bild: Sculpt, LCC - startupstockphotos.com / CC0 )

Agile Softwareentwicklung wird häufig mit Scrum und Kanban in Zusammenhang gebracht. Die neuen Vorgehensweisen sollten die klassischen Entwicklungsmethoden ablösen und bessere, schnellere und effektivere Programmentwicklung erlauben. Dies ist eine Reaktion darauf, dass die Ansprüche an neue Programme stetig steigen, vor allem im Bereich des Datenschutzes und der Datensicherheit.

Entwickler müssen aber nicht nur bessere und sicherere Programme in kürzerer Zeit entwickeln. Erschwerend kommt hinzu, dass es nahezu unmöglich ist, alle Anforderungen an ein neues Programm bereits frühzeitig festzulegen. In vielen Fällen dienen Programme heute nicht nur einem einzelnen Zweck, zum Beispiel für die Rechnungsstellung oder Buchhaltung.

Häufig müssen Programme flexibel erweiterbar sein, mit anderen Programmen zusammenarbeiten und Lösungen für Probleme anbieten, die nicht zur Kernaufgabe des Programmes gehören. Diese Anforderungen müssen in die Software mit einfließen und effizient eingebunden werden. Viele neue Anforderungen fließen bereits im Laufe der Entwicklung mit ein.

Scrum und Kanban werden nicht nur bei der Software-Entwicklung eingebunden, sondern auch bei der Entwicklung von Hardware. Dabei spielt nicht nur der IT-Bereich eine Rolle, sondern generell alle Produkte, die einen Produktentwicklungszyklus erfordern. Natürlich nutzen auch große Softwareentwicklungsfirmen wie zum Beispiel SAP Scrum-und Kanban-Methoden für die Entwicklung.

Klassische Methoden stoßen bei Big Data und Co an ihre Grenzen

Klassische Methoden zur Softwareentwicklung gehen von folgenden Annahmen aus:

  • Der Auftraggeber weiß genau, was die zu entwickelnde Anwendung können muss.
  • Der Entwickler hat die Anforderungen entsprechend verstanden und kann diese umsetzen.
  • Die Anwender sind mit der Lösung und ihrer Umsetzung ebenfalls einverstanden.

In der Regel wird außerdem davon ausgegangen, dass im Zeitraum der Entwicklung keinerlei Änderungen an den Anforderungen stattfinden. Geplant wird in diesem Fall oft mit Gantt-Diagrammen oder ähnlichen Werkzeugen, da keine größere Flexibilität notwendig ist. Für viele aktuelle Anforderungen reicht diese Vorgehensweise aber nicht aus, zum Beispiel bei der Entwicklung von Cloud-Lösungen oder im Bereich Big Data und Internet of Things.

Agile Methoden bieten mehr Flexibilität

Da Anwendungen komplexer werden und eine Anbindung zunehmend an die Cloud und andere Systeme erfolgt, finden agile Methoden immer größere Verbreitung. Dazu werden die Ansätze von Autobauern oder Herstellern elektronischer Geräte auf die Softwareentwicklung übertragen.

Scrum geht von einem chaotischen Ansatz aus, bei dem sich ständig Faktoren in der Entwicklung ändern. Anstatt diese Änderungen als Störfaktoren auszublenden, werden sie in die Entwicklung mit eingebunden. Ähnliche Wege bietet auch Kanban. Denn Programme werden auch im Rahmen der Entwicklung ständig erweitert, neue Anforderungen fließen ein, mehr Datenquellen müssen angebunden werden und vieles mehr.

Die neuen Anforderungen müssen in den bereits vorhandenen Code mit einfließen und bereits frühzeitig nutzbar sein. Dazu kommt das Problem, dass bei der Produktentwicklung immer größere Teams beteiligt sind. Entwickler müssen also mit anderen Entwicklern zusammenarbeiten, und auch deren Code in die eigene Planung mit einbeziehen können.

Teamarbeit wird großgeschrieben

Lösungen wie Scrum und Kanban verbinden die verschiedenen Projektgruppen miteinander und erlauben effizientere Prozesse innerhalb der Entwicklung. Das liegt vor allem auch daran, dass die Teammitglieder bei der Entwicklung mit Scrum, aber auch mit Kanban, nicht nebeneinander sondern miteinander arbeiten.

Informationen und Anforderungen werden ausgetauscht und die Teammitglieder kennen den Code der anderen Mitglieder, und können dessen Anforderungen in den eigenen Code mit einfließen lassen. Hinzu kommen die Rückmeldungen der Anwender oder Kunden, welche ebenfalls berücksichtigt werden, und zwar bereits während der Entwicklung. Hier ist es hilfreich, dass die Tests einzelner Softwarebestandteile bereits vor der Fertigstellung getestet werden können.

Da die Entwicklung über Scrum mehr Flexibilität erlaubt, ist die Softwareentwicklung weniger straff, aber dennoch Regeln unterworfen. Im Zentrum dieser Regeln steht aber die Flexibilität der Entwickler. Durch die Integration automatisierter Tools für die Entwicklung und Tests werden die einzelnen Schritte der Entwicklung besser erfasst und beschleunigen dadurch die Entwicklung, da alle Teammitglieder und Abteilungen mit einem gemeinsamen Tool arbeiten.

Kanban – Von japanischen Automobilherstellern lernen

Kanban ist ebenso wie Scrum dazu in der Lage, Ordnung im Chaos der IT zu schaffen. Das Prinzip wird seit Jahrzehnten von Autobauern aus Japan (vor allem Toyota) angewendet. Vor allem im Change-Management brechen auf viele IT-Abteilungen häufig zu viele Anforderungen herein, die kaum gemeistert werden können.

Auch hier helfen agile Vorgehensweisen, um Aufgaben zu priorisieren und effizient abzuarbeiten, ohne andere Aufgaben zu vernachlässigen. Die Priorisierung der Aufgaben ist also besonders wichtig. Auch die Selektion und Zuweisung von Aufgaben an die entsprechenden Abteilungen, Teams oder Teammitglieder.

Kanban geht davon aus, dass sich Mitarbeiter eigenständig Aufgaben zuordnen und diese nach und nach abarbeiten. Das vermeidet eine Überlastung von Mitarbeitern durch zu viele Aufgaben, die ohnehin nicht abgearbeitet werden können. Die verschiedenen Aufgaben werden mit Kanban in kleinere Häppchen unterteilt, die einzeln abgearbeitet und erledigt werden. Einzelne Aufgaben sollten keine lange Zeitdauer benötigen, sondern möglichst kurz dimensioniert sein.

Die Aufgaben werden durch Karteikarten (Kanbans) dargestellt, die an einem Whiteboard befestigt sind. Die Arbeitsfortschritte werden über Tafeln und dem Weiterreichen der Karten von links nach rechts visualisiert. Das Prinzip lässt sich mit verschiedenen Warteschlangen, Farben und anderen Erweiterungen auch für komplexe Projekte nutzen.

Auf der Tafel lassen sich verschiedene Schritte des Workflows definieren, zwischen denen die Aufgaben wandern. Ganz links werden die verschiedenen Aufgaben der entsprechenden Abteilung übergeben. Wie die Schritte eines Projektes aussehen, muss zuvor festgelegt werden. Der Projektleiter legt danach fest, welche Aufgaben abgearbeitet werden sollen, und verschiebt diese in die To-Do-Leiste.

Eigenverantwortliche Aufgabenverteilung

Entwickler können die Kärtchen mit den Aufgaben selbst übernehmen, und die die Spalte für die Entwicklung verschieben. Alleine durch diese Vorgänge wird schnell klar, wo sich die einzelnen Projektschritte befinden. Es ist klar, welche Aufgaben durchgeführt werden sollen, welche Aufgaben der Projektleiter für das Team übernommen hat und priorisiert, und welcher Entwickler die Aufgaben jetzt bearbeitet. Diese Schritte werden fortlaufend fortgeführt.

Natürlich lassen sich weitere Schritte aufnehmen und es wird schnell klar, wo Aufgaben festhängen und der Prozess optimiert werden muss. Hier kommt das zweite Kanban-Prinzip zum Tragen, das Pull-Prinzip. In diesem System legen Entwickler selbst fest, wann sie eine Aufgabe übernehmen wollen. Das kann durch eine weitere Spalte unterhalb der Entwicklerspalte erfolgen.

Diese kann aus „Todo“ und „Done“ bestehen, also aus einer Spalte der Aufgabe, die in der Entwicklung durchgeführt werden müssen, und eine Spalte, welche Aufgaben erledigt sind. Das schafft noch mehr Ordnung. Natürlich lassen sich in allen Spalten weitere Unterspalten erstellen, um mehr Ordnung zu schaffen.

Noch mehr Ordnung wird erreicht, indem festgelegt wird, wie viele Karten pro Spalte angepinnt werden müssen. Das löst Engpässe auf, und vermeidet Überlastung. Flaschenhälse sind schnell zu erkennen. Natürlich besteht Kanban aus zahlreichen weiteren Schritte. Diese werden recht gut in einigen kostenlosen Videos auf den einschlägig bekannten Plattformen erläutert.

(ID:44477325)