Ihre Herausforderungen beim Ausliefern von Software

Continuous Deployment bedeutet, jeden integrierten Commit sofort in die Produktionsumgebung auszurollen. Diese Praxis gilt als die Königsdisziplin bei der Umsetzung von DevOps. Sie minimiert nicht nur die Wartezeit, welche neue Features in der Pipeline ausbremst. Sie ermöglicht auch schnellstes Reagieren, falls Probleme mit der Anwendung auftreten oder ein Bug in der Produktion entdeckt wurde. Es gilt das Prinzip: besser flink sein als unerreichbarer Perfektion nachzurennen. Leider gibt es eine Menge Gründe, die Ihr Team daran hindert, so häufig und schnell auszurollen. Zum Beispiel manuelle Qualitätssicherung durch ausgelagerte Test-Teams. Oder Abhängigkeiten zu anderen Teams, die den Releaseprozess verlangsamen. Egal worin der genaue Grund liegt: es ist schlecht fürs Geschäft. Der State of DevOps Report zeigt immer wieder, dass erfolgreiche Firmen viele Male pro Tag produktiv deployen.

Aber worin genau liegt das Problem langsamer Releases? Jedes Software-Unternehmen befindet sich durch das Internet in einem globalen Konkurrenzkampf. Gewinnerin ist nicht die Firma, welche die beste Idee hat. Gewinner:in ist, wer eine gute Idee am schnellsten marktreif bekommt. Gerade bei Unsicherheiten in den Details hilft dabei frühes Feedback der Endnutzer, Experimente und das Sammeln von Erfahrung. Ihr Produkt ist bereits am Markt etabliert? Kein Problem, diese grundlegenden Vorgehensweisen funktionieren auch für einzelne Features.

Komplexität von Releases.Quelle: eigene Darstellung

Wie wird man schneller?

Beschleunigen bedeutet Widerstände abbauen. Das klingt zunächst einfach. Aber was bremst Ihren Release Prozess eigentlich? Aufgrund der sehr subjektiven Wahrnehmung kann es in einem Team vorkommen, dass diverse Ursachen als sprichwörtliche Bremsen identifiziert werden können. Sind es technische Schulden? Schwierigkeiten beim Handling großer monolithischer Deployments? Oder wird das Ausrollen der Artefakte durch organisatorische Schritte gehemmt? Die Angst vor fehlerhaften Deployments verlangsamt ebenfalls oft: niemand möchte die Schuld an einem kostspieligen Ausfall tragen. Das ist nur verständlich.
Betrachten wir ein Beispiel: Das Entwicklungsteam arbeitet sehr gut und hat das Deployment auf Knopfdruck automatisiert. Doch vor jedem Release muss die QA-Abteilung eine langwierige Abnahme durchführen. Damit bremst ein für das Entwicklungsteam externer Faktor die Entwicklung ständig aus. Wie kann dieses Hemmnis gelöst werden? Eine Möglichkeit ist die Integration der Qualitätssicherung in den Entwicklungsprozess. Dafür gibt es zum einen technische Lösungen durch automatisierte Tests. Zum anderen können die Domänenexperten schon bei der Planung eines Features einbezogen werden. Auch durch ständigen Austausch zwischen Entwickler:innen und Fachabteilung kann man Probleme frühzeitig vermeiden.
Je nach Art des Flaschenhalses kommen verschiedene Techniken zum Einsatz. Automatisierung hilft, um langwierige technische Arbeiten zu eliminieren. Methoden wie Split Testing und Canary Releases beschleunigen die Software-Auslieferung. Aber technische Lösungen funktionieren nicht für organisatorische Probleme. Hier setzt man auf Kooperation und Verschlankung.

Es geht um Geschwindigkeit…

Delivery Pipeline für eine Lean Production.Quelle: eigene Darstellung

Konkrete Widerstände, die Sie abbauen sollten

  • Umfangreiche manuelle Qualitätssicherung
  • Angst vor Ausfällen
  • Schlechtes oder zu komplexes Dependency-Management („Dependency Hell“)
  • Blaming-Kultur
  • Veraltete Tools
  • Fehlendes Wissen & Erfahrung

Ihre Vorteile durch schnellere Releases

