"Die meisten Unternehmen werden bei der Skalierung von DevOps-Initiativen scheitern, wenn keine gemeinsamen Self-Service-Plattform-Ansätze eingeführt werden."
Gartner, 2022 Research Roundup für DevOps
Um die besten DevOps-Praktiken für euer Unternehmen zu übernehmen, müsst ihr eine Plattform verwenden, die eine hervorragende Developer Experience (DX) fördert. Andernfalls können eure DevOps-Initiativen scheitern, was zu einem Mangel an Produktivität führt. Konzentriert euch darauf, die besten Entwickler zu gewinnen und zu halten, indem ihr zeitaufwändige Softwareentwicklungsarbeit vermeidet.
Mit der zunehmenden Beliebtheit von Microservice-Architekturen und Kubernetes sind Softwarepraktiken immer komplexer geworden. Platform Engineering erweist sich als wertvolle Praxis, um die Entwicklung zu vereinfachen und ein günstiges Umfeld für Innovation und Spaß zu schaffen. Sie ermöglicht es Unternehmen, sich auf die Softwareentwicklung zu konzentrieren und gleichzeitig den Entwicklern den nötigen kognitiven Freiraum zu geben.
Lernt von Bankdata und Millennium BCP im Webinar: "Embrace platform engineering to deliver business value"
Teil 1
Was ist Platform Engineering?
Platform Engineering ist eine Reihe von Tools und Praktiken rund um Entwicklungs-Toolchains, die es Entwicklern erleichtern, hervorragende Software zu erstellen. Es etabliert eine interne Development Platform (IDP), die Teams in cloud-nativen Unternehmen unterstützt und die Erstellung, Implementierung sowie die betrieblichen Aspekte der Plattform über den gesamten Service-Lebenszyklus hinweg umfasst. Sie hat in letzter Zeit aufgrund der wachsenden Nachfrage nach verbesserten Entwicklungs- und Betriebspraktiken erheblich an Popularität gewonnen.
Plattform Engineering kann "goldene Wege" oder "gepflasterte Straßen" bieten, die Entwickler bei richtiger Herangehensweise schnell übernehmen können. Diese Begriffe werden zwar unterschiedlich verwendet, zielen aber im Wesentlichen auf dasselbe Bedürfnis ab: Plattformen sollen Entwicklern die Erstellung, Bereitstellung und Ausführung ihrer Software erleichtern. Die Plattform bietet Automatisierung und verschiedene Abstraktionsebenen, um den Softwareentwicklungsprozess entsprechend der Unternehmensführung zu unterstützen.
Was andere über Platform Engineering sagen
Platform Engineering ist in aller Munde, und es gibt etablierte Ansichten dazu.
Evan Bottcher erklärt: "Eine digitale Plattform ist eine Grundlage von Self-Service-APIs, Tools, Diensten, Wissen und Support, die als überzeugendes internes Produkt gestaltet sind. Autonome Teams für die Bereitstellung digitaler Plattformen können die Plattform nutzen, um Produktfunktionen in einem höheren Tempo und mit geringerem Koordinationsaufwand bereitzustellen."
Interne Development Platforms (IDPs) verstehen
Eine IDP ist eine zusätzliche Schicht, die den Betrieb vereinfacht und es Entwicklern ermöglicht, sich mit vorhandenen Technologien und Werkzeugen zu helfen. IDPs können im Allgemeinen mit drei Stichworten definiert werden.
Intern: Dieser Begriff unterstreicht, dass die Plattform für jedes Unternehmen einzigartig ist und nicht als vorgefertigtes Produkt erworben werden kann. Sie ist auf die spezifischen Bedürfnisse und Prozesse des Unternehmens zugeschnitten, einschließlich seiner Regeln und bevorzugten Tools. Die Plattform leitet die Entwickler an und stellt ihnen Best Practices und Ressourcen zur Verfügung, um ihre Arbeit und den Einstieg zu erleichtern.
Entwickler: Dieser Begriff unterstreicht, dass die Entwickler die Hauptnutzer der Plattform sind. Die Selbstbedienung ist hier von entscheidender Bedeutung, da die Entwickler in die Lage versetzt werden, durch die schnelle Implementierung neuer Funktionen einen Mehrwert zu schaffen, ohne dass sie sich bei der Bereitstellung von Ressourcen auf die IT-Teams verlassen müssen. Vorlagen sind wichtig, um Entwicklern die Möglichkeit zu geben, schnell Beispiel- oder Basisversionen von Produkten zu erstellen.
Plattform: In diesem Zusammenhang bezieht sich der Begriff "Plattform" auf die Infrastruktur und die Sammlung der bereitgestellten Software-Tools. Die Plattform umfasst verschiedene Funktionen im Zusammenhang mit der Softwarebereitstellungspipeline, wie die Bereitstellung von Ressourcen, verschiedene Arten von Softwaretests und die Bereitstellung von Artefakten in Zielumgebungen. Die Plattform umfasst ein benutzerorientiertes Entwicklerportal, das auf gemeinsamen Abstraktionen in Cloud-nativer Software, wie Containern, deklarativer Konfiguration und Regelkreisen, aufbaut.
Lest den Blog "Internal Developer Platforms: What they are and why you need one", um mehr zu erfahren.
Blog lesenPlatform Engineering vs. DevOps
Manche sagen: "DevOps ist tot, es lebe Platform Engineering!", aber eigentlich ergänzen sich die beiden Ansätze. Platform Engineering nutzt DevOps-Praktiken und reduziert gleichzeitig den kognitiven Aufwand mit dem Ziel, Self-Service-Funktionen für Entwickler zu ermöglichen.
Die Anwendungsentwicklung wird mit der zunehmenden Verbreitung von DevOps immer komplexer. Entwickler müssen neue digitale Plattform-Tools erlernen, die Infrastruktur verwalten und betriebliche Aufgaben priorisieren, während sie gleichzeitig neue Funktionen programmieren und entwickeln. Diese Anforderungen verringern die Produktivität, erhöhen das Burnout und führen zu Arbeitsüberdruss.
Plattformingenieure sind entscheidend für die Vereinfachung der Standard-DevOps-Prozesse
Stellt euch ein Unternehmen vor, das Webanwendungen unter Verwendung einer einheitlichen Struktur mit einer Datenbank, einem Backend, das RESTful APIs bereitstellt, und einem webbasierten Frontend erstellt. Obwohl moderne Softwaretools und Vorlagen eingesetzt werden, ist der Entwicklungsprozess immer noch stark von manuellen Tätigkeiten abhängig. DevOps-Ingenieure sind für die Erstellung von Docker-Dateien, das Schreiben von Terraform-Skripten, die Einrichtung projektspezifischer Build-Pipelines und die Verwaltung von Umgebungsaktualisierungen verantwortlich.
Sie arbeiten mit den Entwicklern zusammen, um deren Anforderungen zu erfüllen, während sie sich um die Überwachung, Warnmeldungen und die Einhaltung von Service Level Agreements (SLAs) kümmern. Wenn diese kritischen Aufgaben jedoch allein vom DevOps-Team erledigt werden, kommt es zu Engpässen, die zu längeren Vorlaufzeiten für die Entwickler und einer erheblichen Belastung der DevOps-Ingenieure führen.
Plattformingenieure vereinfachen dies, indem sie eine IDP verwenden, um Aufgaben zu automatisieren – angefangen bei der Selbsthilfe. Die Entwickler müssen Git-Repositories nicht mehr manuell einrichten, da die Benutzer schnell eine IDP anfordern können, um Benutzergruppen zu erstellen und automatisch die richtige CI/CD-Vorlage zu integrieren.
Platform Engineering ersetzt nicht die DevOps-Praktiken, sondern baut auf ihnen auf
Es bietet Teams eine einfache Möglichkeit, Projekte durch standardisierte Muster zu starten. Diese Muster sind in eine IDP mit Selbshilfefunktionen integriert. Teams können sofort mit der Wertschöpfung beginnen, anstatt Wochen mit der Projekteinrichtung und Problemlösung zu verbringen.
Self-Service ermöglicht es den Entwicklern, autonom und dennoch konform zu sein, ohne überlastet zu werden. Aus diesem Grund können sich Plattformingenieure auf wichtigere architektonische Herausforderungen konzentrieren, aktuelle Funktionen verbessern und das System an veränderte Anforderungen anpassen.
Platform Engineering vs. Site Reliability Engineering
Google war der Pionier des Site Reliability Engineering (SRE), das sich auf den Betrieb und die Verbesserung von Softwareanwendungen in großem Maßstab konzentriert. Obwohl sie ähnlich klingen, sind Platform Engineering und Site Reliability Engineering unterschiedlich. Bei SRE geht es vor allem um den Betrieb: Einen Dienst zu betreiben und sicherzustellen, dass er ständig verfügbar und aktuell ist. SRE bietet jedoch auch ein Modell für das Servicemanagement, das auch auf IDPs angewendet werden kann. Der Ansatz, der in dem Buch "Site Reliability Engineering - How Google Runs Production Systems" diskutiert wird, ist in diesem Zusammenhang besonders gültig.
Zuverlässigkeit im Platform Engineering
Eine Softwareanwendung kann kein höheres Service Level Agreement (SLA) haben als das, was die unteren Schichten im Stack bieten. Wenn eine Anwendung eine Verfügbarkeitsgarantie von 99,9 % haben soll, müssen alle Infrastrukturkomponenten das Gleiche bieten. SLAs sind wichtig zwischen einem Plattform-Team und den Entwicklungsteams, die die Plattform nutzen. Sie stellen ein Versprechen für die gesamten SLAs dar und bieten den Entwicklungsteams ein erwartetes Maß an Zuverlässigkeit
Ein Service Level Objective (SLO) zielt auf ein Service Level ab, das durch einen Service Level Indicator (SLI) gemessen wird. Die Wahl der richtigen SLOs ist eine Herausforderung, aber entscheidend für die Leistungsmessung des Plattformteams und den Geschäftserfolg. Es hilft den Plattformteams, Innovation und Zuverlässigkeit mithilfe eines Fehlerbudgets und der Spanne zwischen SLI und SLO in Einklang zu bringen. Daher sollten SLOs und Fehlerbudgets auch veröffentlicht werden, um die Erwartungen der Beteiligten zu definieren.
Plattformteams und Störungsmanagement
Plattformteams sind für die Zuverlässigkeit von Softwareanwendungen, die auf ihrer Plattform und Infrastruktur laufen, unerlässlich. Sie müssen auch die Verantwortung während Ausfällen oder Störungen für Probleme mit Teilen übernehmen, die zum Plattform-Team gehören.
Modi der Teaminteraktion
SRE-Teams arbeiten eng mit Entwicklungsteams zusammen, und ihre Interaktion ändert sich mit dem Fortschreiten der Anwendung. Ein SRE-Team kann eine Mischung aus Enabling- und Operations-Teams sein. Es berät bei der Skalierung und dem Aufbau zuverlässiger Dienste bis zu einem bestimmten Punkt. Das SRE-Team sollte die volle Verantwortung für die Zuverlässigkeit eines oder mehrerer digitaler Plattformdienste übernehmen, was sich von einem Plattformteam unterscheidet, von dem erwartet wird, dass es Self-Service-Schnittstellen für Entwicklerteams zur Nutzung bereitstellt. Das Plattformteam braucht eine produktbezogene Denkweise und eine enge Feedbackschleife mit den Entwicklungsteams, um die richtigen Dinge zu entwickeln.
Teil 2
Warum euer Unternehmen Platform Engineering braucht
Die Softwareentwicklung gewinnt in der heutigen Unternehmenslandschaft immer mehr an Bedeutung, egal in welchem Sektor. Unternehmen müssen der Investition in eine gut konzipierte IDP Priorität einräumen, um eine höhere Produktivität, Effizienz und Motivation zu erreichen.
Hier ist eine Liste, wie eine IDP Ihrem Unternehmen helfen kann:
Verkürzung der Wertschöpfungszeit
Es geht nicht nur um die schnelle Bereitstellung von Software, sondern auch um die breitere Wirkung, die eine neue Softwarelösung auf die Benutzererfahrung und das Unternehmenswachstum hat. Eine robuste Plattform wirkt als Katalysator und kann Entwickler von den komplizierten Details der Infrastrukturverwaltung abschirmen, so dass sie sich auf die Entwicklung von Funktionen konzentrieren können, die für die Benutzer und das Unternehmen am wichtigsten sind.
Höhere Kosteneffizienz
Eine einheitliche Plattform wirkt wie ein Katalysator für die strategische Finanzmanagementpraxis. Die Zentralisierung der Infrastruktur und der Tools über eine Plattform erhöht die Kostentransparenz und gibt den Serviceverantwortlichen mehr Befugnisse. Dank dieser Transparenz können die Teams ihre Ausgaben selbstbewusst einschätzen und abwägen und sie nahtlos mit den Einnahmen und dem geschäftlichen Wert, den sie bringen, in Einklang bringen. Diese Konvergenz von Kostenbewusstsein und geschäftsorientierter Entscheidungsfindung fördert eine Kultur, in der sich IT-Investitionen auf die Wertschöpfung ebenso konzentrieren wie auf die Kostendämpfung.
Verbesserung der Entwicklererfahrung und Gewinnung neuer Talente
Die Gewinnung und Bindung von talentierten Entwicklern ist der Schlüssel für jedes softwaregesteuerte Unternehmen. Durch Investitionen in Plattformen zur Vereinheitlichung und Rationalisierung der Softwarebereitstellung legt ein Unternehmen klare, sichere Gleise für seine Entwickler fest, auf denen sie sich bewegen können. Eine Plattform bietet eine einladende Umgebung für den Start von Projekten und die Sicherheit für Experimente. Dank eines robusten Tech-Stacks kann das Plattformteam den Entwicklern ermöglichen, ohne Reibungsverluste sinnvolle Arbeit zu leisten.
Gewährleistung von Compliance und Sicherheit
Da die digitale Landschaft anfällig ist, sind strengere Sicherheits- und Datenschutzmaßnahmen nicht mehr nur eine Option, sondern eine Notwendigkeit. Leitplanken wie automatisierte Prüfpfade, Richtlinien als Code, gesicherte Selbsthilfe und konsistente Umgebungskonfigurationen können in eure Plattform integriert werden. Eine erfolgreiche Plattform integriert Compliance und Sicherheit nahtlos in den Workflow. Auf diese Weise können sich die Entwickler auf Innovationen konzentrieren, ohne sich um Sicherheit und Vorschriften kümmern zu müssen.
Lest oder hört euch die Podcast-Episode "Platform Engineering done right" über die Möglichkeiten einer IDP in einer portugiesischen Bank, Millenium BCP, an.
Podcast-Folge anhörenDie Herausforderung der kognitiven Belastung bei der Entwicklung von Plattformen
Ingenieurteams sind oft mit der Bewältigung komplexer Aufgaben überfordert, die ihre kognitiven Fähigkeiten belasten. Durch den täglichen Einsatz einer IDP können sie dieses Problem wirksam angehen. Ein IDP ermöglicht es Ingenieurteams, Prozesse zu straffen und sich auf wesentliche Aufgaben zu konzentrieren.
Ein wichtiger Vorteil von IDPs ist die Abstimmung. IDPs sorgen für einheitliche Praktiken in verschiedenen Teams und Systemen. Folglich spielen sie eine wichtige Rolle bei der Verringerung der kognitiven Belastung und der Förderung der Konsistenz in den Erfahrungen der Entwickler. So können beispielsweise die Sicherheitspraktiken eines Unternehmens standardisiert und vom Plattformteam automatisiert werden, wodurch wichtige kognitive Ressourcen für andere Zwecke freigesetzt werden können. Mit diesen Maßnahmen kann euer Unternehmen eine florierende Kultur rund um IDPs schaffen, die auf gemeinsamen Prozessen beruht und die Produktivität des gesamten Teams maximiert.
Teil 3
Erstellen der richtigen IDP für eure Teams
IDPs bieten Selbsthilfefunktionen für Entwickler, damit diese sich auf ihre wichtigste Arbeit konzentrieren können. Viele Unternehmen kennen die Vorteile von IDPs, aber es ist schwierig, die richtigen Talente und die richtige Strategie für den Aufbau einer überzeugenden Plattform zu finden.
Wie man mit Platform Engineering anfängt
Es gibt viele Faktoren, die zu berücksichtigen sind. Die technischen Teams müssen mit den Interessengruppen des Unternehmens zusammenarbeiten, um die notwendige Unterstützung für die digitale Plattform und die Ressourcen für das Projekt zu erhalten. Die Unterstützung von Führungskräften ist von entscheidender Bedeutung, da die Erstellung einer IDP allein erhebliche Ressourcen erfordert und nicht nur eine technische Herausforderung darstellt.
Dieses Unterfangen kann kostspielig sein, insbesondere für größere Unternehmen. Im Folgenden findet ihr einige Schritte, die ein CTO unternehmen kann, um mit dem Projekt zu beginnen:
- Holet euch die Zustimmung des Managements und überlasst ihm die Verantwortung für die größere Vision.
- Stellt ein Team zusammen, und lasst es seinen Auftrag und seine Mission definieren.
- Entdeckt Möglichkeiten, die den Anwendungsentwicklungsteams einen guten Nutzen bringen
- Legt Messungen für den Erfolg fest
- Setzt Prioritäten und liefert (Software und Dokumente)
- Haltet Feedback und Ergebnisse fest
- Kommuniziert Erfolge und Herausforderungen an Sponsoren und Interessengruppen
- Überprüft die Team-Charta (Mission)
- Iteration von Schritt 3
Erfahrt mehr über die einzelnen Schritte in unserer Blogserie "If I were a CTO, I’d approach platform engineering like thisntwicklung so angehen" (oder springt direkt zu Teil zwei: Establishing a platform engineering organization).
Erfahrt, wie TV2, ein dänischer Fernsehsender und eine Streaming-Plattform, mit Platform Engineering begonnen hat.
Tipp: Verbessert die Akzeptanz mit einem Namen
Wenn ihr eurer IDP einen Namen gebt und sie zu einem Produkt macht, fühlen sich eure Teams bei der Entwicklung der Plattform engagierter und wohler. Es ist eine gute Idee, den Namen der Plattform vom Namen des Plattformteams zu unterscheiden, der die Identität und den Ethos des Teams repräsentieren sollte.
Baut nicht auf Annahmen auf – experimentiert und verbessert euch
Es kommt häufig vor, dass wir in den Kaninchenbau fallen, wenn wir auf grundlegenden Schichten aufbauen. Bevor wir unser erstes Team auf der Plattform willkommen heißen, wollen wir alles bereit haben. Schließlich wollen wir, dass die Entwickler ein großartiges User Experience haben, also müssen wir alles "fertig" haben, damit sie ihre Dienste ausführen können.
Aber in der Softwareentwicklung ist nichts jemals wirklich fertig. Von Anfang an müssen wir schrittweise Verbesserungen mit echten Entwicklern so früh wie möglich umsetzen. Andernfalls bauen wir auf Annahmen auf – und diese täuschen uns oft. Schließlich haben wir als Plattform-Team unser „Recht, mitzuspielen“ noch nicht bewiesen.
Vielleicht kommt dieses Anti-Muster von dem Wort "Plattform". Wir glauben, dass sie die gesamte Softwarebereitstellung, Sicherheit, Qualität, Überwachung und den Betrieb im Voraus unterstützen sollte. Es ist in Ordnung, über das große Ganze nachzudenken, aber fangt klein an und baut die Thinnest Viable Platform iterativ auf (ein Konzept aus dem Buch Team Topologies). Findet also den kleinstmöglichen Anwendungsfall heraus, der für die Entwickler von Nutzen ist, und baut genau diesen auf. Messt das Ergebnis und lernt, was als Nächstes zu entwickeln ist.
Wenn ihr Angst davor habt, in Produktion zu gehen (wie wir alle) und denkt, ihr müsstet noch ein wenig mehr Arbeit erledigen, widersteht diesem Drang. Wendet euch stattdessen an eure offensten Kollegen, die euch unterstützen wollen, und bietet ihnen an, die Plattform zu testen.
Wenn ihr mehr über die Herausforderungen und Fallstricke des Platform Engineering erfahren möchtet, schaut euch den Talk "Platform Engineering is Hard, and We are Doing it Wrong" auf den DevOpsDays Denmark 2023 an.
Tipp: Dokumentiert euch eure Entwicklungen
Ermittelt spezifische Fähigkeiten und setzt Prioritäten bei der Erfüllung der Mindestanforderungen auf der Ebene der Entwickler. Beginnet damit, diese Entwicklungen zu dokumentieren, denn dies wird sich in der Zukunft als wesentlich erweisen, wenn ihr mit komplexen APIs arbeiten.
Dokumentieren eures IDP
Beginnt mit der Erstellung eines Dokumentationsplans und nehmt vorweg, worauf es ankommt, basierend auf den Bedürfnissen der Entwickler, je nach den Herausforderungen, denen sie derzeit gegenüberstehen. Wenn ihr das nicht tut, werdet ihr wahrscheinlich mit den unten aufgeführten Problemen konfrontiert:
- Die Entwickler benötigen Hilfe beim Einstieg in die Nutzung eurer Plattform und ihrer Dienste.
- Ihr werdet immer wieder erklären müssen, wie bestimmte Konzepte und Ideen funktionieren.
- Die Entwickler werden bemerken, dass sie versucht haben, eurer Dokumentation zu folgen, aber bei einem der Schritte gescheitert sind, weil sie nicht die richtige Version einer bestimmten Software installiert hatten.
- Die Entwickler werden sich an euch wenden, wenn sie mit Problemen konfrontiert sind, anstatt sich auf die Dokumentation zu beziehen.
- Ihr werdet immer wieder dieselben Personen auf dieselbe Dokumentation verweisen, was jedes Mal zu wenig Erfolg führt.
Ziel ist es, einen klaren Überblick über eure Benutzer und deren Nutzen zu geben. Hebt euch die detaillierte technische Dokumentation für später auf. Entwickler suchen nach Plattformen, die einfach zu verstehen und zu benutzen sind. Wenn ihr ihre Bedürfnisse berücksichtiget und eine gute Dokumentation bereitstellet, könnt ihr mehr Entwickler für eure Plattform gewinnen.
Weitere Informationen findet ihr in unserem Blog-Beitrag über bessere Dokumentation für bessere Plattformentwickler.
Blog über bessere Dokumentationen lesenTipp: Einführung in eure Plattform für neue Nutzer
Erstellt einen „Einstiegsleitfaden“, um Erwartungen zu setzen und euren Nutzern einen klaren Überblick über die Kernfunktionen und Vorteile eurer Plattform zu geben.
Euer Leitfaden sollte prägnant sein und die Grundlagen dessen abdecken, was eure Plattform bietet. Konzentriert euch darauf, die Nutzer für eure Plattform zu begeistern, statt sie mit zu vielen Details zu überfordern. Der Leitfaden ist besonders hilfreich für Entwickler, die neu auf eurer Plattform sind, da er ihnen einen einfachen Einstieg in euer Produkt ermöglicht.
Auswahl eines Platform Engineering-Tools
Backstage? Crossplane? Argo CD? GitLab? Lasst uns hier ein wenig zurückspulen. Jede Organisation benötigt andere Werkzeuge, die für sie geeignet sind.
Technologie und Werkzeuge sind unerlässlich, damit eine Plattform ihren Nutzern einen Mehrwert bietet. Einige Entscheidungen müssen frühzeitig getroffen werden, während andere im Laufe der Zeit getroffen werden können. Die Infrastruktur, auf der die Plattform laufen soll, sollte natürlich ebenfalls in einem frühen Stadium festgelegt werden. Soll sie auf einer Cloud-Plattform, On-Premise oder in einer Mischform aufgebaut werden?
Wie bei allen anderen wichtigen Entscheidungen sollten auch hier die richtigen Interessengruppen einbezogen werden. Deshalb solltet ihr Shared Services (Finanzen, Beschaffung, Sicherheit usw.) in die Entscheidungsfindung einbeziehen.
Hier sind ein paar Dinge, die ihr beachten solltet:
- Vermeidet eine enge Kopplung: Zieht die Verwendung von Open-Source-Software und -Tools, die eine breite Palette von Drittanbieter-Integrationen bieten, einem Einheitsansatz vor. So vermeidet ihr, dass ihr in Zukunft an einen bestimmten Anbieter (oder eine bestimmte Technologie) gebunden sind.
- Akzeptiert, dass sich die Dinge ändern werden: Unabhängig davon, wie ihr euch entscheidet, werdet ihr wahrscheinlich in 2-3 Jahren migrieren wollen.
Andere Tools sind einfacher zu wählen und sollten erst dann eingesetzt werden, wenn ihr bereit seid, sie zu übernehmen. Vermeidet es, sich im Voraus auf Tools festzulegen, die ihr in naher Zukunft nicht nutzen wollt. Da sich Tools und Technologien schnell ändern, solltet ihr euch an die Lean-Praxis halten und Verpflichtungen bis zum letzten verantwortlichen Moment aufschieben (wie in dem Buch Lean Software Development beschrieben).
Es lohnt sich auch zu überlegen, wie viele Innovationstoken ihr für neue Tools ausgeben könnt. Auch Plattformteams sind von der kognitiven Überlastung nicht ausgenommen. So banal es auch klingen mag, manchmal ist es besser, mit Werkzeugen zu beginnen, mit denen man bereits Erfahrung hat und die einem zur Verfügung stehen, und dann nach und nach zu prüfen, ob sie noch zweckmäßig sind.
Teil 4
Erfolgsmessung mit einem Plattformansatz
Die meisten Optionen zur Bewertung der Softwareentwicklung konzentrieren sich auf lokale Produktivität, Qualität und Konsistenz im Lieferprozess. Für DevOps gibt es dank des DevOps Research Assessment (DORA)- Programms gut etablierte Metriken:
- Bereitstellungshäufigkeit
- Vorlaufzeit für Änderungen
- Mittlere Zeit bis zur Wiederherstellung
- Fehlerquote bei Änderungen
- Ausfallsicherheit
Diese Kennzahlen ermöglichen es uns, die Auswirkungen der DevOps-Kultur und -Praktiken in Bezug auf die IT-Leistung und -Qualität quantitativ zu erfassen. In letzter Zeit hat sich die Aufmerksamkeit darauf verlagert, zu bewerten, wie Entwickler ihre Arbeit empfinden und wertschätzen, indem ein DevX-zentrierter Ansatz zur Erfolgsmessung verfolgt wird.
Messung der Entwicklererfahrung
Die Messung von DevEx ist jedoch eine schwierige Aufgabe, da das Konzept selbst sehr weit gefasst ist. Es ist hilfreich, mit einem Rahmen zu beginnen, der die drei Kerndimensionen von DevEx identifiziert: Feedback-Schleifen, kognitive Belastung und Flow-Zustand. Diese Dimensionen betonen, dass DevEx nicht nur eine technische Angelegenheit ist – Tooling oder Workflows –, sondern in erster Linie die Wahrnehmung der Entwickler betrifft.
Entwickler sind Menschen und keine einzelne Kennzahl kann DevEx genau erfassen. Aus diesem Grund ist das Sammeln von qualitativem Feedback von Entwicklern durch Umfragen unerlässlich. Diese Art von Feedback beschreibt unter anderem die wahrgenommene Komplexität und Zufriedenheit mit der Bereitstellung von Code und der Nutzung einer Plattform. Ein Beispiel:
- Benutzerfreundliche Tools helfen Entwicklern, die Entwicklung und Bereitstellung schnell und unkompliziert zu gestalten.
- Selbsthilfefunktionen unterstützen die Unabhängigkeit und Kontrolle der Entwickler.
- Hochwertige Dokumentation hilft Entwicklern, sich in komplexen Infrastrukturen zurechtzufinden.
- Die Plattform ermöglicht die Erfassung verschiedener DevEx-bezogener Metriken.
- Die schnelle Einrichtung einer Entwicklungsumgebung fördert die Produktivität und Kreativität bei der Realisierung von Minimal Viable Products.
Letztendlich ist Platform Engineering eine Anstrengung, die über die Verbesserung der Produktivität hinausgeht und zu schnellerer Innovation führt. Durch die Verbesserung von DevEx steigert eine Plattform die Zufriedenheit der Entwickler, was wiederum die Mitarbeiterbindung, die Gewinnung von Talenten und den Erfolg bei der Umsetzung von Unternehmenszielen verbessert.
Weitere Informationen findet ihr in Nicole Forsgrens Vortrag "Why even DevOp-making our days better".
Lernt von Bankdata und Millennium BCP im Webinar: "Embrace platform engineering to deliver business value"
Lasst uns besprechen, wie euer Unternehmen von Platform Engineering profitieren kann
Bleibt auf dem Laufenden - abonniert den Newsletter
Exklusive Bildungsinhalte und Neuigkeiten aus der Eficode-Welt. Direkt in eurem Posteingang.