ALM-Forum 2014 – Tag 3

header (2)All good things come to an end. So ging auch gestern die dreitägige Konferenz ALM-Forum in Seattle zu Ende. Drei Tage vollgepackt mit informativen Vorträgen, interessanten Gesprächen und ganz viel Kaffee. Steven Borg hat mir Stein und Bein geschworen, dass es in Seattle den besten Kaffee gibt. Für mich gab es gestern auch wieder zwei Vorträge, die sich von den anderen abgehoben haben. Zum einen Roy Osherove, der in seinem Vortrag „Notes to a Team Leader“ sehr mitreißend erklärt hat, wie man an Herausforderungen wachsen kann und zum anderen Dave West, der mit seinem Wissen über „Lean ALM“ beeindruckt hat.

Den Startschuss zum letzten Konferenztag gab Sam Guckenheimer mit dem mir schon bekannten Vortrag „Transforming software development in world of services“. Sam berichtete von den Erfahrungen, die Microsoft auf dem Weg zu einem sehr agilen Vorgehen gemacht hat.

alm-forum2_01_cloudcadence

In meinem Post zu den ALM-Days im Februar hatte ich den Inhalt von Sams Vortrag noch detaillierter zusammengefasst und er kann dort gerne nachgelesen werden.

Der zweiten Talk, den ich besuchte, war die Fortsetzung der Keynote von Mike Brittain vom zweiten Konferenztag. In „Advanced Topics in Continuous Deployment“ beschrieb Brittain, wie der Deployment-Prozess der e-Commerce Plattform Etsy Schritt für Schritt verbessert wurde. Etsy erreicht die unglaubliche Anzahl von bis zu 30 Deployments pro Tag durch ein sehr ausgereiftes System, welches im Wesentlichen aus vier Elementen besteht: Config flags, Automatisierten Deployment-Prozessen, Semi-automatisierten Release Management und Vorwärtsorienierte Schema Änderungen.

Erst der Einsatz von config flags, macht ein ständiges Bereitstellen neuer Code-Änderungen in die Produktionsumgebung möglich. Denn so können Code-Stellen über die Konfiguration „an- und abgeschalten“ werden und Änderungen vorerst vor den Benutzern verborgen werden.

Erst wenn die Bereitstellung komplett automatisiert ist, kann sie schnell und flüssig erfolgen. So stellt Etsy für die Produktionsumgebung immer einen live Cluster und einen „dark“ Cluster bereit. Deployments werden demnach immer zuerst auf den dark Cluster ausgerollt, vertestet und erst wenn alles in Ordnung ist, wird der Cluster-Traffic durch ein config flag umgeschaltet.

Unter semi-automatisierten Release Management versteht Mike Brittain einen benutzergesteuerten Release-Prozess, d.h. jeder Entwickler, der eine Änderung ausrollen will, muss sich mit anderen Entwicklern (max. bis zu sieben Entwicklern) zusammenschließen und den Deployment-Prozess koordinieren. Laut Brittain ist eine Automatisierung hier nicht erwünscht, da sehr oft individuelle Entscheidungen getroffen werden müssen, die vom Standard abweichen.

Schema-Änderungen werden bei Etsy wie Interface-Änderungen behandelt. Dabei wird immer wie folgt vorgegangen:

alm-forum2_04_etsy

Tipps, wie Continuous Deploymemt erreicht werden kann, gab Mike Brittain seinen Zuhörern auch noch mit auf dem Weg. Es sei am besten klein anzufangen (mit wenigen Flags), Test-Automatisierung und Monitoring der Produktionsumgebung einzuführen und  für den Notfall eine Fallback-Strategie zu entwickeln, falls doch einmal ein Deployment schiefgelaufen ist.

Eine sehr mitreißende Vorstellung bot Roy Osherove. Osherove ist Autor des Buches „Notes to a software team leader“ und Blogger auf 5whys.com. In seinem Vortrag befasste er sich mit der Frage, welche Aufgaben ein Team-Leiter haben sollte. Und in seinen Augen ist die Hauptaufgabe eine Leaders, seine Mitarbeiter besser zu machen. Er sollte sie motivieren nach Herausforderungen zu suchen, von denen sie bis dato noch nicht einmal wussten, dass sie diese Herausforderung überhaupt suchen könnten. Denn nur wenn der Mensch aus seiner Komfort-Zone herausgelockt wird, entfaltet er sein größtes Potential um sich zu verbessern.

alm-forum2_05_leaders

Osherove selbst lebt auch nach diesem Motto und sucht sich ständig selbst immer neue Herausforderungen, an denen er wachsen kann. Ein echt starker Typ und Entertainer.

Abschließend möchte ich noch etwas über die Closing-Keynote von Dave West, dem Chief Product Officer von Tasktop, berichten. In „Lean ALM: Making Software flow from idea to implementation“ arbeitete West vier wichtige Faktoren heraus, die für ihn über Erfolg und Misserfolg im Umgang mit immer komplexer werdender Software entscheiden und mit Lean Software Development zusammen hängen.

Autonomy – Adaptability – Transparency – Collaboration

Wie in Dan Pinks „Puzzle of Motivation” sehr gut beschrieben ist, führt Autonomie zu mehr Leistung und Motivation. In einer Welt von Knowledge Workern ist Autonomie sehr wichtig und erstrebenswert. Aber wie passt Autonomie in einen ALM-Prozess, in dem Werte vorgegeben und gemessen werden? Nun, das verlangt den Führungskräften einiges an Fingerspitzengefühl ab, um da die richtige Mischung zu finden.

Agil sein bedeutet auch, sich immer an die bestehenden Gegebenheiten anzupassen. West zeigte auf, dass Agil-sein in der heutigen Software-Entwicklung eher ein hybrides Modell bedeutet, in dem Requirements-Engineering, Planung und ein zyklisches Vorgehen eine große Rolle spielen. Er nannte dieses Modell „Water-Scrum-Fall“!

alm-forum2_17_lean

Und die Schwierigkeit von „Water-Scrum-Fall“ ist, dass es unterschiedliche Zyklen zwischen den einzelnen Artefakten gibt, die am Ende irgendwie zusammengeführt werden müssten – einmal von langer Hand geplante Requirements und andererseits sehr schnell umgesetzte „Entwickler-Tasks“.

Transparenz ist wichtig im agilen Vorgehen und in ALM schon fast unumgänglich. Nur wenn alle Prozess-Teilnehmer zu jeder Zeit alle Informationen haben, können komplexe Systeme gebaut und beherrschbar gemacht werden.

Und der letzte wichtige Faktor, um die zunehmende Komplexität der Systeme zu meistern, ist Zusammenarbeit. Software-Entwicklung ist Teamarbeit. Nur gut eingespielte und gut zusammenarbeitende Teams vollbringen Höchstleistung.

alm-forum2_18_lean

Unternehmen, die es schaffen, all diese Punkte zu erfüllen, haben laut West die größten Chancen, mit den Herausforderungen der heutigen Software-Entwicklung, im Zeitalter des „Internet of things“, schrittzuhalten.

  1. Highlights des dritten Tages