Interview mit Gordon Oheim

Agile und die Parallelen zum US Marine Corps
Kommentare

Der Krieg ist der Vater aller Dinge, sagte einst Heraklit. Das ist beileibe nicht schön, sorgt aber dafür, dass Armeen zu den am besten strukturierten Organisationsformen der Welt gehören. Entwickler auf der anderen Seite sollten das auch sein, gerade in einem agilen Arbeitsumfeld. So stellt sich natürlich Frage, was man als Softwareentwickler vom US Marine Corps lernen kann.

Was auf den ersten Blick absurd klingen mag, entpuppt sich bei genauerem Hinsehen als gar nicht mal so abwegig. Wir haben uns mit Gordon Oheim unterhalten, der auf der International PHP Conference 2014 in München zu eben diesem Thema einen Vortrag halten wird – und dabei erstaunliche Einblicke gewonnen, die wir euch nicht vorenthalten möchten.

„Einige der Prinzipien aus dem Agilen Manifest finden sich auch beim Militär“

Gordon, auf der International PHP Conference hältst du einen Vortrag mit dem Thema, was Software-Entwickler vom US Marine Corps lernen können. Wie kommt man auf so ein Thema?

Gordon Oheim: Ich habe vor einigen Jahren einen Artikel von Steve Adolph mit dem Titel „What lessons can the agile community learn from a maverick fighter pilot“ gelesen. Darin stellt Adolph den Observe-Orient-Decide-Act Loop (OODA) von John Boyd vor.

Beim OODA Loop handelt es sich um einen Kreisprozess, der – wenn man ihn schneller durchläuft als sein Gegner – dazu führt, dass man im Kampf immer die Oberhand behalten wird. Auf diesem Grundgedanken hat das US Marine Corps seine Doktrinen zur „Maneuver Warfare“ entwickelt.

Adolph kommt in seinem Artikel zu dem Schluss, dass man Aspekte davon wohl auch auf die Softwareentwicklung übertragen könnte – das fand ich interessant. Der Artikel geht allerdings nicht wirklich in die Tiefe. Als ich dann ein Thema für meine Abschlussarbeit brauchte, fiel mir der Artikel wieder ein; und so habe ich mich dann eingehender damit befasst.

Ist Softwareentwicklung also ein ewiger Kampf?

Gordon: Ja und Nein.

Grundsätzlich muss man natürlich festhalten, dass das, was Soldaten ganz konkret leisten müssen, rein gar nichts mit Softwareentwicklung zu tun hat. Softwareentwickler kriechen nicht in Schützengräben herum, sie müssen nicht auf Menschen schießen und die Gefahr für Leib und Leben ist im Büro auch eher gering. Deshalb mag das Thema auch im ersten Moment absurd klingen. Ist es aber nicht.

Heraklit hat gesagt: „Der Krieg ist der Vater aller Dinge“. Damit meinte er, dass alles in und jeder mit der Welt ständig im Widerstreit steht. Daraus ergibt sich eine Dynamik des Werdens und des Wandels. Und auch eine gewisse Unberechenbarkeit. Alles fließt. Das ist im Krieg so und auch in der Softwareentwicklung. Wandel kann man nur begegnen, wenn man selber wandelbar ist und bleibt. Die Frage ist, wie schafft man das? Und das US Marine Corps hat da für sich einige ganz interessante Ansätze gefunden.

Mission Command and Control

Okay – und was können Softwareentwickler nun vom US Marine Corps lernen?

Gordon: Zunächst einmal hilft es zu verstehen, wie das Marine Corps über den Krieg denkt. Damit ist gemeint, welche Kategorien den Krieg ausmachen: Friktion und die daraus entstehende Unwägbarkeit mit ihren Chancen und Risiken, aber auch Fluss, Tempo und Unordnung. Diese Kategorien gelten auch für uns. Daher macht es Sinn sie zu benennen, um darüber sprechen zu können.

Zum Anderen ist es sehr spannend, wie das Marine Corps Stragien wie „Speed over Distance“, „Centres of Gravity“, „Boldness“, „Initiative“ und „Surprise“ einsetzt, um Missionen erfolgreich durchzuführen. Als Entwickler können wie diese Denkkategorien nutzen, um bessere Entscheidungen zu treffen.

Auch das Konzept „Mission Command and Control“ ist interessant, weil es einen dezentralen Ansatz zur Führung verwendet, bei dem die Marines sich selbst organisieren und den „Commander’s Intent“ umsetzen. Das ist ziemlich agil und skaliert sogar für 190.000 Soldaten.

Dann ist da auch noch die menschliche Komponente. Marines lernen vom ersten Tag an, sich selbst zu führen. Und sie lernen sich selber als Teil des Corps zu verstehen. Dieses Herausbilden einer professionellen Identität und eines „esprit des corps“ – also wer und was man sein will, und wie (mit welchen Werten und Überzeugungen) und mit wem – empfinde ich persönlich als eine der nützlichsten Dinge, die man vom US Marine Corps lernen kann. Dieses Selbstverständnis fehlt vielen Entwicklern und entsprechend dann den Teams, in denen sie arbeiten. Ich behaupte, sie würden besser performen, wenn sie es hätten.

