Mit DevOps zum Projekterfolg

Mit DevOps kann die Time to Market von IT-Projekten signifikant verkürzt werden. DevOps stösst deshalb auf grosses Interesse. So vielschichtig DevOps selber ist, sind es auch die Implementationen von DevOps. Deshalb gibt es nicht das eine Implementations-Rezept, das zum Erfolg führt. An einem konkreten Beispielprojekt wird aufgezeigt, was DevOps ist und wie DevOps implementiert werden kann.

Reinhard K. Sprengers Buch „Radikal führen“ stellt die Frage nach dem Sinn des Führens. Auf der einen Seite ist das Ziel des Führens, erfolgreich zu sein. Auf der anderen Seite ist das Führen nötig, da komplexe Arbeiten nicht von Individuen bewältigt werden können, sondern von einem Team. Und dieses Team muss optimal zusammenarbeiten. Und das liegt in der Hand der Führungsverantwortlichen. An einem praxisbezogenen Beispiel möchte ich zeigen, wie es einem Team gelungen ist, ein Projekt in Zusammenarbeit mit dem Kunden zum Erfolg zu führen. Dabei spielte DevOps (Development and Operations) und die in DevOps geforderte Führungskompetenz und Zusammenarbeit eine zentrale Rolle.

Was verspricht DevOps

Schauen wir das Thema DevOps aus der positiven Optik an. Anstatt über Zustände zu urteilen welche mit DevOps verbessert werden sollten, betrachten wir den erwünschten Endzustand einer erfolgreichen Implementation von DevOps. Starten wir mit einem fiktiven Tagesablauf eines DevOps-Teams.

Im 1. Stock befindet sich das Whiteboard des DevOps-Teams. Es visualisiert den Prozess mit den Kundenanforderung von der Analyse bis zur Produktionseinführung der Software abgearbeitet werden. Auch die Prozesse der Fehlerberichte aus dem Test-Team oder der Produktion und Infrastrukturaufgaben sind visualisiert. Robert aus der Entwicklung und Albert aus dem Betrieb stehen vor dem Whiteboard und besprechen das Vorgehen bezüglich Fehler 943. Nach der Installation des neuen Release wurde vergessen, ein neues Feature für alle Kunden der Gruppe „Gold“ zu aktivieren. Die Automation dieser Konfiguration bei der Installation ist die angestrebte Lösung. Dies ist dank des Release Automation Tools transparent und separiert von der Softwarelösung möglich. Nach dem Mittagessen kommt Tom der Testmanager mit seinem Vorgesetzten zum Whiteboard: „Siehst Du, die Entwicklung produziert neue Funktionen schneller als ich testen kann. Das Test-Team ist der Flaschenhals im gesamten Prozess. Ich brauche Verstärkung!“ Um 16:00 steht eine Traube Leute vor dem Whiteboard. Christian der Verantwortliche des Verkaufs gratuliert dem Team. Früher benötigte man noch Wochen um für einen neuen Kunden eine dedizierte Infrastruktur zu installieren. Heute ist das dank DevOps in einem Tag möglich. Ich bin begeistert und kann Euch berichten, dass der Kunde positiv überrascht war über unseren speditiven Service. Gespräche über neue Dienstleistungen sind im Gange – Danke an Euch!

Man fragt sich, ob dies nur Träumerei ist oder der beschriebene Zustand real werden könnte. Wir zeigen Ihnen, wie der Weg zu diesem Zustand aussehen könnte. Im nachfolgenden Beispiel wurde die Softwarelösung bereits in der Produktion installiert. Wir schauen zurück und analysieren den Projektverlauf.

Vom Prototypen zum ersten Release

In einer ersten Phase erstellten wir einen funktionalen Prototypen, der uns folgende Antworten lieferte:

  1. Können die angestrebten nicht-funktionalen Anforderungen (z.B. Performance) erreicht werden?
  2. Ist die vorgeschlagene Architektur wartungsfreundlich und für die Entwickler verständlich.
  3. Wird die Architektur von den Entwicklern und den Administratoren des Betriebs getragen?

