Der Blog

Aktuelle Informationen zu Code Freezes

von Jeli 21. Dezember 2022 | 11 Minuten Lesezeit

Dieser Beitrag wurde ursprünglich im Jeli-Blog veröffentlicht. Jeli wurde 2023 von PagerDuty übernommen und wir veröffentlichen ihn hier erneut, um unserer Community ihre Vordenkerrolle nahezubringen.


Der Text mag umstritten sein, aber wir alle kennen den Weihnachtsklassiker „Baby, it’s cold outside“,

 

Ich kann wirklich nicht bleiben

Baby, du bist immer noch auf Abruf

Ich muss weg

Baby, du bist immer noch auf Abruf

Dieses Jahr war

Sie haben die Bereitstellung gestoppt

So nett

Schauen Sie sich Ihren Code an, er ist wie Eis

 

Okay, das sind vielleicht nicht die Liedtexte, aber sie kommen den meisten technischen Organisationen zu dieser Jahreszeit wahrscheinlich bekannt vor. Die Ferienzeit steht vor der Tür, und in der Technik bedeutet das, dass entweder die Hälfte Ihres Teams im Urlaub ist oder die Verfügbarkeit Ihres Produkts für die nächsten Wochen von entscheidender Bedeutung ist. Oder beides. Wahrscheinlich beides. Unternehmen auf der ganzen Welt haben bereits einen Feiertags-Bereitstellungsstopp eingeleitet, um die Einführung von Fehlern in ihren Code zu verhindern.

Sie denken vielleicht, dieser ganze Blogbeitrag kommt zu spät, wir stecken bereits mitten in den Wirren der Feiertags-Deployment-Einfrierungen und Ferien. Betrachten Sie dies als einen Besuch der Geister der Feiertags-Deployment-Ansätze – es ist noch nicht zu spät, eine retrospektive Diskussion über vergangene und gegenwärtige Einfrierungen zu beginnen. Es gibt immer Verbesserungsmöglichkeiten, lassen Sie mich Ihr Geist der zukünftigen Deployment-Einfrierungen sein.

Wie bei allem in der modernen Welt gibt es auch bei der Diskussion, ob Deploy Freezes gut oder schlecht sind, viele Nuancen. Das Leben wäre viel einfacher, wenn wir Dinge eindeutig als gut oder schlecht quantifizieren könnten. Leider ist in Wirklichkeit nichts so einfach. Es gibt viele gemischte Gefühle in Bezug auf Deploy Freezes, wie man den hitzigen Meinungen entnehmen kann, die man im Internet dazu findet. Deploy Freezes können gut gemacht sein, aber Deploy Freezes können auch schrecklich gemacht sein. Sie können ganz okay sein, sie können viel zusätzliche Arbeit verursachen und am Ende Kopfschmerzen bereiten, oder sie können nichts weiter als eine Reihe von Hürden sein, die man überwinden muss.

Lassen Sie uns zunächst darauf eingehen, warum die meisten Organisationen einen Deployment-Freeze durchführen: Vielleicht liegt es daran, dass sie davon ausgehen, dass sie Vorfälle vollständig verhindern können, oder es könnte der Wunsch sein, einen bestimmten peinlichen Vorfall während einer Spitzenzeit im Jahr zu verhindern. Sie kennen diese Art von Vorfall: „Ein kleiner Deployment wurde durchgeführt, um einen Fehler zu beheben, und es hat unabsichtlich einen katastrophalen Vorfall verursacht, von dem wir nicht gedacht hätten, dass er jemals passieren könnte.“

Heiße Erkenntnis: Das Einrichten eines Bereitstellungsstopps bedeutet nicht, dass es keine Zwischenfälle geben wird.

Es gibt viel zu viele tolle, umwerfende Möglichkeiten, wie Vorfälle auftreten können, ohne dass eine einzige Änderung am Code vorgenommen wird. Dank plötzlicher Verkehrsverschiebungen, vergessener Zertifikatsabläufe, Lieferantenvorfällen, *hüstel* groß angelegter Sicherheitslücken bei der Fehlerprotokollierung *hüstel* ist es ehrlich gesagt egal, ob Sie Ihren Code ändern oder nicht, Vorfälle werden trotzdem auftreten. Sie werden vielleicht sogar feststellen, dass eine Zeit lang keine Bereitstellung zugrunde liegende Probleme aufdeckt, von denen Sie gar nichts wussten. Ehrlich gesagt ist das der Grund, warum die gesamte Community „Learning from Incidents“ existiert, denn eine einzelne Änderung – eine „Grundursache“ – ist nie die ganze Geschichte. Vorfälle sind ein perfekter Sturm aus beitragenden Faktoren, die zusammenkommen und zu einer Störung führen.