Lassen sich die Positionen vergleichen? Ist der Scrum Master der General?

Gordon: Beim Marine Corps bedeutet der Rang auch gleichzeitig, wie viele Einheiten man befehligt. Die Dienstgrade identifizieren so die Befehlskette. Ein Scrum Master hat im Schnitt fünf plus/minus zwei Leute in seinem Team. Das entspricht einem Corporal oder einem Sergeant. Ein General befehligt ca. 80000 Soldaten. Deshalb ist eine direkte Übersetzung schwierig. Die meisten Unternehmen haben ja gar nicht so viele Mitarbeiter. Und gerade in kleineren Unternehmen, stellt sich die Frage, ob man wirklich zwanzig und mehr verschiedene Dienstgrade benötigt, um die Hierarchie im Unternehmen abzubilden.

Grundsätzlich kann man aber sagen, dass der „Dienstgrad“ in Unternehmen mit der Weisungsbefugnis wächst und sich die Aufgaben von der taktischen Ebene über die operative Ebene auf die strategische Ebene verschieben. Der CEO ist dann der Feldmarschall. Die anderen Chief Officers sind die Generäle. Auf deren Ebene werden die langfristigen strategischen Ziele gesetzt. Die Entwickler setzen diese Ziele, unterstützt von der operativen Ebene, auf der taktischen Ebene um.

Gordon OheimGordon Oheim is a Software Developer from Essen, Germany with a strong focus on object-oriented design and programming. Gordon is currently a Senior Developer for Minerals Value Service GmbH in Munich where he helps reshape the iron ore commodity market. Gordon is a Zend Certified Engineer and has more than ten years of experience with web-related technologies. He is also a member of the PHP documentation team. Gordon is keenly interested in Agile and Lean topics and likes to share his knowledge on Stack Overflow, where he is a moderator and the top 1 contributor to the PHP tag.

Gordon Oheim auf der International PHP Conference

Trunk-Based Development Commando Code – what software developers can learn from the US Marine Corps

Welche Konzepte nutzen Softwareentwickler konkret, die auch bei der Army genutzt werden?

Gordon: Einige der Prinzipien aus dem Agilen Manifest finden sich auch beim Militär. Ganz oben steht da natürlich das Reagieren auf Veränderung vor dem Befolgen des Plans sowie der Fokus auf das Individuum und die Mission. Aber auch das Aufrechterhalten eines unbegrenzt durchhaltbaren Tempos („sustainable pace“) oder der Fokus auf technische Exzellenz gehören dazu. Oder die Annahme, dass die besten Lösungen von sich selbst organisierenden Teams von motivierten und fähigen Mitarbeitern hervorgebracht werden. Das sind alles Konzepte, die wir mit dem Militär teilen.

Das Konzept der Mission Verbs

Im Krieg und in der Liebe ist alles erlaubt – nutzen wir schon das volle Potential aus? Oder können wir noch mehr von der Armee lernen?

Gordon: Ich glaube schon, dass wir noch mehr vom Militär lernen können.

Aktuell fasziniert mich z.B. das Konzept der „Mission Verbs“. Wenn eine Mission lautet „seize the bridge“, dann ist jedem Soldaten klar, was „seize“ bedeutet, weil das zu einem eindeutig definiertem Vokabular gehört: in diesem Fall, die Brücke mit Waffengewalt einzunehmen. Das ist eine andere Mission, als „occupy the bridge“, weil „occupy“ davon ausgeht, dass es keine Gegner geben wird. Solche trennscharfen Begriffe erleichtern natürlich die Kommunikation im Team und erlauben es, schneller zu handeln (wir erinnern uns an den Eingangs erwähnten OODA Loop).

Solche einheitlichen „Mission Verbs“ hätte ich gerne für die Softwareentwicklung. Wer sich die Commit Messages oder Tasks in seinem Projekt anschaut, wird oft feststellen, dass die Bedeutungen von Begriffen wie „add“, „implement“ und „integrate“ bei uns eher fließend sind. Ich muss also erst fragen „Wie meinst du das? Soll ich die Caching Komponente nur zum Package Manager hinzufügen oder auch gleich einen Adapter dafür implementieren? Und soll ich den dann auch gleich in die Anwendung integrieren?“. Obwohl dies Begriffe sind, die wir täglich verwenden, müssen wir ihre Bedeutung erst aushandeln, statt über die wesentlichen Aspekte der Software zu reden. Hier ist uns das Militär auf jeden Fall einen Schritt voraus.

International PHP Conference 2014

International PHP Conference 2014

PHP- und Web-Interessierte aufgepasst: Vom 26. bis 29. Oktober findet die International PHP Conference 2014 in München statt. Über 90 Sessions, Workshops und Keynotes beschäftigen sich mit den Themen Development, QA, DevOps … und natürlich Agile. Wer sich bis zum 25. September anmeldet kann sich attraktive Frühbucherpreise sichern!

Bei Anmeldung für 3 Konferenztage bekommt man zusätzlich das Intellibook-Tablet mit Android-OS, 7,85 Zoll-HD-Touch-Display und Dual-Core Rockchip-Prozessor als Geschenk oben drauf.

Aufmacherbild: Cartoon Marines von Shutterstock / Urheberrecht: Igloo Imaging

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -