ArtikelEntwicklung

Wie Platform Engineering zu einem besseren Entwicklererlebnis führt

Autorin/Redakteur: Hope Lynch, Senior Director Platform bei CloudBees/gg

Der Einsatz von Entwicklungspattformen für die Orchestrierung von DevOps-Workflows in großem Maßstab gewinnt zunehmend an Bedeutung. Dabei geht es nicht nur um Kostensenkungen, sondern vor allem um spürbare Produktivitätssteigerungen für Entwickler. Deren Effizienz wird stets wichtiger, weil Anwendungsentwicklung und Bereitstellungsprozesse zunehmend komplexer werden. Entwickler verwenden oft übermäßig viel Zeit auf die Verwaltung der komplizierten Entwicklungsumgebung, anstatt sich der Programmierung zu widmen. Jeder Moment, der mit der Pflege der Toolchain verbracht wird, schmälert die Möglichkeit, innovativ zu sein und außergewöhnliche Anwendungen zu entwickeln.

Bild: CloudBees

Im Laufe der Jahre haben DevOps-Teams sorgfältig die Workflows automatisiert, die von Entwicklern bei der Erstellung von Anwendungen eingesetzt werden. Diese Bemühungen richteten sich in erster Linie an relativ kleine Teams, die jeweils ihre eigenen, maßgeschneiderten Workflows entwarfen. Die Einführung einer standardisierten Suite von Workflows, die von einem Plattform-Engineering-Team entwickelt wurden, hat das Potenzial, die Anwendungsentwicklung in allen Unternehmen zu verbessern und letztlich die Effizienz und Zufriedenheit der Entwickler zu verbessern.

Plattform-Engineering bietet einen systematischen Entwurf für die Vereinheitlichung des DevOps-Workflow-Managements in einem Umfang, der es den Entwicklern ermöglicht, sich stärker auf die Entwicklung innovativer Anwendungen zu konzentrieren. Durch die Einrichtung einer standardisierten Reihe von Prozessen zur Automatisierung der Toolchain-Implementierung wird die kognitive Belastung der Entwickler gesenkt, weil sie weniger Zeit für den Aufbau und die Pflege der für die Programmierung erforderlichen Umgebung aufwenden müssen.

Das ultimative Ziel des Plattform-Engineerings ist es, ein integriertes Ökosystem zu schaffen, das auf die Entwicklung, das Testen und die Aktualisierung von Anwendungen zugeschnitten ist. Dieses Framework ermöglicht es den Entwicklern, ihre Tooling-Anforderungen flexibel selbst zu erfüllen und sich dabei an klar definierten Richtlinien zu orientieren. Dies bedeutet nicht, dass ausschließlich bestimmte Tools eingesetzt werden müssen, sondern unterstreicht vielmehr die Vorteile, die Entwickler durch die Einhaltung allgemein anerkannter DevOps-Standard-Workflows erzielen. Auch wenn die Festlegung dieser Standards aus der Sicht eines Entwicklers einige Kompromisse erforderlich machen kann, werden die meisten Entwickler, sobald die Vorteile quantifiziert sind, wahrscheinlich erkennen, dass der kollektive Nutzen ihre individuellen Präferenzen überwiegt.