Anhand des Prototyps konnte das Projekt-Team (Entwicklung und Betrieb) die technischen Vorbehalte, welche beim Projektstart existierten, ausräumen. Schon nach der Prototyp-Phase war für das Projekt-Team klar, dass nur die erfolgreiche Zusammenarbeit zwischen Entwicklung und Betrieb diesen ersten Erfolg ermöglichte.

In den nachfolgenden Monaten wurde das Projekt-Team zusätzlich durch das Test-Team ergänzt. In Iterationen von jeweils zwei Wochen wurden die funktionalen Anforderungen implementiert. Das Test-Team überprüfte die angestrebte Qualität gleich nach Abschluss einer Iteration. Zusammen mit dem Betrieb stellte das Test-Team auch die nichtfunktionalen Anforderungen sicher. Dazu wurden die Performance-Tests aus der Prototyp-Phase periodisch ausgeführt und erweitert (Mengengerüst und Funktionen). Anhand der mächtigen Analysemöglichkeiten der Application Performance Monitoring (APM) Lösung konnte die Ursache für nicht zufriedenstellende Ergebnisse früh erkannt und die nötigen Schritte eingeleitet werden.

Praktiken von DevOps führten zum Erfolg

Oft wird DevOps als eine durchgängige Toolingkette verstanden um den Release-Prozess zu automatisieren. Sowohl die Entwickler wie auch die Administratoren des Betriebs arbeiten gemeinsam an der Automatisation. Dies ist jedoch nur ein Aspekt von DevOps. Um erfolgreich zu sein, sind nicht nur technische Fähigkeiten notwendig, sondern auch Führung, Prozesse und Qualitätsmanagement gefragt. Diese werden in vier Sichten dargestellt, siehe Abbildung. Die vier Sichten werden nachfolgend anhand von konkreten Beispielen dargestellt.

DevOpsSichten

Die Zusammenarbeit des Projekt-Teams wurde anhand eines Kanban-Boards organisiert und visualisiert. Dabei wanderte eine User Story durch vier Teams (Analyse, Entwicklung, Testen, Betrieb) bevor diese abgeschlossen wurde. Kanban ist ein gängiges Instrument um interdisziplinäre Zusammenarbeit zu visualisieren und iterativ zu verbessern. Der Ursprung von Kanban ist die Produktion von Autos bei Toyota. Dabei stand die Optimierung der Arbeitsabläufe sowie der Arbeitsteilung zwischen den Produktions-Teams im Mittelpunkt. Es wird stets vom Ist-Zustand der Prozesse des Kunden ausgegangen. Vorhandene Rollen und Verantwortlichkeiten bleiben bestehen. Evolution statt Revolution in der Prozess-Sicht.

KanbanBoard

Der [ipt]-Architekt war dafür verantwortlich, dass die gewählten Architekturansätze und Designs mit dem Betrieb und dem Verantwortlichen der Geschäftsarchitektur abgestimmt werden. Mittels Coding-Dojos und Architekturdiskussionen wurde ein gemeinsames Verständnis der Ziele und der Zusammenarbeit erarbeitet. DevOps ist auch Unternehmenskultur!

Bei mir funktioniert‘s! Dieses gängige Phänomen konnten wir dank automatisiertem Aufsetzen der Infrastruktur, der Erstellung der Software-Artefakte, dem Erzeugen und Migrieren der Datenbank und der vollautomatischen Installation der Software fast vollständig eliminieren. Neue Umgebungen und Entwicklungs-Arbeitsplätze konnten wir damit innert weniger Minuten aufsetzen. Ebenso die Installation eines neuen Releases in eine beliebige Umgebung. „Infrastructure as Code“ ist eine Methodik aus der technischen Sicht von DevOps.

Die innere Qualität (Wartungsfreundlichkeit) der Software wurde durch die Architektur sichergestellt. Die äussere Qualität (Fehler) durch einen angemessenen Mix an Unit-Tests, Integrations-Tests im JEE-Container sowie manuellen Tests. Auch Retrospektiven des gesamten Projekt-Teams dienten dazu, die Qualität des Produkts sowie die gemeinsamen Ziele positiv zu beeinflussen. Die Retrospektive wurde als das Team optimal zusammenarbeitete und das Ziel erreichbar war im gegenseitigen Einvernehmen abgeschafft. Der optimale Einsatz von Ressourcen steht an vorderster Stelle und muss stets hinterfragt werden. Die „Messen und Metriken Sicht“ hat die Qualität des Produkts und die Optimierung der Zusammenarbeit im Visier.

