In diesem Artikel erklären wir dir was Shift Left genau ist und was für Prinzipien dafür nötig sind, wie man das Ziel von Shift Left erreicht und was die Vorteile davon sind.
In der letzten Folge haben wir Kanban erklärt. Wir sind dabei auf die Prinzipien und Praktiken von Kanban eingegangen und haben natürlich auch erklärt, wie ein Kanban Board aussehen kann.
Schau also unbedingt hier vorbei, falls darüber noch mehr wissen willst 😉
Als erstes möchten wir klären, was Shift Left in DevOps eigentlich genau bedeutet. Dabei hilft es, wenn man den Arbeitsfluss, also die einzelnen Schritte eines Entwicklungsprozesses, sich vor Augen hält. Im Englischen wird dies als Software Development Life-Cycle (SDLC) bezeichnet und wir haben dir das mal in der nachfolgenden Grafik visualisiert.
Man erkennt sehr schnell, dass die „Qualitätssicherung“, nämlich z.B. das Testen sehr weit am Ende (= Rechts) steht in diesem Zyklus. Das bedeutet, dass man erst sehr spät merkt, dass ob es Qualitäts– oder andere allgemeine Probleme, wie z.B. Integrationsprobleme, im Code gibt. Das heißt der Fokus auf die Qualität des Endprodukts sieht während dieses Zyklus klassischerweise ungefähr so aus:
Warum benötigen wir mehr Shift Left?
Jeder der bereits in der Produktentwicklung, egal ob in der IT oder im produzierenden Gewerbe, gearbeitet hat, dass es immer einfacher ist Fehler zu beheben, je früher diese im Prozess gefunden werden. Im Idealfall landen diese dann erst garnicht im Produkt. Dadurch werden auch die Kosten pro Fehler reduziert, da der Fehler entweder viel kleiner ist oder viel weniger Instanzen betrifft.
Das Ziel von Shift Left:
Das Ziel von Shift Left ist es also:
Eine hohe Produktqualität so früh wie möglich im Entwicklungsprozess zu erreichen.
Das bedeutet, dass (im Fall von Softwarentwicklung) viel weniger Probleme oder Bugs erst in der Produktionsumgebung gefunden werden, sondern viel früher. Dadurch ist es auch viel leichter das Problem bzw. den Bug zu fixen.
Der Fokus auf Qualität sieht in einem Shift Left Modell ungefähr so aus:
Aber wie genau kann man das umsetzen? Was für Best-Practices gibt es?
Shifting Left bezeichnet allgemein, dass ein Schritt früher im Prozess durchlaufen werden soll. Im Bezug auf Shift Left in der Softwareentwicklung und speziell aus dem DevOps-Gedanken heraus bedeutet das konkret, dass die Tests viel früher im Entwickungsprozess stattfinden als beim klassischen Vorgehen und vor allem auch kontinuierlich durchgeführt werden. Continuous Testing ist hier das Stichwort. Aber was genau ist Continuous Testing?
Continuous Testing is the process of executing automated tests as part of the deployment pipeline to obtain immediate feedback on the business risks associated with a software release candidate. – DevOps Foundation Kurs-Guide
Zu Continuous Testing gehören verschiedene Tests, die regelmäßig während des gesamten Entwicklungsprozesses durchgeführt werden müssen. Diese sind:
Speziell die beiden ersten Automatisierungen sind für Elite-Unternehmen laut dem State of DevOps Report von 2019 besonders entscheidend.
Das Ziel ist es diese Tests so automatisiert wie möglich durchzuführen und gleichzeitig eine möglichst hohe Testabdeckung (engl.: Test Coverage) zu haben. Test-Driven Development (TDD) ist hier das Ziel. Bei der Testabdeckung muss man sich allerdings immer im Klaren sein, dass eine unrealistisch hohe Testabdeckung (z.B. +95%) nicht für alle Anwendungen praktikabel bzw. umsetzbar ist.
Continuous Testing bedeutet dabei auch die richtigen Tests zum richtigen Zeitpunkt im Entwicklungsprozess durchzuführen, ohne dabei Flaschenhälse im System zu erzeugen. So werden zum Beispiel einfache und schnell auszuführende Unit Tests häufig und sehr früh verwendet, da sie die Entwicklung nicht unnötig lange blockieren.
Das zweite Prinzip, das wir für Shift Left aus DevOps benötigen ist Continuous Deployment. Continuous Deployment automatisiert dabei das Deployment und die Bereitstellung des neuesten Release-Kandidates.
Grundlage dafür ist, dass die Tests sich gut in die verwendeten CI/CD-Tools (wie z.B. Jenkins) integrieren lassen. Diese Testskripte sollten bei jedem Build ausgeführt werden und falls diese fehlschlagen, sollte der Build auch fehlschlagen. Das stellt sicher, dass kein neues Feature den Code kaputt macht.
Hierfür ist eine enge Zusammenarbeit der Entwicklerteams mit den Operationsteams nötig, damit sich diese Deployment-Pipelines oder Prozesse nicht unterscheiden. Der Idealfall, aus Sicht von DevOps, ist natürlich, dass die Teams, die die Features entwickeln auch für den Betrieb verantwortlich sind. „You build it. You run it.“
Dieser Prozess des Shift Left und damit verbunden Continuous Testing und Continuous Deployment helfen uns dabei Risiken früh zu finden, zu analysieren und zu beheben und damit die Qualität des Produkts deutlich zu steigern.
Bei Shift Left geht es also um die Problemvermeidung, anstatt nur das Auffinden von Problemen.
Wir wollen hier nun nochmal die ganzen Vorteile von Shift Left zusammenfassen.
Je später Probleme und Bugs gefunden werden, desto mehr Kosten entstehen dadurch. Durch die Einführung von Shift Left wird sichergestellt, dass diese so früh wie möglich während der Entwicklung gefunden werden und dadurch Kosten gespart werden können.
Da durch Continuous Testing nun Tests mehrmals täglich möglich sind, wird natürlich mehr getestet und dadurch auch mehr Fehler gefunden als sonst. Dies verbessert die Qualität des Endprodukts und führt natürlich auch direkt zu zufriedeneren Kunden.
Da ein Bug (im Idealfall) kurz nach dessen Entstehung entdeckt wird, weiß der/die Entwickler(in) noch sehr genau, was sie an der Stelle des Codes getan hat und kann somit den Bug deutlich schneller fixen. Wenn sie diesen Fehler erst Tage oder gar Wochen später entdeckt und eigentlich schon an einem neuen Feature arbeitet, wird dieser Bug-Fix deutlich länger dauern. Das sorgt dann natürlich auch für höhere Kosten.
All die bereits genannten Vorteile und die Verwendung von Continuous Testing und Continuous Deployment führen dazu, dass es weniger Überraschungen und aufwändige Bug-Fixes gibt. Dies ermöglicht eine deutlich bessere Vorhersage der Timeline. Nur so ist es möglich, dass man nachhaltig profitabel bleibt.
All das führt zu einem riesigen Vorteil für das Unternehmen:
Einem klaren Wettbewerbsvorteil gegenüber der Konkurrenz.
Und wahrscheinlich ist diese Liste nichtmal vollständig, weil es noch weiter Vorteile gibt, die uns bei der Arbeit mit unseren Kunden noch gar nicht aufgefallen sind.
Du willst wissen, wie man es schafft erfolgreich auf Shift Left umzustellen und was dafür nötig ist? Schreib uns gerne einen Kommentar, dass dich das auch interessiert 🙂 .
Und am besten meldest du dich einfach direkt für den Newsletter an, um den Artikel dann auch nicht zu verpassen 😉 .
Shift Left ist ein sehr wichtiges Konzept von DevOps, das gleich zwei Praktiken, nämlich Continuous Testing und Continuous Deployment, verwendet. Damit ist Shift Left ein ganz entscheidender Schritt auf dem Weg zu einem Unternehmen, das voll von den Gedanken von DevOps profitiert und damit wettbewerbsfähig bleibt bzw. wird.
Um Shift Left erfolgreich im Unternehmen einführen zu können und damit die oben genannten Vorteile zu erzielen, benötigt man erfahrene Coaches, die wissen auf was man achten muss bei der Einführung und was die entsprechenden Voraussetzungen dafür sind.
Wenn du dich selbst in diesem Bereich weiterentwickeln willst, dann schau unbedingt bei unseren Devops-Trainings vorbei.
Schreib uns das auch unbedingt in die Kommentare und wir werden dir gerne und ausführlich antworten!
Damit du all die gelernten Begriffe auch schnell nachschauen kannst, haben wir dir zusätzlich einen kostenlosen Glossar auf Deutsch mit +230 Begriffen zu DevOps, Agile und Lean mit den entsprechenden englischen Fachbegriffen (macht das Googeln meist einfacher, da es noch sehr wenige vollständige deutsche Blogs zu diesen Themen gibt) erstellt.
Und auch der ist komplett kostenlos. Du findest den Glossar hier:
In der nächsten Folge erklären wir dir, was ein gutes Team ausmacht. Egal ob es in einem Unternehmen ist, dass DevOps, Agile oder Lean verwendet.
Falls du das nicht verpassen willst und ein noch besserer Scrum Master/Agile Coach/Product Owner/Entwickler oder Leader werden willst, melde dich jetzt für unseren kostenlosen Newsletter an:
Und falls du unsere Experteninterviews und alle anderen Podcast-Folgen als erster bequem unterwegs hören willst, abonnier einfach unseren Podcast mit folgendem RSS-Feed:
Du stehst auf bewegtes Bild und zusätzliche Grafiken und Visualisierungen? Dann ab auf unseren YouTube-Channel „Agile Coach Academy“.
Abonniere den Channel und verpasse kein Video oder Experteninterview mehr.
Wie immer freuen wir uns auch wenn du diesen Artikel mit deinen Freunden, Kollegen und Bekannten teilst und uns dein ehrliches Feedback in den Kommentaren schickst.
Wir freuen uns auf dich in der nächsten Folge.
Deine Agile Coach Academy Gründer Ben und Alex
Mit * markierte Links sind Affiliate-Links mit denen du uns unterstützt dir weiterhin so guten Content zu liefern.
Vielen Dank für deinen Support 🙂
Note: Wir gehen keine Affiliates mit Amazon ein (auch wenn es hier mehr Möglichkeiten gäbe für uns), da die Mitarbeiter hier nicht fair behandelt werden und wir das nicht unterstützen!