Wenn Sie alle Änderungen an Ihrer Codebasis verhindern, wird es auch während der Feiertage zu Zwischenfällen kommen. Ein hartes Ende.

Viele Leute haben Blogbeiträge darüber geschrieben, warum man über die Feiertage keinen Code-Freeze verhängen sollte. Aber hier geht es darum, wie sich die Prozesse, die wir einführen, auf uns auswirken. Machen sie uns das Leben leichter oder schwerer? Das ist eine wichtige Frage, die von so vielen nuancierten Faktoren rund um Ihre Systeme, Mitarbeiter, Unternehmenskultur und Arbeitsumgebung abhängt. Es gibt keinen einzig richtigen Weg, dies anzugehen.

Wir schlagen vor, diese Diskussion von „Sollten wir Bereitstellungen über die Feiertage einfrieren?“ auf „Was können wir tun, um die Feiertage für unsere Kunden und Mitarbeiter reibungslos zu gestalten?“ umzuformulieren.

Wenn Ihre Hauptverkehrszeit zufällig auch mit der Ferienzeit zusammenfällt, ist dies eine besonders wichtige Frage. Sie können entweder die Tatsache ignorieren, dass Ihre Mitarbeiter auch Menschen sind, die die Feiertage genießen möchten, indem sie nicht die ganze Zeit arbeiten, oder Sie können es akzeptieren und den Leuten Urlaub gewähren. Ihr Unternehmen könnte sogar allen den gleichen Urlaub gewähren! Erstaunlich! Aber wissen Sie, wer diesen Urlaub nicht vollständig nehmen kann? Bereitschaftstechniker und Frontline-Support. Die Lichter werden von Bereitschaftstechnikern angehalten, die im Einkaufszentrum Warnungen von ihrem Telefon aus bestätigen, und von den am schlechtesten bezahlten Mitarbeitern des Unternehmens, die mit ihren Laptops am Esstisch sitzen und Tickets oder Chats entgegennehmen, halb anwesend, während um sie herum die Feiertage stattfinden.

Bereitschaftsdienst an Feiertagen ist ätzend. Das kennen wir. Es ist komisch, mit dem Laptop im Auto auf dem Parkplatz eines Einkaufszentrums zu sitzen, und die Leute, die an Weihnachten mit dem Support chatten, sind normalerweise unglaublich wütend und lassen einen das spüren.

Aktuelle Meldung: Jeder, der während der Feiertage Bereitschaftsdienst hat oder in der Unterstützungsabteilung arbeitet, muss zwingend zusätzlichen Urlaub bekommen und sollte Urlaubsgeld erhalten.

Die Vertretung an Feiertagen macht Sie nicht zum Helden, sondern zu einem Arbeiter, der an einem Feiertag seine Arbeitszeiten einteilt. Wenn Sie während der Feiertage Bereitschaftsdienst haben, nehmen Sie sich auch andere Zeit frei. Bereitschaftsdienst ist kein Urlaub. Wir sind alle müde. Wir stehen kurz davor, zwei der dümmsten aufeinanderfolgenden Jahre der jüngeren Geschichte zu beenden. Machen Sie eine Pause. Eine echte Pause, in der Sie nicht arbeiten und Ihren Laptop nicht öffnen. (Und an alle Unternehmen, die ihren Supportbetrieb über die Feiertage nicht schließen können: Wissen Sie was? Ihre Supportmitarbeiter sind unverzichtbare Arbeitskräfte. Sie sollten mehr Geld verdienen.)

Heißer TIPP: Für diejenigen, die während der Feiertage in den Einsatz gehen: Denken Sie daran, dass Ingenieurswissenschaften nicht im luftleeren Raum stattfinden.