Schneller auszuliefern als die Konkurrenz ist offensichtlich ein großer Vorteil. Schlagen Sie Ihre Mitbewerber am Markt, indem Sie schneller mit neuen Features bei den Benutzer:innen punkten. Doch nicht nur der direkte Vergleich mit den Wettbewerbern macht den Vorteil deutlich. Vorzüge ergeben sich auch bei ausschließlicher Betrachtung des eigenen Unternehmens.

  • Im Fehlerfall nicht erstarren: Keine Produktivumgebung ist zu 100 Prozent vor Ausfällen gefeit. Dabei spielt es keine Rolle, ob ein Ausfall durch interne Fehler oder externe Quellen herbeigeführt wurde. Tritt dieser Fall ein, gilt es schnell zu handeln, um die Downtime der Systeme so gering wie möglich zu halten. Eine funktionierende Delivery Pipeline, welche die Grundlage für häufige Releases darstellt, erleichtert diese Fehlerbehebung ungemein.
  • Customer Centricity wirklich umsetzen: Auf Kundenfeedback zu reagieren und Vorschläge einzusammeln ist das eine. Diese umzusetzen und auch zeitnah zu liefern das andere. Natürlich ist dazu nicht allein die Delivery-Strecke gefragt. Im Einklang mit den umgebenden Entwicklungsprozessen ist eine schnelle Auslieferung aber unabdingbar.
  • Schmerzfreie Delivery Experimente ermöglichen: Kann man neue Releases schnell aus- und auch wieder zurückrollen, werden Experimente bezahlbar. Testen Sie, ob und wie Ihre Kunden Features akzeptieren und verwenden Sie das Feedback direkt in Ihrer Entwicklung.

Unsere Dienstleistungen für Pipeline Assessment

Gerne schauen wir auch Ihren Delivery-Prozess an und finden gemeinsam mit Ihnen heraus, wo dieser verbessert werden kann. Mit unserer methodischen Vorgehensweise finden wir die Bremsen und zeigen Ihnen einen Weg auf, diese zu lösen:

  1. Vorbesprechung
    Kostenfrei unterhalten wir uns über Ihre ganz individuelle Problemstellung und ermitteln so, ob das Pipeline Assessment die richtige Lösung für Ihre Herausforderung darstellt.
  2. High Level Workshop mit Bestandsaufnahme
    Wir erarbeiten gemeinsam ein Bild Ihrer aktuellen Build- und Delivery-Pipeline. Idealerweise nehmen an diesem Workshop ein Vertreter oder eine Vertreterin der Architekt:innen, der Test- und Infrastruktur-Verantwortlichen sowie Personen eines Entwicklungs-Teams teil. Ziele des Workshops sind es, die Ist-Situation gut zu verstehen und Ihre Ziele abzustecken. Dabei gehen wir bereits auf die organisatorischen und technischen Hürden ein, die sich im Laufe des Workshops herausstellen.
  3. Pain Point Analyse
    Wir ermitteln, wo der Schuh genau drückt. Oft sind Technik, Teamverantwortung und Organisationsstrukturen unweigerlich verwoben. Mit gezielten Fragen entwirren wir Schritt für Schritt die Zusammenhänge. Die Ergebnisse der Pain Point Analyse leiten uns im folgenden Drill Down.
  4. Drill Down
    Zusammen mit Ihren Mitarbeiter:innen ermitteln wir, woher die Schmerzen kommen. Schlüssel ist unsere „blameless Gesprächsatmosphäre“ und konstruktive Vorgehensweise. Ihre Mitarbeiter:innen müssen sich dabei wohlfühlen, alle Schwierigkeiten offen anzusprechen. Nur so können wir die besten Handlungsempfehlungen ermitteln. Diese Gespräche finden meist in kleineren Gruppen statt.
  5. Report und Empfehlungen
    Abschließend zu unserem gesamten Assessment präsentieren wir Ihnen die Ergebnisse. Dazu geben wir Ihnen direkte Einblicke in die Ergebnisse unserer Analysen. Wir besprechen im Detail, welche Hindernisse wir entdeckt haben und welches Gewicht diesen zukommt. In Begleitung zur Analyse geben wir Ihnen individuelle Handlungsempfehlungen. Welches Problem sollten Sie als erstes angehen? Wie können Sie messen, ob die angestrebte Lösung Erfolg hat? Diese Fragen beantworten wir Ihnen.

Wie geht es weiter?

Je nach Ergebnissen des Assessments, begleiten wir Sie gerne weiter auf Ihrem Weg zu schnelleren Releases. Unter anderem stehen wir Ihnen mit folgenden Services gerne zur Verfügung:

  • Teststrategie-Beratung
  • CI/CD Coaching
  • Story Slicing Workshop
  • Beratung zu Infrastrukturautomatisierung und Configuration Management
  • Cloud-Migrationen
  • Anwendungsmodernisierung

Ihre Ansprechpartner

Profilbild Dominik Pabst

Dominik Pabst

Senior Consultant

Axel Schüssler

Managing Consultant
Inhaltsverzeichnis
Dominik Pabst Senior Consultant
Profilbild Dominik Pabst