Herr Sprenger hätte ganz bestimmt Freude an unserem Beispiel. Unter anderem durch eine erfolgreiche Führung des Projekt-Teams konnte der Erfolg – die Einführung des Produkts – gefeiert werden. Und es hätte auch ein gutes Beispiel abgegeben für die schwierige Aufgabe der Führungspersonen, die auch selber Hand anlegten.

Wichtige Assets welche die DevOps-Strategie unterstützen

In der Projekt-Erfolgsgeschichte wurden verschiedene Assets zur Unterstützung der DevOps-Strategie beschrieben. Nachfolgend sind je drei zentrale Assets aus Technik und Wissen/Erfahrung kurz zusammengefasst.

Software-Assets

  1. Das automatisierte Aufsetzen der Infrastruktur sowie die Installation und Konfiguration der Software ist eine Schlüsseltechnologie von DevOps. Sie verhindert, dass durch manuelle Eingriffe Fehler bei der Konfiguration der Infrastruktur oder der Software entstehen können.
  2. Das automatisierte Testen ist ein effektives Mittel um funktionale wie auch nicht-funktionale Anforderungen über mehrere kurze Entwicklungsiterationen sicherzustellen (Regressionstests). Insbesondere wenn die Lösung in kurzen Abschnitten in die Produktion eingeführt wird. Kritisch ist, dass der optimale Mix zwischen automatisierten und manuellen Tests gefunden wird.
  3. Infrastruktur- oder Softwarekomponenten, welche vom zu entwickelnden System verwendet werden, stehen oft nicht zum gewünschten Zeitpunkt zur Verfügung und verzögern die Entwicklung. Ebenso können instabile Systeme bezüglich Verfügbarkeit und Datenqualität die Entwicklung behindern. Die Simulation ist ein geeignetes Mittel diesen Herausforderungen zu begegnen.

Knowledge-Assets

  1. Die Architektur bzw. die nicht-funktionalen Anforderungen spielen eine ganz wichtige Rolle bei DevOps, speziell in Bezug auf Stabilität, Performance und Wartungsfreundlichkeit. Die Architektur schliesst auch Continous Delivery ein, wenn höhere Anforderungen an die Release-Fähigkeit vorhanden sind. Beispiele sind die Installation von neuen Funktionen ohne den Service für die Kunden zu unterbrechen oder die mandantenspezifische Freischaltung von Funktionen. Referenzarchitekturen und effiziente Architekturdokumentationen, die sich bewährt haben, helfen für ein optimales Ergebnis.
  2. Die angestrebte hohe Qualität des Kundenerlebnisses bedingt, dass mögliche Fehlerquellen frühzeitig erkannt und eliminiert werden. Dazu ist ein durchgängiges Monitoring der Infrastruktur und Software zu implementieren. Ziel ist es die MTTR (Mean Time To Repair) und MTTD (Mean Time To Detect) zu minimieren. Ein Betriebskonzept gibt Auskunft über den systematischen Aufbau des Monitorings und der einzuleitenden Gegenmassnahmen um einen Fehler z.B. durch die Überlastung der Infrastruktur zu verhindern. Ebenso beschrieben ist der Aufbau der Infrastruktur, welche einen unterbrechungsfreien Betrieb der Softwarelösung ermöglicht. Verantwortlich für die Umsetzung sind die Entwicklung und der Betrieb!
  3. Eine hohe Qualität der Software-Lösung ist ein integrales Ziel von DevOps. Qualität hat vielfältige Aspekte und kann in der ganzen Wertschöpfungskette eingebaut werden. Es muss der optimale Einsatz von Ressourcen und der daraus resultierenden Qualitätsverbesserung gefunden werden. Denn das Produkt und das dafür verantwortliche Team wird nie fehlerfrei sein! Die richtigen Konzepte auszuwählen, ist die Aufgabe des ganzen Führungsteams, nicht nur des Test-Managers.

