Ab und zu geraten Ingenieurteams aus den verschiedensten Gründen in Schwierigkeiten. Manchmal wird das Team von explosivem Wachstum überrascht. Oder der Bereitschaftsdienst gerät außer Kontrolle, so dass alle fünf Minuten ein Alarm ertönt. Oder die Entwicklungs- und Betriebsteams haben einfach aufgehört, sich zu verstehen. Unabhängig von den Gründen befindet sich das Team in einer misslichen Lage, und es muss etwas unternommen werden, um das Problem zu lösen.
Wenn es sich um ein neues Problem handelt, könnte die Lösung einfach sein: Fügen Sie ein paar weitere Server hinzu, gehen Sie zu einer bekannten guten Anwendungsversion zurück oder versammeln Sie alle bei Pizza und Bier, um die Lage zu klären. Oft schleicht sich das Problem jedoch im Laufe der Zeit ein, und plötzlich ist das Loch so tief, dass man den Ausweg nicht mehr findet. Bei LinkedIn erklärt ein Team, das an diesem Punkt angelangt ist, oft einen Zustand, der als „Code Gelb“ bekannt ist.
Gelber Alarm
Manch einer nimmt an, dass der Name „Code Gelb“ auf Verkehrsampeln zurückzuführen ist, aber genauer gesagt – und mit einer geekigeren Wendung – stammt er eigentlich aus Ihrer Lieblingsserie „Star Trek“. Genauer gesagt ist es die Art und Weise, wie die Besatzung des Raumschiffs Enterprise ihren aktuellen Verteidigungszustand anzeigt. Wie auch immer, die Definition ist klar: Irgendetwas stimmt nicht, und wir müssen vorsichtig vorgehen. Getreu den beiden Metaphern gibt es auch einen Code Red. Das ist eher eine unmittelbare Krise, bei der alle rund um die Uhr arbeiten, bis das Problem gelöst ist. Der Code Gelb ist etwas entspannter: Hier arbeiten alle Mitarbeiter nur während der Geschäftszeiten. Ein gelber Code dauert in der Regel mehrere Monate, während ein roter Code nur wenige Tage dauert.
Andere Unternehmen verwenden vielleicht einen anderen Begriff als den gelben Code, aber der Effekt ist derselbe: Das Team teilt dem Rest des Unternehmens mit, dass es ein ernstes Problem festgestellt hat, das vorrangig behoben werden muss, um den Erfolg des Teams und damit des Unternehmens zu gewährleisten. Die Fähigkeit, dies zu tun, ist ein wichtiger Aspekt der offenen und ehrlichen Kommunikation, ein Wert, der für eine gesunde Kultur entscheidend ist und oft übersehen wird. Über unsere Probleme zu sprechen ist genauso wichtig, wenn nicht sogar wichtiger, als unsere Erfolge zu feiern. Teams können aus der Behebung eines Problems mehr lernen als aus einem totalen Erfolg.
Dies ist kein Misserfolg
Der erste Schritt beim Start eines Code Yellow ist die Einsicht, dass dies kein Misserfolg ist. Es ist keine Schande, zuzugeben, dass das Team ein Problem hat, das behoben werden muss. Fehler passieren, auch wenn wir alles tun, um sie zu vermeiden. Das Einzige, was wir tun können, ist, das Problem zu diagnostizieren und es zu beheben. Das einzige Mal, dass wir versagen, ist, wenn wir vor diesen Problemen die Augen verschließen. Dies gilt für den Umgang unserer Entwicklungsteams untereinander ebenso wie für die Software und die Systeme, die wir produzieren und betreiben.
Es ist jedoch entscheidend, dass die richtigen Probleme angegangen werden. Meistens sind wir in die derzeitige Situation geraten, weil sie sich langsam aufgebaut hat – zunehmende technische Schulden, viele kleine Probleme oder Pannen in einem Prozess -, die sich schließlich zu einer Krise ausgewachsen haben. Das Ziel des Code Yellow muss es sein, nicht nur die aktuellen Probleme zu beheben (reaktive Komponente), sondern auch dafür zu sorgen, dass sie sich in Zukunft nicht wiederholen (proaktive Komponente).
Planung für einen erfolgreichen Code Yellow
Es gibt mehrere Komponenten, die für einen erfolgreichen Code Yellow erforderlich sind, sowie notwendige Teile, um die Zustimmung des restlichen Unternehmens zu erhalten:
- Problemstellung: Es muss eine klare und einvernehmliche Erklärung der Probleme geben, mit denen das Team konfrontiert ist und die den Code Yellow ausgelöst haben. Dazu gehören nicht nur die aktuellen Probleme, sondern auch das aktuelle Verständnis ihrer Ursachen.
- Ausstiegskriterien: Als Nächstes müssen Sie spezifische Ziele festlegen, auf die das Team hinarbeiten wird, um den Code Yellow zu verlassen. Dabei sollte es sich um traditionelle SMART-Ziele handeln: spezifisch, messbar, erreichbar, relevant und zeitgebunden. Diese Ziele machen es dem Team überhaupt erst möglich, in einen Code Yellow einzutreten, da er einen festen Bereich abdeckt und kein offenes Ende hat.
- Kommunikation: Alle Informationen über den Code Yellow, einschließlich der Ankündigung (die die Problembeschreibung und die Ausstiegskriterien enthält), des erfolgreichen Abschlusses und regelmäßiger Statusaktualisierungen sollten an die größere Organisation geschickt werden. Dabei kann es sich um Ihre Abteilung oder um die gesamte technische Organisation handeln. Je nach Art der Probleme kann es sogar das gesamte Unternehmen sein.
- Projektleitung: Wie bei allen großen Projekten muss es jemanden geben, der für die Organisation der Arbeit und die Weitergabe von Informationen verantwortlich ist. Da es sich um ein Szenario handelt, bei dem das betroffene Team alle Hände voll zu tun hat, ist es in der Regel hilfreich, einen eigenen Projektmanager (PM) zu haben, der diese Aufgabe übernimmt. Dabei handelt es sich in der Regel um einen PM, der sich mit dem Team und der Arbeit auskennt, aber nicht direkt an der Ausführung beteiligt ist. Auf diese Weise können sich die Manager und die einzelnen Mitarbeiter auf die eigentliche Arbeit konzentrieren.
Wenn alle diese Aspekte bedacht wurden und die Entscheidung getroffen wurde, in den gelben Code einzutreten, besteht die erste Handlung des Teams darin, seine Prioritäten um die Ausstiegskriterien herum neu zu organisieren. Dies bedeutet oft, dass die vierteljährlichen Ziele auf die lange Bank geschoben werden. Es kann auch notwendig sein, eine spezielle Sitzung einzurichten, um den Status der Ausstiegskriterien zu erörtern.
Raum zum Atmen
Es ist schön und gut, wenn ein Team in den Code Yellow eintritt und sich auf die Ziele konzentriert, die gesetzt wurden, um die Dinge in Ordnung zu bringen, aber das reicht nicht aus, damit das Team erfolgreich ist. Um wirklich erfolgreich zu sein, muss jeder in der Umgebung des Teams die Situation verstehen und dem Team den nötigen Freiraum geben, um seine Arbeit zu erledigen. Dies ist der Punkt, an dem eine gesunde Ingenieurskultur sich der Herausforderung stellt.
- Rechnen Sie mit Verzögerungen: Die häufigste Art, wie ein tangentiales Team betroffen ist, sind Verzögerungen. Sie müssen damit rechnen, dass sich Anfragen an das betroffene Team verzögern können, wenn sie nicht in den Rahmen der Ausstiegskriterien fallen. Der Code Yellow beinhaltet im Kern eine Neuordnung der Prioritäten, um das genannte Problem zu lösen. Externe Teams müssen dies berücksichtigen und verstehen, dass ihre eigenen Projektzeitpläne möglicherweise angepasst werden müssen.
- Neue Anfragen minimieren: Andere Teams sollten es ebenfalls unterlassen, das betroffene Team um neue Dinge zu bitten, die nicht in den Rahmen der definierten Ausstiegskriterien fallen. Durch die Minimierung dieser Anfragen und die Inkaufnahme von Verzögerungen bei bestehenden Anfragen kann das betroffene Team seine begrenzten technischen Stunden darauf verwenden, die andere Seite des Code Yellow zu erreichen.
- Bitten um Unterstützung durch andere Teams: Das Team in Code Yellow kann feststellen, dass es Hilfe von außen benötigt, um seine Ziele zu erreichen. Wenn beispielsweise ein plötzliches, explosionsartiges Wachstum des Datenverkehrs auftritt, muss das Team möglicherweise die Bereitstellung neuer Hardware beschleunigen. Wenn Sie mit einer solchen Anfrage konfrontiert werden, müssen Sie möglicherweise Ihre eigenen Prioritäten verschieben. Denken Sie immer daran, dass das Team Teil desselben Unternehmens ist, und als solches haben alle gemeinsam Erfolg oder Misserfolg.
Ingenieurteams stehen selten allein, und es ist wichtig, dass jeder versteht, wie wichtig es ist, dass diese Teams gut arbeiten und gut zusammenarbeiten. Eine kleine vorübergehende Verzögerung bei den Zielen, um sicherzustellen, dass dies der Fall ist, ist es wert.
Licht am Ende des Tunnels
Der gelbe Code stellt eine beträchtliche Menge an Arbeit mit hoher Priorität dar, und die Arbeit daran wird für das Team oft stressig sein. Es ist schwer, „Nein“ zu Kollegen zu sagen, die eine vernünftige Anfrage stellen, und die Arbeit, die in den Bereich fällt, beinhaltet selten Zeit für interessante neue Funktionen. Wenn zu den zu lösenden Problemen auch Kommunikationsprobleme zwischen den Gruppen gehören, wird es außerdem einige schwierige Gespräche geben, die geführt werden müssen. Wenn sich das Team jedoch dem Ende der Arbeit nähert, wird es viel leichter sein, zu erkennen, was auf der anderen Seite der Ausstiegskriterien liegt.
Das ultimative Ziel des Code Yellow ist es, das Team aus einem reaktiven Modus, in dem es von Krise zu Krise rennt, in einen proaktiven Zustand zu versetzen, in dem es in der Lage ist, an den richtigen großen Projekten zu arbeiten. Das Erreichen der Ausstiegskriterien bedeutet, dass die Ingenieure effektiver und in der Lage sind, proaktiv zu arbeiten. Das ist ein stärkeres Team – die Ingenieure sind zufriedener, weil sie nicht unter dem Stress der operativen Arbeit stehen, das Team arbeitet gut, weil sie effektiv miteinander reden, und die Kunden sind zufrieden, weil die Anfragen entweder durch Automatisierung oder in einer angemessenen Zeitspanne bearbeitet werden.
Hat Ihr Unternehmen einen internen Prozess, der ähnlich ist wie der Code Yellow bei LinkedIn?
– Todd Palino