# Shift-Left-Ansatz

Shift-Left-Ansatz ist die Bezeichnung für das Prinzip, dass die Bearbeitung von Aufgaben möglichst zeitlich nach vorne in einer Prozesskette verlagert werden soll.
Der Zeitverlauf wird in Prozessdiagrammen häufig als Strahl dargestellt, bei dem zeitlich vorgelagerte Tätigkeiten weiter links (englisch: left) und nachgelagerte weiter rechts angeordnet werden. Somit meint shift left das zeitliche Vorziehen von Tätigkeiten.

## Softwareentwicklung

Shift-Left wird in der Softwareentwicklung angewandt, indem Tests schon zu einem frühen Zeitpunkt stattfinden. Mögliche Fehler werden bereits während des Entwicklungsprozesses aufgedeckt, und nicht erst nach seinem Abschluss. Somit können Verzögerungen und aufwändige Nacharbeiten vermieden werden.
Hierzu werden bereits vor Beginn der Entwicklung einer Komponente die zugehörigen Tests definiert: Welche Resultate soll ein Programmteil unter gegebenen Ausgangsbedingungen liefern? Man spricht hier von Unit Tests. Die Tests werden automatisiert und können nach jeder Veränderung am Programmcode und / oder nach jedem Build der Anwendung wiederholt werden, so dass Abweichungen von der Soll-Funktion sofort auffallen. Man spricht hier auch von Continuous Testing. Vorteile sind:
* Fehler werden zeitnah entdeckt, so dass sich niemand zu einem späteren Zeitpunkt erneut in die Thematik einarbeiten muss
* Es ist leicht feststellbar, was genau nicht funktioniert
* Bereits existierender Code kann von abhängigen Modulen verlässlich genutzt werden
* Konzeptionelle Fehler können zu einem frühen Zeitpunkt deutlich leichter korrigiert werden
* Es wird vermieden, dass Tests wegen Zeitmangels gegen Projektende unterbleiben
* Korrekturen, die aus Mangel an Zeit und Ressourcen nur suboptimal ausgeführt werden, können vermieden werden
* Termine für Releases können besser eingehalten werden
Neben den traditionellen Funktionstest können auch Sicherheitstests durchgeführt werden. Hier geht es um die Frage, wie widerstandsfähig eine Softwarekomponente gegen Cyberkriminalität ist. Obwohl teilweise andere technische Verfahren zur Anwendung kommen, handelt es sich auch hier um die Anwendung des Shift-Left-Ansatzes in der Softwareentwicklung.

## Service-Management

Der Shift-Left-Ansatz wird auch verwendet, um Abläufe in Service-Organisationen zu verbessern. Traditionell gibt es für jedes Produkt und jede Art von Störung eine Gruppe von Spezialisten, welche die entsprechende Expertise besitzen, und an die sämtliche entsprechende Anliegen weitergeleitet werden. Das hat einige Nachteile, z. B.:
* Die korrekte Zuordnung eines Anliegens zur Expertengruppe könnte lange dauern oder sogar misslingen
* Ein adäquater Umgang mit Großstörungen, von denen viele Kunden betroffen sind, ist kaum möglich
* Die Expertengruppe könnte mit zahlreichen, immer ähnlichen Anfragen dauerhaft stark beschäftigt sein. Diese halten sie von ihren eigentlichen Aufgaben ab, welche üblicherweise im Bereich der Innovation liegen (Produktentwicklung, Produktverbesserung). Das ist ineffizient und führt zu schwer planbaren Verzögerungen in Innovationsprojekten
* Eine mögliche Vergrößerung der Expertengruppe mit dem Ziel der Service-Verbesserung führt zu unverhältnismäßig hohen Kosten
* Kunden könnten mit der Servicequalität unzufrieden sein und sich entsprechend anderweitig orientieren
* Mitglieder der Expertengruppe könnten frustriert die Gruppe verlassen, so dass die Organisation wertvolle Expertise verliert
Der Shift-Left-Ansatz dagegen zielt darauf ab, die meisten Anliegen schon zu erledigen, ohne eine Expertengruppe damit zu befassen.
Idealerweise soll der Kunde sich schon selbst helfen können, indem er Wissensartikel bzw. FAQ-Seiten liest und dort einen Ansatz findet, wie er sein Problem selbst lösen kann. Beispiel: Papierstau im Drucker beseitigen.
Gelingt dies nicht, und sein Anliegen besteht weiterhin, so wird er den Support kontaktieren. Nach dem Shift-Left-Ansatz wäre anzustreben, dass ihm ein Support-Mitarbeiter direkt helfen kann. Neben den Wissensartikeln und FAQ-Seiten stehen ihm dazu weitere allgemeine Dokumentation und Systemzugänge zur Verfügung, mittels derer er einfache administrative Aufgaben erledigen kann. Beispiel: Änderung der Rechnungsanschrift des Kunden.
Außerdem sollte der Support-Mitarbeiter über Unterlagen verfügen, die Einzelheiten über die Produkte enthalten, welche der Kunde nutzt. Mitunter ist der Kunde nicht in der Lage, wichtige Details selbst zu benennen, so dass eine CMDB oder ein CRM-System die fehlende Information beisteuern kann. Beispiel: Der Kunde möchte wissen, zu welchem Datum er seinen Vertrag ändern kann und welche Konditionen dann möglich wären, kennt aber seine Vertragsnummer nicht.
Der Shift-Left-Ansatz erfordert gewisse Investitionen in Aufbau und Pflege dieser Supportstruktur, führt jedoch zu besseren Ergebnissen, höherer Effizienz und geringerer Durchlaufzeit, und damit zu gesteigerter Zufriedenheit bei allen beteiligten Parteien.