Beitrag veröffentlicht im IPT-Blog.

China-Schrott von Trisa – der Vario Raclettegrill

Nachdem unser Stöckli Pizza-Grill nach einem elektrischen Defekt nicht mehr reparierbar war, lachte uns die pfiffige Idee des Trisa Vario an. Ein ausklappbarer Raclette-Grill, ideal für lange Tische. Doch schon beim Auspacken hatte ich meine Zweifel bezüglich der Qualität des Produkts. Das gesamte Gehäuseskellet ist aus faserverstärktem Kunststoff gefertigt. Eingearbeitet die Träger für den eigentlichen Grill. Auf dem Kunststoff ausgeklebt sind Chromstahlimitate. Allerdings sind diese nicht zentriert positioniert worden und jedes Imitat ist auf eine andere Seite aus dem Zentrum aufgebracht. Die Kunststofffolie welche das Chromstalimitat schützt ist extrem dünn und lässt sich nur sehr schwer entfernen.

Das Produkt lebte ca. 2-3 Minuten, danach war es schon kaputt. Nach dem einschalten bemerkten wir, dass die eine Heizschlange sehr viel wärmer wurde (rot glühend) als die andere Seite. Kurze Zeit später knickte die eine Grillseite unter der Hitze ein. Der Kunststoff konnte der sich entwickelnden Hitze nichts mehr entgegensetzen.

Es ist klar, dass dieses Produkt keinerlei Qualitätskontrolle erfahren hat. Ansonsten wäre dieser Defekt sofort entdeckt worden. Dass dies kein Einzelfall ist bestätigte mir eine bekannte. Ihr Trisa Raclettegrill kam mit zerkratzten Pfännchen aus der Verpackung. Die Firma Trisa wirbt auf der Webseite mit dem Satz:

Wer mit seinem Unternehmen auf Dauer Erfolg haben will, benötigt viel Durchsetzungskraft und Mut um neue Ideen umzusetzen. Nach dieser Philosophie arbeiten wir seit über 25 Jahren erfolgreich. Wir haben also die besten Voraussetzungen weiterhin erstklassige Qualitätsprodukte herzustellen, welche Ihnen beim täglichen Gebrauch viel Freude bereiten.

Mit solchem China-Schrott erarbeitet man ganz sicher keine Qualitäts-Lorbeeren. Fazit: Lieber mehr investieren und die Umwelt nicht mit kurzlebigem Schrott belasten welcher beim Entsorgen zudem eine zusätzliche Umweltbelastung entfaltet als andere Produkte.IMG_0972

Trisa Duo

Schrittweise Annektierung von fremden Besitz – so wird’s gemacht!

Der Wildnispark (Sihlwald) wurde 2008 mit einer Verordnung rechtskräftig vom Kanton abgesegnet. Gemäss Definition, soll die Kernzone von einer Uebergangszone umgeben sein, um diese von intensiv genutzten Gebieten wie zum Beispiel der Landwirtschaft zu entkoppeln. Diese Definition wurde in der Zwischenzeit von der Homepage des Wildnisparks entfernt, kann aber hier nachgelesen werden. Nun, es gibt verschieden Strategien im Nachhinein zu dieser Uebergangszone zu gelangen. So geschehen im Frühjahr 2012. Man versuchte anscheinend ohne die Waldbesitzer vorhergehend zu informieren den Wildnispark auf Gemeindegebiet Hausen am Albis auszudehnen. Das gelang in dieser Form nicht. Man verständigte sich schlussendlich mittels einer Studie zu Lasten der Waldeigentümer. Diese Studie soll Beweisen, dass der ordentlich genutzte Wald die Kernzone nicht negativ beeinflusst. Bezahlt wird diese Studie vom Kanton – dem Steuerzahler. Für mich persönlich ist das nicht verständlich, macht aber die Strategie des Wildnisparks verständlich klar. Nachzulesen auf der Homepage der Interessengemeinschaft Sihlwald für Alle.

Was 5 Jahre Entwicklung im Rennvelobau bedeuten