Es ist wichtig, an einer intern sichtbaren Stelle zu kommunizieren, was Sie bereitstellen und welche potenziellen Ergebnisse für den Kunden möglich sind. Betrachten Sie diese erfolgreichen Bereitstellungen:

  • Ein Fehler wurde behoben.
  • Mittlerweile funktionieren die von einigen wichtigen Accounts laut ihren Account-Managern übernommenen Workarounds nicht mehr.
  • Durch ein schnelles Frontend-Update wurden auch die Menüoptionen in alphabetischer Reihenfolge neu angeordnet.
  • Jetzt bombardieren Kunden den Support mit Fragen dazu, wo die „Einstellungen“ geblieben sind.
  • Für ein internes Tool zum Abrufen von Daten für ein Dashboard wird eine Erhöhung der Anforderungsrate eingeführt.
  • Löst jetzt Warnungen für einen DBA aus, nichts ist kaputt, der Anstieg der Anfragen liegt knapp über dem bestehenden Schwellenwert für Warnungen

Diese werden wahrscheinlich nicht als Vorfälle gemeldet, da die Produktion nicht unterbrochen ist. Und das sind alles vernünftige, kleine Korrekturen, die von Ingenieuren, die über die Feiertage arbeiten, vorangetrieben werden. Aber dieser Account Manager ist im Urlaub und versucht, Kunden von einem Skilift aus zu antworten, es sind gerade nur drei Leute für den Support da und sie ertrinken in Chats, und der Pager des Bereitschafts-DBA explodiert, während sie drei Kinder von der Schule nach Hause und ein Haus voller Verwandter betreut. Diese Leute führen jetzt eine Fehlerbehebung im harten Modus durch. Dinge, die leicht intern eskaliert werden hätten können, als die Hälfte des Unternehmens nicht im Urlaub war, sind jetzt eine mühsame Suche, um herauszufinden, ob sich etwas geändert hat, was es war, wer helfen kann und was dagegen getan werden kann.

Bei der Kommunikation über Änderungen geht es nicht um den bereitgestellten Code, sondern darum, die Erwartungen für das gesamte Ökosystem der Mitarbeiter zu steuern, deren Arbeitsplätze von diesen Änderungen betroffen sind.
Die meisten Bereitstellungsstopps tragen in den Wochen vor und nach dem Stopp zu Zwischenfällen bei. Vor einem Bereitstellungsstopp kann es zu einem wilden Ansturm kommen, um Dinge so schnell wie möglich fertigzustellen. Nach einem Stopp kann es zu einem Verkehrsstau von Bereitstellungen kommen, die bereit sind, auf unerwartete Weise zu interagieren.

Und hier die bisher heißeste Neuigkeit: Dies wird passieren, egal, ob es einen Bereitstellungsstopp gibt oder nicht.

„Nein! Aus genau diesem Grund führen wir keine Bereitstellungsstopps durch!“ Es tut uns sehr leid, Ihnen das sagen zu müssen, aber es passiert immer noch. Der Ansturm vor den Ferien wird weiterhin stattfinden, genauso wie das langsame Aufräumen der Spinnweben und das dann zunehmende Tempo, wenn die Leute zurückkommen. Es ist nur weniger offensichtlich, weil es sich nicht um die harten Kanten eines Bereitstellungsstopps handelt, sondern um die gestaffelten Daten der Abreise und Rückkehr der Leute aus dem Urlaub.

Beim Übergang in eine Woche Firmenurlaub, eine Einsatzsperre oder einen anderen Zeitraum geht es vor allem darum, die Erwartungen zu managen. In der Sprache der Einsatzsperre nennen wir den Beginn dieser Zeit „das Kommen des Frosts“. Wir meinen damit nicht, dass man den Dezember als gelaufen abtun und erwarten kann, im letzten Monat des Jahres keine Fortschritte zu machen. Aber realistisch gesehen wird sich das Arbeitstempo ändern, die Dinge werden langsamer, wenn die Leute in den Urlaub gehen, aber es herrscht auch Eile, die Dinge vor Jahresende fertigzustellen. Dieser Zeitraum ist am angespanntesten, wenn wichtige Fristen anstehen, insbesondere direkt danach Anfang Januar.

Heißer Tipp: Ihre Jahres-/Quartalsplanung muss an die Realität im Dezember angepasst werden.

Es muss unbedingt sichergestellt werden, dass die geplante Arbeit in diesem Zeitrahmen zumutbar ist, und anschließend möglicherweise noch etwas reduziert werden.

