In der Software-Entwicklung sind agile Methoden schon viele Jahre bekannt und werden gelebt. Die Produktivität und die Arbeitszufriedenheit erhöhen sich. Die Qualität leidet dabei nicht und konnte sogar verbessert werden. Doch wie sieht das in der Informationssicherheit aus? Können auch hier agile Werkzeuge helfen, diese zu erhöhen? 

 © Storyblocks, Registriert auf Andreas Wisler

Was ist Kanban?

Vielen ist Kanban nur als «viele Post-Its an der Wand» bekannt. Doch Kanban ist viel mehr. Gemäss Definition ist es ein Werkzeug, um den optimalen Arbeitsfluss in einem Prozess zu managen. Dies völlig unabhängig, um was für einen Prozess es sich handelt. Ein grosser Unterschied ist dabei, dass es ein limitiertes Pull-System darstellt und nicht Push. Aufgaben werden nicht einfach weitergeschoben, sobald ich fertig bin, sondern die Übergabe findet koordiniert statt. Die Kommunikation innerhalb der Prozess-Schritte ist daher ein wichtiges Thema. Weiter ist es das Ziel Engpässe aufzuzeigen und diese durch kontinuierliche Verbesserung zu beheben. Wir können uns dies wie mit Wassertrichtern vorstellen, die hintereinander sind. Hat der erste ein grosses Loch, kann viel Wasser durchfliessen. Wenn nun der zweite ein kleineres Loch hat, geht weniger Wasser durch. Damit dieser nicht überläuft, darf in den ersten entsprechend auch weniger Wasser rein gelassen werden. Ist nach den zweiten noch ein dritter (und weitere) Trichter, wieder mit einem grösseren Loch, kann dieser ebenfalls nicht mehr voll ausgelastet werden, da weniger Wasser bis zu ihm kommt. Gemäss Definition gilt es, in einem ersten Schritt, diesen Engpass voll auszulasten. Dieser gibt die Geschwindigkeit für alle anderen vor. In einem zweiten Schritt wird dann untersucht, wie dieser Engpass verbessert und erweitert werden kann und damit die Gesamtkapazität erhöht.

Prinzipien und Kernpraktiken

Kanban kennt vier Prinzipien:

  • Beginnen Sie mit dem, was Sie jetzt tun
    Eine Arbeit wird abgeschlossen, bevor die nächste angefangen wird. Eigentlich trivial. Jede Störung führt dazu, dass wir uns immer wieder neu mit diesem Thema beschäftigen müssen. Auch wenn es nur wenige Minuten sind, die läppern sich zusammen.
  • Inkrementelle, evolutionäre Änderungen verfolgen
    Dieses Vorgehensmodell beschreit das Vorgehen in kleinen oder sogar kleinsten Schritten. Verschiedene Teile des Systems werden zu unterschiedlichen Zeiten und mit verschiedenen Geschwindigkeiten entwickelt und umgehend im Gesamtsystem integriert.
  • Aktuelle Prozesse, Rollen und Verantwortlichkeiten berücksichtigen
    Kenne deine Prozesse und die involvierten Personen. Alle müssen ihren Beitrag inkl. die damit verbundene Verantwortlichkeit kennen und sich entsprechend einbringen können.
  • Zu Führungsverantwortung auf allen Ebenen ermutigen
    Niemand ist unwichtig. Alle leisten ihren Teil zum Gesamten bei. Dazu gehört auch die Verantwortung zu übernehmen. Wenn ich weiss, wie wichtig mein Beitrag ist, kann ich auch entsprechend agieren.