Seit zwei Wochen bin ich Besitzer eines Cannondale Supersix EVO mit einer SRAM-Red Schaltgruppe. Abweichend von der Standardspezifikation hat mir der Bikeshop Mainstreet42 in Zweidlen passende Laufräder offeriert. Es sind dies sehr leichte Mavic Ksyrium SR in weiss/schwarz. Das Komplettrennrad mit Pedalen wiegt so 6.5 Kilogramm.

Das Fazit aus 5 Jahren Entwicklung im Rennvelobau sind frappant. Ich hätte nie gedacht, dass man ein Rennvelo auch nach über 100 Jahren Fahrradbau so frappant differenziert bauen kann. Und erst noch mit demselben Werkstoff (Carbon). Der Vergleich zum Giant TCR Advanced 0 aus dem Jahre 2007:

  • Während das Giant auf maximale Steifigkeit ausgelegt wurde, wurde das Cannondale auf maximale Steifigkeit und Komfort konstruiert. Beim Überfahren von kleinen Unebenheiten in der Strasse reagiert das Giant mit einer direkten Rückkopplung auf den Fahrer. Beim Cannondale merkt man hingegen die Unebenheit, die Rückkopplung ist jedoch massiv gedämpft.
  • Beim Antritt merkt man, dass das Cannondale massiv höhere Steifigkeitswerte aufweist als das Giant. Man hat das Gefühl, dass jedes einzelne Watt das man in die Pedale steckt in Vortrieb umgemünzt wird. Und doch steht auf der anderen Seite ein Komfortgewinn zu Buche.
  • Das Lenkverhalten des Cannondale ist um einiges agiler. Das bedeutet, dass man Kurven ganz anderst anfahren und durchfahren kann bzw. muss. Auch beim Antritt spürt man das. Zog das Giant beständig nach vorne, muss man beim Cannondale die Lenkung präzise im Griff haben um die Linie halten zu können.
  • Auch beim Lenker und beim Cockpit hat sich einiges getan. Die Handposition am unteren Lenker war beim Giant ausschliesslich für hohe Geschwindigkeiten ausgelegt, über mehrere Minuten war diese Position nicht angenehm erträglich. Moderne Lenker sind nicht mehr so tief und auch der Radius ist enger geworden. Das ermöglicht eine recht angenehme Sitzhaltung in derselben Position.

Mit anderen Worten steht mein sehr gut gepflegtes Giant TCR Advanced 0 zum Verkauf. Bei Interesse einfach melden.

Giant TCR Advanced 0
Giant TCR Advanced 0 mit Dura Ace Schaltung und Mavic Ksyrium ES Laufrädern.
Cannondale Supersix EVO mit SRAM Red
Cannondale Supersix EVO mit SRAM Red

 

 

Schutzverordnung Sihlwald : Widerstand wächst

Nach der Berichterstattung in der lokalen Presse (Affoltemer Anzeiger) wird nun auch in der aktuellen Bike 06.2012 über den Sihlwald berichtet. Die radfahrende Schweiz stand im Januar 2012 unter Schock als der Kanton Bern ankündigte, ein generelles Verbot für Radfahrer mit Bussen bis 20’000 sFr. einzuführen. Nun weiss die Schweiz, dass solche Verbote schon existieren und sogar noch weitere ausgebaut werden sollen. Die nächsten Jahre sind also extrem wichtig für die Anliegen der Velofahrer. Immerhin Volkssport Nr. 1 in der Schweiz (Anzahl Sportler) und jüngstes Zugpferd des Schweizer Tourismus.

Schutzverordnung Sihlwald: Widerstand

In der Ausgabe vom 2.Mai 2012 des Anzeigers aus dem Bezirk Affoltern ist ein grosser Artikel sowie kleine Artikel zum Thema Schutzverordnung Sihlwald abgedruckt. Die Artikel beschreiben das Gespräch von Interessenvertreter (Biker, Reiter, Landwirtschaft) aus der Gemeinde Hausen am Albis und Vertretern der Stiftung Wildnispark Sihlwald.

