Das Warum des Plattform-Engineerings
Dieser Artikel ist der erste einer Reihe von Artikeln, die sich mit dem „Warum“, „Was“ und „Wie“ des Plattform-Engineerings befassen sollen.
Beim Plattform-Engineering geht es, wie bei allen anderen großen Bemühungen zur Verbesserung der Ergebnisse im Bereich der Softwarebereitstellung, um die nachhaltige Entwicklung hochwertiger Software in Geschwindigkeit und Umfang .
Lassen Sie uns im Sinne der Grundprinzipien kurz untersuchen, warum uns diese „Warums“ am Herzen liegen.
Geschwindigkeit
Teams und Organisationen möchten in der Lage sein, schnell voranzukommen, zumindest schneller als ihre Konkurrenten. Der Vorteil der Geschwindigkeit für ein Unternehmen kann aus geschäftlicher Sicht ziemlich intuitiv sein. „First-Mover-Vorteil“, „Time-to-Market“ und andere gängige Geschäftsausdrücke bringen den Wert einer schnellen Entwicklung auf den Punkt. Im spezifischen Kontext der Softwareentwicklung liegt der wohl größte Vorteil der Geschwindigkeit darin, dass sie mit einer agilen Softwarebereitstellung gepaart wird. „Agil“ zu sein bedeutet, mit einer Annahme zu beginnen, anzuerkennen, dass das, was wir denken, wahrscheinlich falsch ist, kleine Wetten abzuschließen, mit Feedback aus der realen Welt zu validieren und in Richtung des gewünschten Zustands zu iterieren. Diese Zyklen aus Hypothesen, Experimenten und Anpassungen führen zu Lösungen, die funktionieren. Um zu einem erfolgreichen Produkt zu gelangen, muss ein Entwicklungsunternehmen seine Konkurrenten übertreffen. Teams und Organisationen, die schneller erstellen, schneller messen und schneller iterieren, haben eine höhere Wahrscheinlichkeit, das Gewinnerprodukt zu erstellen. Das Gleiche gilt für die Entscheidung, welche Architektur, welches Design und welche Tools am besten funktionieren.Die Experimentiergeschwindigkeit entscheidet über den Erfolg eines Ingenieurunternehmens.
Qualität
Mangelnde Qualität bedeutet höhere Kosten. Beispielsweise sind Ausfälle in kundenorientierten Umgebungen normalerweise mit einem Geldbetrag verbunden – eine E-Commerce-Webplattform, die zehn Minuten lang nicht verfügbar ist, kann Tausende, wenn nicht Millionen an Einnahmen verlieren. Aber was noch wichtiger ist: Qualität ermöglicht Geschwindigkeit ! Es ist fast intuitiv zu denken, dass wir, um Qualität zu erreichen, einen langsamen, sorgfältigen und bewussten Ansatz wählen müssen oder dass wir die Qualität opfern können, um schnell zu sein und mehr Funktionen zu veröffentlichen. Im Software-Engineering ist dies eine falsche Wahl. Ohne Qualität gibt es keine Geschwindigkeit, und Organisationen mit hoher Qualität arbeiten immer mit hoher Geschwindigkeit. Das wissen wir aus datengesteuerten Umfragen des State of Dev Ops Reportund ihre Erkenntnisse, dass Eliteorganisationen sowohl eine hohe „Bereitstellungshäufigkeit“ als auch eine niedrige „Vorlaufzeit“ mit einer niedrigen „Change-Misserfolgsrate“ und einer niedrigen „mittleren Zeit bis zur Wiederherstellung“ kombinieren.
Nachhaltigkeit
Zumindest im Moment ist das Schreiben von Software ein kreativer Prozess, der noch in der Domäne des Menschen liegt. Und auch wenn dies weiterhin der Fall ist, müssen wir an die Menschen und Teams denken, die diese Software erstellen, um qualitativ hochwertige Software schnell und in großem Maßstab produzieren zu können. Faktoren wie Autonomie, Motivation und kognitive Belastung müssen neben den Kompetenzen bei der Zusammenstellung eines Ingenieurteams berücksichtigt werden , was noch wichtiger ist, wenn es um die Strukturierung und Entwicklung von Organisationen geht. Eine leistungsstarke Ingenieursorganisation könnte durch ihr eigenes Wachstum und ihren eigenen Erfolg zum Stillstand gebracht werden. Da die Komplexität und Größe ihrer Organisationen zunimmt, entscheidet die Fähigkeit ihrer Teams, autonom und mit nachhaltiger kognitiver Belastung zu arbeiten, darüber, ob die Organisation weiterhin qualitativ hochwertige Software schnell produzieren kann.
Skala
Im Gegensatz zu den anderen Faktoren hier legt die Skalierung den Kontext fest, in dem wir die oben genannten Ergebnisse erreichen wollen, und nicht das gewünschte Ergebnis selbst. Die Methoden, die den Erfolg auf einer Ebene von Einzelpersonen bestimmen, die Nebenprojekte durchführen, können sich stark von den Praktiken unterscheiden, die großen Ingenieursorganisationen den Erfolg ermöglichen. Organisatorische Zwänge und der Kontext spielen eine Rolle, und vielleicht ist die einzige Antwort, die Berater ihren Kunden deshalb immer geben können, „Es kommt darauf an.“
Plattformprodukte oder das, was wir besser als PaaS (Platform as a Service) kennen, wie Heroku und Fly.io , können in einem bestimmten Umfang wunderbare Wegbereiter sein, aber ausreichend große Unternehmen müssen ihre Ressourcen vertikal integrieren, damit sie Kosten, Sicherheit und Sicherheit selbst in die Hand nehmen können. Compliance und andere Governance-Anliegen. Unternehmen, die groß genug sind, können es sich nicht leisten, von Produktbeschränkungen und -einschränkungen abhängig zu sein, während ihre Konkurrenten innovativ sind.
Plattform-Engineering-Praktiken erfordern oft eine Anfangsinvestition, und die Rendite dieser Investition wächst häufig mit der Engineering-Organisation bis zu einem Punkt, an dem diese Praktiken zu einem Muss für die schnelle und skalierbare Produktion hochwertiger Software werden.
Daher müssen große Unternehmen Praktiken, Muster und Prozesse einführen, die es mehreren Teams über mehrere komplexe Subsysteme und mehrere Geschäftsdomänen hinweg ermöglichen, mit überschaubarer kognitiver Belastung und Autonomie zu arbeiten und qualitativ hochwertige Software schnell zu produzieren.

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































