Law & Order für DevOps
Zusammenfassung eines Beitrags in der Fachzeitschrift Objektspektrum 6/2020 von Ulrich Bode.
Kompromisslose Qualität als Fundament der Agilität
Agilität ist der alles überragende Hype. Die hohen Erwartungen von besserer Software dank Agilität erfüllen sich allerdings nicht immer. Unternehmen beachten die Erfolgsfaktoren für DevOps zu wenig. Agile Strukturen erfordern als Fundament ein striktes Qualitätsregime. Mehr Law & Order in Entwicklung und Betrieb von Software bringt die Rendite, die Agilität verspricht.
„Agilität” ist allzu oft nur ein wohlklingender Ersatz für das altbekannte Chaos. Man schmückt sich damit, hat aber den Kern nicht verstanden. Ohne eine weitreichende Automatisierung mit hoher Qualität als Fundament ist Agilität nur Business-Esoterik.
Es ist aus dem Fokus geraten, dass qualitative Arbeit auch Ordnung und Disziplin erfordert. Softwareentwicklung ist keine Wellness-Party, sondern bedarf konsequenter und mühseliger Anstrengungen. Unterzieht man sich dieser Mühen nicht, belastet jede Codeänderung die Qualität.
Diesen Niedergang muss eine konsequente Law-and-Order-Politik bekämpfen. Bei Ausfällen und Softwarefehlern gilt das Prinzip der Null-Toleranz. Law-and-Order wird – besonders in der Politik – fehlverstanden. Manche verwechseln dies mit Lügen und Chaos, andere verstehen darunter verschärfte Maßregelungen. Es geht nicht um Konsequenzen für Personen, sondern um konsequente Prozesse.
Regel und ihre disziplinierte Umsetzung sind der Unterbau für Agilität.
Entscheidend für die leistungsfähige Entwicklung und den stabilen Betrieb von Software ist die disziplinierte Umsetzung einiger Schlüsselfaktoren:
- Zero-Downtime: Systemumgebungen sind immer verfügbar. Zu 100 Prozent und nicht 99-Komma-Irgendwas-Prozent.
- Zero-Bug: Fehlerhafter Code ist umgehend zu beseitigen. Wer Defect Management betreibt, um Bugs zu verwalten und zu priorisieren, macht grundsätzlich etwas falsch. Zero-Bug erfordert eine konsequente Fehlerkultur der Null-Toleranz sowie die Fähigkeit, umgehend im Betrieb einen fehlerfreien Zustand wiederherzustellen und sodann den Fehler in der Entwicklung zügig zu beseitigen.
- Skill Pump: Eskalation ist keine Bestrafung, sondern ein Managementinstrument, wenn eine Leistungszusage auf der bestehenden Grundlage nicht eingehalten werden kann. Dann müssen zusätzliche Kompetenzen bereitgestellt werden, etwa Entscheidungsbefugte oder Wissensträger. Man pumpt zusätzliche Skills in die Aufgabe, um ein Problem zu lösen.
- Automatisierte Pipeline: Die Automatisierung der Liefer-Pipeline von Build über Test bis zum Deployment vermeidet manuelle Fehler und erhöht die Liefergeschwindigkeit erheblich. Ziel ist es, auf Dev-Seite jederzeit lieferfähig zu sein (niedrige Durchlaufzeit) und auf Ops-Seite jederzeit verfügbar zu sein (Ausfallrate 0 Prozent). Automatisierung ist die Grundlage für Continuous Quality und Agilität.
- Power by Design: Eigenschaften wie Resilienz, Sicherheit oder Skalierbarkeit werden schon beim Design eines Systems eingebaut und nicht erst später mühselig dem System aufgezwängt. Gutes Design, eine durchdachte Architektur, macht Systeme leistungsfähiger und kostengünstiger.
- Shift Left: Fehler in der Entwicklung werden so früh wie möglich erkannt und gelöst.
- Shift Ahead: Fehler im Betrieb werden ebenfalls so früh wie möglich durch Vorausschau (Monitoring, Trending) erkannt und gelöst (Alarming).
- Big Bang: Infrastructure as Code bedeutet, dass Systeme durch automatisierte Konfiguration aufgebaut werden. Ein komplettes Rechenzentrum wird vollständig durch Konfigurationsdateien definiert. Die Software für ein Rechenzentrum wird wie beim Big Bang des Universums vollständig aus dem Nichts aufgebaut.
- Overall Code Control: Jede Änderung am imperativen wie deklarativen Code steht unter totaler Kontrolle (Versionskontrollsystem). Darüber hinaus setzt jede Änderung ein Ticket voraus. Don‘t touch the code without a ticket.
- Quality-Driven Development (QDD): In der Industrie gibt es eine große Zahl von nationalen und internationalen Normen, die von allen Herstellern verbindlich eingehalten werden müssen. Genau das benötigen wir in der Softwareentwicklung: klare Regeln, an die sich alle ohne Ausnahme halten.
- Quality Master: Analog zum Scrum Master für die agile Organisation benötigen Teams einen Quality Master, um das Fundament sicherzustellen.
Rendite durch Qualität
Qualität kostet, fehlende Qualität kostet ein Vielfaches mehr. Qualität ist eine ernsthafte Investition. Aber Qualität hat auch eine herausragende Rendite.
High Performer auf dem Gebiet der Softwarebereitstellung schaffen 46-mal mehr Code-Fertigstellungen als Low Performer, sind 440-mal schneller im Prozess von Auftragsvergabe bis zur Fertigstellung und weisen eine fünffach geringere Fehlerquote in der Software auf. Diese High Performer hatten im Lauf von drei Jahren ein 50 Prozent höheres Wachstum der Marktkapitalisierung als Low Performer. (Quelle N. Forsgren, J. Humble, G. Kim, Das Mindset von DevOps. Accelerate, Vahlen 2019)
Das beste Kostensenkungsprogramm bei Entwicklung und Betrieb von Software ist die Investition in Qualität an den richtigen Stellen. Es ist zugleich ein starkes Programm für Wachstum und Ertrag eines Unternehmens.
Der vollständige Beitrag ist in der Fachzeitschrift Objektspektrum 6/2020 Seite 28ff abgedruckt.