Es gibt eine gute Nachricht die bestätigt was wir vermutet hatten. Der Gratweg ist in der Schutzverordnung mit einem Fahrverbot für Reiter und Fahrradfahrer eingezeichnet. Jedoch befindet sich der grösste Teil des Weges auf dem Gebiet der Gemeinde Hausen am Albis bzw. privatem Besitz. Weder die Gemeinde noch die privaten Besitzer wurden angefragt bzw. informiert. Das Verbot ist nicht rechtsgültig und deshalb nicht durchsetzbar. Was aber nicht heisst, dass dies so bleibt!

Die schlechte Nachricht ist, dass zum Beispiel der Weg (breite Kiesstrasse) Schweikhof-Oberalbis weiterhin verboten ist, wobei es sich lediglich um ca. 300-500m handelt. Gemäss Wildnispark ist es fast unmöglich dieses Verbot zu lockern. Dasselbe gilt für den Übergang Schnabellücke-Bachtelenstrasse.

Damit das nicht so bleibt und aktiv Gegensteuer gegeben werden kann, wird eine Interessengemeinschaft gegründet in der sämtliche betroffenen Gruppen vertreten sein werden. Was eine Interessengemeinschaft bewirken kann, hat NOGOLF@HausenKappelBaar bewiesen.

Niner Air9 Carbon zu verkaufen

Ich verkaufe mein Niner Air9 Carbon (29er Hardtail) welches ich im September 2010 geliefert bekommen habe. Das Bike wurde nach ein paar Ausfahrten erst wieder im frühen Sommer 2011 gefahren. Das Bike hat also relativ wenig Kilometer und hat nie Streusalz gesehen. Der Rahmen hat keine sichtbaren Lackschäden und ist sehr gepflegt. Verschleissteile wurden ersetzt. Das Bike hat folgenden Aufbau:

Rahmen: Niner Air9 Carbon Grösse M schwarz-weiss für Körpergrösse 173-183 cm

Laufräder: American Classic Naben mit Stans Crest-Felgen, Schwalbe Racing Ralph 2.25

Federgabel: RockShox Reba XX 100mm mit hydraulischen Lockout

Schaltgruppe: SRAM XX 2×10, Bremsen 180mm/160mm

Sattelstütze: Easton EC90 ohne Versatz, 400mm mit Extralite Klemme

Sattel: Selle Italia SLR Carbonio Kit

Lenker: Easton Monkey Lite SL

Vorbau: Easton EA90, 90mm

Schnellspanner: POP

Gewicht: 9.4 kg (ohne Pedale)

Neupreis war 8500 sFr., gekauft bei Mainstreet42, mit Rahmengarantie bis 2015. Verhandlungsbasis ist 3390 sFr.

Das Bike hat mir sehr gut gefallen. Die ausgewogene Geometrie gibt sowohl auf dem Trail wie auch in kniffligen Uphill Passagen ein Gefühl von Sicherheit und sehr guter Bodenhaftung. Ich kaufe daher dasselbe Bike nochmals, allerdings in der Ausführung RDO. Interessiert?

Avatar im Sihlwald

Den Film Avatar kannte ich nicht beim Lesen des Artikels über die Fällung von gesunden Bäumen um Waldbesuchern den Zugang zum Sihlwald zu erschweren. Seit der Sihlwald (2008) zu einem Naturerlebnispark ernannt wurde, wurden viele Strassen mit Geh- Reit- und Fahrradverboten gesperrt. Das sich aber fast niemand an diese Verbote hält und das Gewohnheitsrecht stärker ist, werden die nicht ausgeschilderten Verbote nun mit Bussen und Gewalt durchgesetzt. Die Waldbesucher verstehen die Welt nicht mehr, da auf der einen Seite die Gesetzesvertreter Waldstriche fällen, mit benzinbetriebenen Maschinen den Unterhalt bewerkstelligen um die Natur zu schützen. Auf der anderen Seite viele ortsansässige Reiter, Fahrradfahrer und Wanderer die wegen den verursachten Lärmemissionen und Flurschäden aus dem Wald verbannt werden. Naturschutz kann auf verschiedenste Arten verstanden werden. Auch von  halbkommunalen Sponsoren (Ich bezahle indirekt noch dafür!) wie der Zürcher Kantonalbank.