Was ist ein "gehendes Skelett"?


42

Eines meiner agilen Teams hat in der Anfangsphase seines Projekts einen interessanten Ansatz gewählt. Anstatt das Projekt mit einem Sprint 0 zu starten, in dem sie die Code-Infrastruktur einrichten und sich für die Lösungsarchitektur entscheiden, haben sie damit begonnen, ein "Walking Skeleton" zu erstellen, das sie als DevOps-Praxis bezeichnen.

Dies scheint darauf zurückzuführen zu sein, dass etwas sehr Kleines erstellt wird (im Fall einer API ein einzelner Endpunkt, der gerade zurückgegeben wird 200-OK), dass dies in einer kontinuierlichen Integration funktioniert und dass die Pipeline für die kontinuierliche Bereitstellung so aufgebaut wird, dass dies in jeder der Umgebungen bereitgestellt wird:

Entwicklung ► Test ► UAT ► Vorproduktion ► Produktion

Dabei haben sie es geschafft, viele der nicht funktionalen Anforderungen anzukreuzen, die hätten übersehen werden können, wenn Bereitstellungen auf die letzte Minute beschränkt gewesen wären.

Meine Frage lautet: Was ist ein "gehendes Skelett" und welchen Nutzen hat es für ein agiles Team, das DevOps-Praktiken befolgt?


1
Lieben Sie dieses, ich kann eine tatsächliche (letzte Woche) Sache teilen und was die Resultate von diesem nach dem Mittagessen waren
Tensibai

Antworten:


38

Ein "Walking Skeleton" ist eine Form des "Proof of Concept" Ihres grundlegenden Architekturkonzepts. Während sich ein Proof of Concept in der Regel mehr auf eine einzelne Funktionalität konzentriert, ist ein "Walking Skeleton" eine minimalistische End-to-End-Implementierung. Ein "gehendes Skelett" ist kein Entwurf Ihres Konzepts (nur ein "Skelett"), sondern kann wirklich ausgeführt und versendet werden (es kann "gehen": O) und sollte mit Tests begleitet werden.

Alistair Cockburn hat es beschrieben (und wird oft zitiert):

Ein gehendes Skelett ist eine winzige Implementierung des Systems, die eine kleine End-to-End-Funktion ausführt. Die endgültige Architektur muss nicht verwendet werden, sie sollte jedoch die wichtigsten Architekturkomponenten miteinander verbinden. Die Architektur und die Funktionalität können sich dann parallel entwickeln.

Der Vorteil für DevOps ist, dass ein "Walking Skeleton" zu Beginn des Projekts entwickelt werden sollte und funktionierender, versandfähiger und testbarer Code entsteht . Auf diese Weise kann DevOps zu Beginn des Projekts eine vollständige kontinuierliche Integrationskette aufbauen, anstatt in der Endphase des Projekts eingebunden zu werden. Dies bedeutet, dass auftretende Probleme frühzeitig angegangen werden, anstatt am Ende eilig zu arbeiten.


4
Nun, es ist nicht nur die CI-Kette, sondern es könnte buchstäblich die End-to-End-Produktions-Pipeline abdecken, einschließlich Lieferung und Bereitstellung. Ein Skelett davon - Sie müssen nicht alle QS-Überprüfungen für das Endprodukt an Tag 1 durchführen, sondern können diesem Skelett schrittweise die Überprüfungsstufe "Fleisch" hinzufügen, da sich die Geschichte "Fleisch" auf dem Laufskelett ansammelt.
Dan Cornilescu

1
Ich mag den Begriff "Fleisch", passt sehr gut zu der verwendeten Terminologie: P
7ochem

3
Gute Antwort. Ich denke, es ist die Lieferung Pipeline-Äquivalent eines Minimums lebensfähigen Produkts.
Adrian

4
Dies klingt ähnlich wie ein Produkt mit minimaler Lebensfähigkeit, aber auf einer granulareren Ebene - vielleicht "minimale Lebensfähigkeit". Die Rückkehr von 200 von einem Dienst, nur um es zum "Laufen" zu bringen, klingt für mich wie ein Stummel.
Dave Swersky
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.