Neben den Prinzipien gibt es Kernpraktiken, die wir ebenfalls kurz beleuchten.

  • Visualisiere
    Auch einfache Prozesse sollten grafisch dargestellt werden. Bekannt bei Kanban sind die waagrechten und horizontalen Striche. In den Quadraten ist eines oder mehrere Post-its angebracht. Die Quadrate stehen dabei für einen Prozess-Schritt, die Kleber für die Tätigkeit. Vermutlich kennen alle Trello. Genau das ist damit gemeint.
  • Limitiere die parallele Arbeit (WIP)
    Ein wichtiger Ansatz ist, keine neuen Einheiten zu beginnen, bevor die vorherige Arbeit nicht fertiggestellt ist. Das Motto heisst also «Fertig stellen, statt anfangen». Die Folge der Nichteinhaltung sind viele angefangenen Tätigkeiten, aber nichts wird je fertig. Dies ist auch sehr frustrierend, wenn ich am Morgen ins Büro komme, meine Aufgaben anschaue und nicht weiss, wo ich nun starten soll.
  • Manage den Arbeitsfluss
    Wie einleitend erwähnt, gibt der Engpass die Geschwindigkeit vor. Eine wichtige Aufgabe ist die Maximierung des Durchflusses und damit der Minimierung der Durchlaufzeiten. Dies ermöglicht mir eine Vorhersagbarkeit zu treffen. Damit verbunden können Service-Levels definiert und garantiert werden können. Es gilt dabei die Kosten von Verzögerungen zu minimieren (Cost of Delay, «CoD», beispielsweise bei Konventionalstrafen bei Terminüberschreitungen).
  • Mache Prozessregeln explizit
    Die Regeln sind einzuhalten. Diese müssen daher knapp, einfach, klar definiert, transparent und verbindlich sein. Die Regeln werden gemeinsam verbessert und experimentell weiterentwickelt.

Umsetzung in der Informationssicherheit

Was haben diese Prinzipien und Kernpraktiken nun mit der Informationssicherheit zu tun? Sehr viel. Es ist ein ideales Arbeitswerkzeug, um die vielen parallel laufenden Tätigkeiten zu managen.

Oft werden neue Projekte begonnen, bevor die aktuell anstehenden Aufgaben erledigt sind. Diese Unterbrüche führen dabei zu Verzögerungen, Fehlern und unvollständigen Ergebnissen. Gerade bei weniger beliebten Tätigkeiten wie das Schreiben von Konzepten oder Dokumentationen lassen wir uns gerne unterbrechen. Beginne ich dann wieder mit der Weiterführung benötige ich viel Zeit den aktuellen Stand zu finden und meine Gedanken zu ordnen, wie es weitergehen soll. Vielleicht kommt es auch Widersprüchen im Dokument, da mir nicht mehr 100% in Erinnerung ist, was im vorherigen Kapitel definiert wurde.

Klare Abläufe geben Sicherheit. Nehmen wir das Beispiel Patchen von Systemen. Oft eine einfache Tätigkeit, doch es kann auch zu Problemen kommen. Ein klassisches Vorgehen bei virtualisierten Servern ist dabei: Snapshot erstellen, Patch herunterladen und ausrollen, alle Funktionen testen, nach einer definierten Zeit den Snapshot wieder entfernen (falls gewünscht). Auch wenn dieses Beispiel trivial ist, sollte ich den Patch nicht vor der Erstellung des Snapshots installieren. Kommt es zu einem Fehler kann ich nicht mehr zurück gehen und habe im schlimmsten Fall einen grossen Aufwand das System in den vorherigen Zustand zurückzubringen.

Oft ist auch die Frage nach dem Nadelöhr. Hat der CISO zu wenig Ressourcen, die Projekte zu prüfen? Oder hängt es beim Chef fest? Gemäss obenstehender Theorie des Engpasses muss dieser voll ausgelastet werden 😉, doch dies kann zu einem Burnout führen. Daher gilt es, die Ressourcen entsprechend zu planen und darauf zu achten, dass diese nacheinander kommen und nicht alle miteinander.