Der Schlüssel für die Rückkehr im Januar ist nichts anderes oder Neues als das, was im Dezember erforderlich war. Es geht lediglich darum, den neuen Eifer und das Engagement hinzuzufügen, das wir alle zu Beginn des Jahres aufbringen: Kommunizieren Sie, was Sie bereitstellen, bevor Sie es bereitstellen, an einem intern öffentlichen Ort. Sprechen Sie darüber, was damit geschehen soll und welche Dinge es betreffen könnte. Koordinieren Sie, ob Sie diese ersten beiden Januarwochen wie gewohnt durchziehen oder ob Sie langsamer vorgehen und verschiedene Teams langsam wieder an die Bereitstellung nach unterschiedlichen Zeitplänen gewöhnen möchten. Und wenn wir „intern öffentlicher Ort“ sagen, meine ich einen Raum, in dem Menschen außerhalb der Entwicklung und Planung beteiligt und einbezogen werden. Bei der Kommunikation über Änderungen geht es nicht um den bereitgestellten Code, sondern darum, die Erwartungen für das gesamte Ökosystem der Mitarbeiter zu steuern, deren Arbeitsplätze von diesen Änderungen betroffen sind.

Hot Take, wenn ein vollständiger Bereitstellungsstopp Ihr Ding ist: Ein Bereitstellungsstopp bedeutet, dass die Leute nicht aktiv versuchen, bei einem Entwicklungsprojekt, das bereitgestellt werden muss, Fortschritte zu machen. Bereitstellungsstopps müssen entweder Freizeit oder Zeit für Dinge bedeuten, die nach Abschluss nicht bereitgestellt werden müssen.

Dazu gehören Spezifikationen für die kommende Planung, Koordination, die Entwicklung von Tools zur Unterstützung von Prozessen und andere Aufgaben, die über kundenorientierte Änderungen hinausgehen. Das ist alles. Das ist die Geheimzutat. Bereitstellungsstopps sollten nicht bedeuten, dass Ingenieure untätig sind. Es sollte bedeuten, dass Ingenieure alle anderen Arbeiten erledigen, die der Job erfordert, und nicht nur Code schreiben. Sie werden nach einem Thaw nicht über zu viele Bereitstellungen stolpern, wenn der Großteil des Stopps nicht mit der Arbeit am Code verbracht wurde.

Die obigen Ratschläge sind auch für diejenigen relevant, die keine Bereitstellungsstopps implementieren. Vielleicht konzentrieren Sie sich in den Wochen vor und nach dem Urlaub auch auf andere Arbeiten außerhalb der Bereitstellung. Das muss nicht heißen, dass es keine Bereitstellungen gibt, aber es kann dabei helfen, die Dinge wieder auf Hochtouren laufen zu lassen, wenn die Leute nach dem Urlaub wieder zur Arbeit zurückkehren.

Sobald Sie wieder im Rhythmus sind, ist es an der Zeit, Ihren Urlaubseinsatzansatz zu überprüfen. Beginnen Sie ein Gespräch darüber, was funktioniert hat und was nicht. Sprechen Sie mit den Leuten, die Bereitschaft hatten, mit denen, die aus ihrem Urlaub online geholt wurden, mit den Prozessorganisatoren und sogar mit Kunden über ihre Erfahrungen. Besprechen Sie, welche Änderungen eingeführt werden können, damit der gesamte Prozess für alle Beteiligten besser funktioniert.

Wir wiederholen: Ob mit oder ohne Einsatzstopp, es wird auch während der Feiertage zu Zwischenfällen kommen. Versenden Sie vor den Feiertagen einen Spickzettel, eine zentrale Anlaufstelle, an der Sie Bereitschaftspläne, Vorfallprozesse und Notfallpläne finden, damit sich die Leute vorbereitet fühlen. Und denken Sie daran: Zwischenfälle sind Chancen. Sie schaffen eine Umgebung, in der Teams improvisieren, reagieren, lernen und zusammenarbeiten, um Probleme in Echtzeit zu verstehen und zu lösen. Achten Sie aufeinander, gönnen Sie sich etwas Nachsicht und bereiten Sie sich darauf vor, gemeinsam unglaubliche Dinge zu lernen.

Damit überlassen wir Sie Ihren eigenen Code-Weihnachtsliedern.