Dies sind einige Beispiele für den Mehrwert des Plattform-Engineering und Hinweise zu seiner Umsetzung:

  • Wirtschaftliche Auswirkungen der Entwicklerproduktivität: Die Verbesserung der Entwicklerproduktivität durch Plattform-Engineering hat weitreichende wirtschaftliche Auswirkungen. Unternehmen können ihren Return-on-Investment signifikant verbessern, wenn Entwickler schneller hochwertige Anwendungen liefern. Eine kürzere Time-to-Market vergrößert den Wettbewerbsvorteil eines Unternehmens und beschleunigt die Umsatzgenerierung.
  • Cloud Native und Microservices-Architektur: Plattform-Engineering geht häufig mit einer Verlagerung hin zu Cloud Native Architecture und Microservices einher. Es befähigt Teams, Cloud-Dienste nahtlos zu integrieren, Anwendungen zu skalieren und Microservices effektiv zu verwalten. Die dem Plattform-Engineering eigene Flexibilität passt gut zur Agilität von Microservices.
  • Gleichgewicht zwischen Standardisierung und Benutzerdefinierung: Das richtige Gleichgewicht zwischen Standardisierung und Benutzerdefinierung ist entscheidend bei der Umsetzung der Plattformtechnik. Standardisierung strafft die Arbeitsabläufe und vereinfacht die teamübergreifende Zusammenarbeit, während die Individualisierung gewährleistet, dass spezifische Projektanforderungen erfüllt werden. Dieses Gleichgewicht fördert zudem die breite Akzeptanz der Verfahren.
  • Feedback-Schleifen und kontinuierliche Verbesserung: Erfolgreiche Entwicklung ist ein iterativer Prozess. Feedback-Schleifen sind unerlässlich, um die Zufriedenheit der Entwickler zu messen, Engpässe zu erkennen und die Arbeitsabläufe im Laufe der Zeit zu verbessern. Kontinuierliche Verbesserungsmechanismen stellen sicher, dass die Plattformen an technologische Trends und Entwicklerpräferenzen angepasst werden können.
  • Governance und Einhaltung von Vorschriften: Auf einer Entwicklungsplattform können Governance- und Compliance-Mechanismen implementiert werden, um die Sicherheit und die Einhaltung von Vorschriften zu gewährleisten. Standardisierte Arbeitsabläufe sollten Sicherheitsprüfungen, Codeüberprüfungsprozesse und Compliance-Validierungen umfassen, um die Risiken zu minimieren, die mit schnellen Entwicklungszyklen verbundenen sind.
  • Integration von KI und Automatisierung: Die Integration von künstlicher Intelligenz und Automatisierung in das Plattform-Engineering kann dessen Effektivität erheblich steigern. KI-gesteuerte Analysen ermöglichen Einblicke in die Effizienz von Arbeitsabläufen sowie das Verhalten von Entwicklern und bieten datengestützte Optimierungen. Die Automatisierung kann die Geschwindigkeit und Genauigkeit von Bereitstellung, Tests und Monitoring weiter verbessern.
  • Kulturelle Veränderungen: Die Umstellung auf Plattform-Engineering erfordert einen Kulturwandel innerhalb einer Organisation. Sie erfordert die Förderung einer Mentalität der Zusammenarbeit, des Wissensaustauschs und des kontinuierlichen Lernens in den Teams. Die Förderung einer Kultur, die sowohl Innovation als auch die Einhaltung von Best Practices unterstützt, ist für den Erfolg von Plattform-Engineering entscheidend.
  • Schulung und Förderung: Da mit Plattform-Engineering neue Tools und Verfahren eingeführt werden, sollten Unternehmen in die Weiterbildung ihrer Entwicklungsteams investieren. Schulungsprogramme und zusätzliche Ressourcen versetzen die Entwickler in die Lage, das Plattform-Engineering-Ökosystem effektiv zu nutzen.
  • Messgrößen und Leistungsindikatoren (KPIs): Die Festlegung klarer Messgrößen und Leistungsindikatoren ist entscheidend, um die Auswirkungen des Plattform-Engineerings zu quantifizieren. Messgrößen wie die Häufigkeit der Codebereitstellung, die Vorlaufzeit, die Fehlerquote und die Zufriedenheit der Entwickler geben Aufschluss über die greifbaren Vorteile der Plattform-Engineering-Verfahren.
  • Weiterentwicklung und Integration der Toolchain: Die Toolchain sollte an den technologischen Fortschritt angepasst werden können. Entwicklungswerkzeuge, die eine überragende Produktivitätssteigerung aufweisen, sollten nahtlos in das bestehende Ökosystem integriert werden. So wird sichergestellt, dass sich die Toolchain im Einklang mit den Bedürfnissen der Entwickler weiterentwickelt.

Es wird immer Entwickler geben, die mit neuen Werkzeugen experimentieren wollen. Aber die Gründe für die Integration bestimmter Werkzeuge in das Plattform-Engineering übersteigen persönliche Interessen. Neue Werkzeuge können durch ihr Potenzial zur Verbesserung der Entwicklerproduktivität gerechtfertigt sein. Wenn sie sich bewähren, können solche Tools schließlich in die Toolchain der Plattform aufgenommen werden, die vom zuständigen Team überwacht wird.

Gegenwärtig trägt jedoch die willkürliche Auswahl von Entwicklertools in verschiedenen Unternehmen dazu bei, die Kosten für die Anwendungsentwicklung in die Höhe zu treiben und die Bereitstellungszeiten zu verlängern. In Anbetracht des kooperativen Charakters der modernen Anwendungsentwicklung verschärfen abweichende Tooling-Entscheidungen zwischen den Teams die Reibungen im Entwicklungsprozess.

Unternehmen, die Plattform-Engineering einführen wollen, können auf Skepsis stoßen. Viele Teams sind zu DevOps übergegangen, weil sie die Starrheit der alten „Wasserfall-Entwicklungsmethode“ überwinden wollten. Ein Plattform-Engineering-Team muss schnell beweisen, dass es in der Lage ist, DevOps-Workflows zu skalieren, ohne Innovationen zu behindern.

Glücklicherweise helfen die Fortschritte in den Bereichen Analytik, digitale Zwillinge und KI, die Bildung und Einhaltung von technischen Plattformstandards zu erleichtern, die die Produktivität der Entwickler optimieren. Je mehr Entwickler den Zeitgewinn für die Programmierung sehen, desto empfänglicher sind sie für den neuen Ansatz. Darüber hinaus schaffen automatisierte Prozesse mehr Zeit für Softwaretests und verbessern so die Qualität und Sicherheit von Anwendungen. Im Laufe der Zeit werden erfahrene Entwickler insbesondere für Unternehmen arbeiten wollen, die durch Plattform-Engineering ein besseres Arbeitserlebnis bieten.

Jedes Unternehmen wird den Übergang zum Plattform-Engineering unterschiedlich und in seinem eigenen Tempo gestalten. Der Versuch, eine gesamte IT-Kultur über Nacht zu verändern, ist nicht praktikabel. Plattform-Engineering-Teams tun gut daran, sich auf eine ausgewählte Gruppe von Entwicklerteams zu konzentrieren, die ihre positiven Erfahrungen im Laufe der Zeit im gesamten Unternehmen weitergeben können. Auf diese Weise wird die Akzeptanz von Plattform-Engineering organisch wachsen und nicht aufgezwungen.

Bis dahin sollten DevOps-Teams gemeinsam optimale Plattform-Engineering-Praktiken festlegen, die umgehend implementiert werden und als Grundlage für künftige Fortschritte dienen können. Eine gut strukturierte Roadmap ist unabdingbar.