Der Blog

Erreichen Sie mehr Verantwortlichkeit durch Full-Service-Eigentum

von Julie Gunderson 30. Oktober 2019 | 5 Minuten Lesezeit

Softwareteams, die bessere Produkte und Dienste anbieten möchten, müssen sich auf schnellere Release-Zyklen konzentrieren. Der Betrieb zuverlässiger Systeme mit immer höheren Geschwindigkeiten stellt jedoch eine große Herausforderung dar. Softwareteams können Qualität und Geschwindigkeit erreichen, indem sie die Richtlinien für die fortlaufende Serviceverantwortung anpassen. Bereitschaftsdienste spielen in diesem Modell zwar eine große Rolle, doch Wissensfortschritt, robusterer Code, verstärkte Zusammenarbeit und Übung sorgen auch dafür, dass Ingenieure nicht in einem Albtraum aufwachen müssen.

In diesem Blog werde ich mich mit den Konzepten von Full-Service-Eigentum , psychologische Sicherheit im Wandel, die Ethik der Rechenschaftspflicht und die Auswirkungen von Eigentum auf das Kundenerlebnis.

Was ist Full-Service-Eigentum?

Full-Service-Ownership ist die Philosophie, dass Ingenieure für den Code und die Services verantwortlich sind, die sie in der Produktion erstellen. Diese „Code it, ship it, own it“-Mentalität bedeutet, die DevOps-Prinzip Code nicht mehr über die Mauer in den Betrieb zu werfen oder sich auf die Site Reliability Engineering (SRE)-Team um die Zuverlässigkeit der Dienste in der Praxis sicherzustellen. Stattdessen sind Verantwortlichkeit, Zuverlässigkeit und kontinuierliche Verbesserung die Hauptziele des Full-Service-Eigentums.

Warum Verantwortlichkeit wichtig ist

Wenn Ingenieure für ihre eigenen Kreationen auf Abruf bereitstehen, liegt die Verantwortung direkt in den Händen des jeweiligen Ingenieurs bzw. Teams. Das ist wichtig, weil die digitale Transformation die Arbeitsweise der Menschen und das Konsumverhalten der Verbraucher verändert hat. Die Verbraucher haben die implizite Erwartung, dass die Dienste funktionieren.

Wenn ich beispielsweise versuche, einen Online-Kauf zu tätigen (was ich normalerweise immer über mein Mobilgerät tue), erwarte ich ein nahtloses, sicheres und effizientes Erlebnis. Wenn ich unterbrochen werde, weil eine Seite nicht geladen wird oder einen Fehler ausgibt, gehe ich einfach zu einem anderen Unternehmen, das meine Anfrage erfüllen kann. Laut der PagerDuty Bericht zum Stand digitaler Abläufe 2017 (UK) , 81,2 % der Verbraucher zeigen dasselbe Verhalten.

Mehr Handlungsfreiheit für Ingenieure Unternehmen können sich einen Wettbewerbsvorteil verschaffen, indem sie den gesamten Lebenszyklus ihres Codes und ihrer Dienste selbst in die Hand nehmen und so an der Kundenzufriedenheit arbeiten. Die vollständige Verantwortung für die Dienste kommt nicht nur dem Unternehmen zugute, sondern auch den Entwicklern, denn diese Verantwortung gewährleistet qualitativ hochwertige Arbeit und gibt ihnen einen direkten Einblick in die tatsächliche Leistung des Codes/Dienstes und seine Auswirkungen auf den Alltag der Kunden.

Zuverlässigkeit – über KMU hinaus

Dienste werden ausfallen – das ist unvermeidlich. Unternehmen können jedoch die Ausfallzeit und die Auswirkungen auf die Kunden reduzieren, indem sie umgehend einen Fachexperten (Subject Matter Expert, SME) oder „Eigentümer“ in den Vorfall einbeziehen. Der SME ist der Ingenieur, der den Code/Dienst erstellt hat und über das umfassende technische Wissen verfügt, um sowohl auf Vorfälle zu reagieren als auch Korrekturmaßnahmen zu ergreifen, um durch kontinuierliche Verbesserung sicherzustellen, dass ihre Dienste weniger Unterbrechungen aufweisen. Als verantwortliche Partei werden Ingenieure dazu angehalten, Code zu automatisieren, zu testen und zu erstellen, der so narrensicher wie möglich ist.