Was in der Software-Entwicklung schon lange ein Thema ist, sollte auch in anderen Projekten ein Thema sein. In regelmässigen Abständen, beispielsweise alle zwei oder vier Wochen, wird miteinander besprechen, was in den nächsten 2-4 Wochen umgesetzt wird. Die notwendigen Ressourcen werden geplant und mit Reserve für Unvorhergesehenes versehen. Tägliche Kurz-Meetings zeigen, wie der aktuelle Stand ist, wo Probleme auftreten und ob der Zeitplan noch eingehalten werden kann. Das Team kann sich so tatkräftig unterstützen und gemeinsam wird das Etappenziel erreicht. Kurzer Hinweis am Rande: in Scrum sind die Meetings Pflicht. In Kanban definiert dies das Team. Wenn aber ein Commitment dafür gemacht wird, sind sie für die involvierten Personen Pflicht. Aus eigener Projekt-Erfahrung sollten diese Daily-Meetings dazu gehören.

Weiter ermöglicht dieses Vorgehen, KPIs zu definieren. Gerade in komplexen IT-Projekten und damit verbunden der Informationssicherheit gar nicht so einfach. Daher ist es umso wichtiger, die Zeit zwischen dem Beginn und Ende der Arbeit festzuhalten. Dazu gehört auch die Anzahl der Arbeitspakete, die pro definierte Zeiteinheit umgesetzt wurden. Damit wird gleichzeitig eine Übersicht über die aktuellen IT-Projekte ermöglicht.

Beispiel Kanban-Board

Unterstützende Werkzeuge

An dieser Stelle ist es nicht möglich, alle Tools, die es auf dem Markt gibt, aufzulisten. Im einfachsten Fall genügt eine Wand, einige waagrechte und senkrechte Striche, ein paar Post-its und das Kanban-Board ist fertig. Mit der mobilen Arbeit ist dies aber keine akzeptierte Möglichkeit mehr. Wie erwähnt bietet Trello einen guten Einstieg in dieses Thema. Auch Jira ist weit verbreitet und bietet mit dem Software-Modul Kanban, wie auch Scrum. Ein Favorit von mir ist Leantime, welches als OpenSource Lösung auch auf dem eigenen Server läuft. Herunterzuladen ist es unter https://leantime.io/.

Vergleich mit Scrum

Scrum Kanban
Anwendungsgebiete Unklare Lösungskonzepte und Innovationen, komplexe Produktentwicklung Komplizierte Produktentwicklung, Dienstleistungen, Wartung, Routineaufgaben, sonstige Services, Prozessverbesserungen
FormArbeit in einem festen, funktionsübergreifenden Team mit drei bis neun Personen (Scrum-Team)keine spezielle Form
RollenDrei feste Rollen: Scrum Master, Product Owner, Entwicklungsteamkeine festen Rollen erforderlich
EreignisseFünf obligatorische Ereignisse: Sprint, Sprint Planning, Daily Scrum, Sprint Review und RestrosprektiveKeine obligatorischen Ereignisse. Möglich: Strategie-Review, Operations Review, Risiko-Review, Service Delivery Review, Replenishment-Meeting, Kanban-Meeting, Delivery Planning
ErgebnisseRegelmässig nach jedem Sprint in Form eines funktionsfähigen TeilstücksJe nach Kontext und Bedarf, von einzelnen Aufgaben bis hin zum vollständigen Release
FokusProdukte mit höchstmöglichen Wert ausliefern, zusätzlich laufende Verbesserung von Produkt, Team und Arbeitsumgebungein möglichst konstanter Arbeitsfluss, erkennen und verbessern des Engpasses, schneller Auslieferung, fortlaufende Verbesserung

Fazit

  • Kanban ist keine Technik, sondern eine Arbeitsmethode.
  • Eine Herausforderung ist es, den Engpass zu erkennen und diesen gemeinsam zu beheben.
  • Nicht der Chef bestimmt allein, sondern das Team definiert gemeinsam die umzusetzenden Arbeiten.
  • Dank klarer Abläufe können sich alle beteiligten Personen am aktuellen Stand orientieren.
  • Ein geeignetes Werkzeug hilft, die Übersicht und den Fortschritt visuell darzustellen

Kanban ist eine gute Methode, auch die IT-Sicherheitsprojekte in einen geordneten Ablauf und damit zu einem erfolgreichen Abschluss zu bringen.