Darüber hinaus verzeichnen Teams, die die volle Verantwortung für den Service übernehmen, einen Anstieg des Gesamtwissens. Durch Praktiken wie Übergaben auf Abruf, Codeüberprüfungen, tägliche Standups und Misserfolg am Freitag Übungen entwickeln einzelne Ingenieure ein größeres Fachwissen über die gesamte Codebasis. Zu den neuen Fähigkeiten gehören auch Systemdenken, Zusammenarbeit und das Arbeiten in nicht isolierten Umgebungen. Teams und Einzelpersonen bauen durch den Austausch von Informationen die notwendige Redundanz in Fähigkeiten und Wissen auf.

Ständige Verbesserung

Da Ingenieure bestrebt sind, ihre Produkte, Codes und/oder Dienste kontinuierlich zu verbessern, ist ein Nebeneffekt der vollständigen Serviceverantwortung die Verbesserung sowohl der Dienste als auch der Warnmeldungen. Warnmeldungen, die außerhalb der Arbeitszeiten unterbrechen, müssen umsetzbar sein. Wenn Teammitglieder wiederholt durch nicht umsetzbare Warnmeldungen unterbrochen werden, besteht die Möglichkeit, das System durch die Analyse der Daten zu verbessern.

Das Aufräumen des Überwachungssystems ist zeitintensiv. Wenn Sie sich jedoch für umsetzbare Warnmeldungen entscheiden, wird die Bereitschaft für alle im Team besser und die Alarmmüdigkeit , wodurch geistige Energie frei wird, um sich auf zukünftige Releases und Automatisierung zu konzentrieren. Entwickler, die den Code geschrieben und die Warnmeldungen für diesen Code definiert haben, erstellen mit größerer Wahrscheinlichkeit umsetzbare Warnmeldungen, da sie diejenigen sind, die nachts geweckt werden, wenn sie dies nicht tun. Über umsetzbare Warnmeldungen hinaus werden Ingenieure dazu motiviert, Code von höchster Qualität zu erstellen, da besserer Code weniger Unterbrechungen bedeutet.

Darüber hinaus ist Bereitschaft nicht als Dauereinsatz gedacht und die Vollverwaltung des Dienstes ermutigt die Teams, Zeit für „Ruhepausen“ einzuplanen.

Stellen Sie sich vor, Sie sind im Betriebsteam und untersuchen einen Vorfall – die Zeit ist von entscheidender Bedeutung und Sie brauchen schnell Antworten. Gehen Sie sorgfältig eine Liste aller für diesen Service verantwortlichen Teammitglieder durch? Oder rufen Sie den KMU an, von dem Sie wissen, dass er sonntags immer ans Telefon geht? Immer dieselbe Person anzurufen, wenn ein Vorfall auftritt, ist eine unangemessene Belastung für eine Person und kann zu einer einzigen Fehlerquelle führen, die dann zu einem Burnout führen kann. Vor diesem Hintergrund erfüllt ein Bereitschaftsdienst mehrere Funktionen, um Unternehmen bei der kontinuierlichen Verbesserung zu unterstützen:

  1. Ingenieure wissen, wann sie nicht diensthabend sind; sie wissen, dass ihr Code und ihre Dienste abgedeckt sind, sodass sie sich vollkommen entspannen können, was das Risiko eines Burnouts und einer Mitarbeiterfluktuation verringert.
  2. Die Last, der „ansprechbare“ KMU zu sein, wird im Wechsel auf den Rest des Teams verteilt.
  3. Dienste werden zuverlässiger
  4. Das Wissen und die Fähigkeiten des Teams werden durch ein tieferes Verständnis der Codebasis verbessert

Indem die vollständige Serviceverantwortung über die Codierung hinausgeht und auch Versand und Besitz einschließt, reduziert sie das mit Vorfällen verbundene Chaos, indem sie Rollen und Verantwortlichkeiten definiert, unnötige Ebenen entfernt und letztendlich eine Kultur der Ermächtigung und Rechenschaftspflicht fördert.

Wie war Ihre Erfahrung? Hat Ihnen die Bereitschaft geholfen, ein besserer Ingenieur zu werden? Widersteht Ihnen der Gedanke, einen „Pager“ in die Hand zu nehmen? Teilen Sie Ihre Gedanken auf unserer Community-Foren ! Schauen Sie sich unseren Leitfaden an, wenn Sie mehr erfahren möchten Best Practices für den Full-Service-Besitz .

Eine Version dieses Artikels wurde am 20. September 2019 auf www.opensource.com veröffentlicht.