Freitag, 29. April 2016
Kommentierte Links (XII)
| Grafik: Pixabay / Geralt - Lizenz |
Michael Mahlberg: DevOps - Karl Marx to the rescue?
Und ich dachte schon, ich wäre der einzige, der über marxistische Ansätze in der IT schreibt. Wenn ich Michael Mahlberg mal wieder begegnen sollte bekommt er auf jeden Fall Kudos von mir. Darüber hinaus hat er natürlich recht - in der Software-Entwicklung müssen die Produktionsmittel (v.a. die Computer und deren Adminrechte) in der Hand der
Tim Kanning: Jetzt kommen die Lego-Banken
Dass agile Software-Entwicklung nicht nur das Projektmanagement sondern auch die Struktur der Software selbst umfasst wird viel zu oft vergessen. Tim Kannig arbeitet das am Beispiel einiger Fintechs sehr schön heraus. Dort wurde nicht nur erkannt, dass ein modularer Aufbau den Austausch und Umbau einzelner Bestandteile stark vereinfacht - dieses Baukasten-Prinzip ermöglicht es sogar, die Module verschiedener Startups so zu kombinieren, dass am Ende ein vollwertiges "virtuelles Finanzhaus" steht. Und diese Bündelung ermöglicht nicht nur Online-Banking sondern auch Auslandsüberweisungen und sogar das deutschlandweite Abheben von Bargeld an einem ebenso schrägen wie naheliegenden Ort: den Supermarktkassen. Ich kenne einige Bank-Manager die das gerade sehr nervös macht. Zurecht.
Jason Little: Successful Agile Transformation through Community Building (Edit: Link ist mittlerweile tot)
Jason Little bringt es zunächst auf den Punkt wie große Organisatoren an der Einführung agiler Methoden scheitern: Irgendjemand in der bereits bestehenden hierarchischen Struktur bekommt die Verantwortung übertragen, versucht einen Rollout nach dem "bisher bewährten Vorgehen", scheitert, versucht es nochmal, scheitert nochmal, gibt auf und führt stattdessen Cargo Cult ein. Um das zu vermeiden empfiehlt Little eine neue Art der Einführung: statt zentralisierter Verantwortung wird eine agile Community gegründet, die den Änderungsprozess dezentral vorantreibt. Fördern kann man diese durch die Beschränkung von Regeln auf das absolute Minimum, das Zulassen von Experimenten, die Einführung informeller Meeting-Formate (z.B. Lean Coffees) und regelmässiger Retrospektiven, das Zurückschneiden der Planung zum Jahresbeginn und die Vernetzung mit anderen agilen Organisationen. Eine Erfolgsgarantie ist das zwar nicht, dafür steigt aber die Wahrscheinlichkeit, dass Agilität wirklich entsteht und nicht nur simuliert wird, drastisch an.
Charles Edge: From Dungeon Master to Scrum Master - 15 Software Development Lessons from Dungeons and Dragons
Die IT ist eben doch ein Tummelplatz für sympathische Nerds. Über diesen Allgemeinplatz hinaus geht dieser Artikel von Charles Edge aber auf einen wichtigen Punkt ein: da man als Scrum Master seinen Job ohne Social Skills nicht machen kann, und da diese Skills in Studium oder Ausbildung nicht vermittelt werden, muss man sie irgendwoher sonst bekommen. Rollenspiele wären zwar nicht die erste Option die mir in diesem Zusammenhang einfallen würde, aber wenn es funktioniert - warum nicht? Und wenn man seine Auflistung sieht muss man ihm schon irgendwie recht geben. Es gibt definitiv Einiges was man dort lernen kann.
Katrina the Tester: What problems do we have with our test automation?
Ähnliche Situationen wie die hier beschriebene habe ich bei verschiedenen Kunden erleben dürfen. Automatisierte Testsuites können schnell zu komplex und schwerfällig werden, benötigen dann mitunter Stunden für die Ausführung, sind nur mit Mühe aktuell zu halten und sind nur noch eingeschränkt für Absicherungen häufiger Merges in den Master Branch nutzbar. Die Agilität der Softwareentwicklung geht dann zurück. An einem konkreten Beispiel aus ihrer Arbeit beschreibt Katrina Clokie Probleme, Lösungsansätze und Lerneffekte. Ein eher technischer aber trotzdem wichtiger und interessanter Blickwinkel.
Montag, 25. April 2016
Agile Meetups und (Un)Konferenzen in NRW
![]() |
| Grafik: Landesverwaltung NRW |
Meetups und Scrumtische
Aachen
Bonn
Düsseldorf
Ruhrgebiet
Köln
(Un)Konferenzen
Essen
- Agile Ruhr (Website) - einmal im Jahr
Köln
Was noch fehlt ist das Meetup im Münsterland, um das es in der Session eigentlich ging. Das ist aber noch nicht im Internet zu finden.
Donnerstag, 21. April 2016
Organisatorische Schulden
| Bild: Flickr/Rachel Doherty - CC BY 2.0 |
Die organisatorische Schuld ist gewissermassen der unbekannte Zwilling der technischen Schuld. Unter der versteht man den Mehraufwand, den man für Reparaturen und Instandhaltung schlecht geschriebener Software aufbringen muss. Organisatorische Schuld ist dementsprechend der Mehraufwand der sich aus einer unzureichenden Organisationsstruktur ergibt - im oben genannten Fall aus dem Fehlen einer Person die sich für das Thema der übergreifenden Software-Qualität verantwortlich gefühlt hätte. Genau wie im Fall der technischen Schuld erscheint das Ganze zum Zeitpunkt des "Schulden Aufnehmens" auch oft unproblematisch, vielleicht sogar rational. Im Normalfall ist das Schulden aufnehmende Unternehmen noch klein und/oder jung und andere Probleme sind dringender, so dass die Weiterentwicklung der eigenen Strukturen auf "später" verschoben wird. Später sind dann andere Probleme dringender und noch später wieder andere, so dass es niemals zu einer Lösung kommt. Besonders perfide: viele der später auftretenden Probleme wären niemals entstanden wenn die Organisation von Anfang an besser aufgestellt gewesen wäre, ein Beispiel dafür sind die oben genannten Hotfix-Phasen. Letztendlich entsteht ein Teufelskreis - organisatorische Defizite führen zu Mehraufwänden wegen denen die Organisation nicht weiterentwickelt wird, was wieder zu Mehraufwänden führt. Und so weiter.
Was man an dieser Stelle bedenken sollte ist, dass die Existenz organisatorischer Schulden keineswegs notwendigerweise ein Fehler dessen ist, der sie aufgenommen hat. Möglicherweise stehen handfeste Gründe dahinter. Um ein letztes mal das Beispiel des oben genannten Startups anzuführen - vielleicht war am Anfang einfach kein Geld für jemanden mit Test- und QA-Know How da? Der Fehler dürfte eher in mangelnder oder fehlender Agilität liegen: bei funktionierendem Inspect & Adapt wäre zum einen das organisatorische Defizit rechtzeitig aufgefallen, zum anderen wäre auch klar geworden, wann man dieses Problem am besten (oder spätestens) hätte lösen müssen. Nicht, dass es später nicht mehr ginge. Es wird dann nur sehr, sehr teuer.
Montag, 18. April 2016
Agile is (not) dead
Ein weiterer Vortrag aus der Reihe: "Agile ist tot", diesesmal gehalten von Dave Thomas, einem der Verfasser des Agilen Manifests. Der zentrale Punkt - die Methode ist gut, aber den falschen Leuten in die Hände gefallen, die sie von ihren ursprünglichen Ideen entfremdet haben.Ich habe zu dem Thema zwar eine differenzierte und zum Teil andere Meinung (siehe u.a. hier und hier), könnte aber trotzdem das meiste was er sagt unterschreiben. Besonders gefällt mir eine Kurzdefinition von Agilität, die er zwischendurch an die Wand wirft:
Einfach, nachvollziehbar, zielführend. Man fragt sich, warum nicht jeder so vorgeht.Agilität
Was sollte man tun?
- Finde den ist-Stand heraus
- Bewege Dich in kleinen Schritten Richtung Ziel
- Passe Dein Vorgehen ständig an, basierend auf dem was Du lernst
- Wiederhole die letzten drei Schritte
Wie sollte man es tun?
- Wenn Du die Wahl zwischen zwei Alternativen hast, die ein vergleichbar wertvolles Ergebnis liefern, entscheide Dich für die, die es in Zukunft einfacher machen wird Anpassungen vorzunehmen
Donnerstag, 14. April 2016
Steuerung langfristiger Vorhaben mit Kanban-Boards
| Bild: Unsplah / Sebastien Bonneval - Lizenz |
In diesem Vorgehensmodell wird der To do/In Progress/Done-Ablauf in mehreren Phasen wiederholt, wobei diese von links nach rechts immer kürzer werden. Die langfristige Vorarbeit könnte zum Beispiel die bereits im Vorjahr stattfindende Budgetplanung sein, die "kurz"fristige Vorarbeit wäre die im Vorquartal stattfindende Kommunikations- oder Schulungsphase, die Umsetzung wäre dann die eigentliche Arbeit, etwa das Rollout einer neuen Software oder das Rebranding einer Dienstleistung. Abhängig davon wie komplex und unberechenbar dieser Abschnitt ist könnte man in ihm sogar tatsächlich Scrum einsetzen, wobei es in diesem Fall sinnvoll wäre ihn auf einem zweiten Board mit höherem Detaillierungsgrad zu spiegeln. Als letztes ließe sich sogar ein Lessons Learned-Prozess mit abbilden, dessen Ergebnisse dann wieder auf der linken Seite ins Backlog einfließen könnten.
Natürlich ist dieser Entwurf zunächst nur einer auf relativ hohem Abstraktionslevel. Einige Aspekte fehlen noch und müssten ausgearbeitet werden, etwa die Visualisierung der Zuordnung von Aufgaben zu Personen oder Teams, oder auch die Kennzeichnung von Aufgaben die zu bestimmten Zeitpunkten erledigt sein müssen. Er ist auch nicht universell anwendbar, in manchen Fällen werden andere Vorgehensweisen mehr Sinn machen, beispielsweise die Benutzung von Story Maps oder anders konfigurierten Boards. In vielen Fällen wäre er aber ein erheblicher Beitrag zu mehr Transparenz und Übersicht - und mit Sicherheit wesentlich besser benutzbar als die immer noch weit verbreiteten Excel- oder MS Project-Monstrositäten.
Montag, 11. April 2016
Verwechselungsgefahr: Motivierte und frustrierte Entwickler
![]() |
| Bild: PDPics - CC0 1.0 |
Dass man in einem agilen Unternehmen Entscheidungen nur schwer gegen den Willen der Software-Entwickler umsetzen kann dürfte eine Binsenweisheit sein. In der Realität wird aber genau das immer wieder versucht, was oft daran liegt, dass dem Management der Widerstand in den Entwicklungsteams (oder das Ausmass dieses Widerstandes) gar nicht bewusst ist. Die Geschäftsführer/Abteilungsleiter/Bereichsleiter sind in solchen Fällen fest davon überzeugt, ihre Mitarbeiter eingebunden und mitgenommen zu haben und glauben auch, dass diese sich bereitwillig an den Entscheidungsprozessen beteiligt haben und deren Ergebnisse annehmen und akzeptieren. Diese Vorgesetzten fallen mitunter aus allen Wolken wenn ihnen irgendwann gesagt wird, dass ihre Teams sich in Wirklichkeit schon lange in innere Emigration und Entwickler-Zynismus ("Ich mache hier nur noch das was man mir sagt") verabschiedet haben.
Um zu erklären wie es zu diesen stark von der Realität abweichenden Einschätzungen kommt, kann man die Entwickler in zwei Personas einteilen: die Motivierten (die, die man gerne hätte, bzw. glaubt zu haben) und die Frustrierten (die die man oft in Wirklichkeit hat). Die einen fühlen sich wertgeschätzt, beteiligen sich und packen mit an, die anderen fühlen sich bevormundet, lehnen Änderungen ab und versuchen Dinge "auszusitzen". Das Problem bei diesen beiden Typen: In Bezug auf die Akzeptanz von Entscheidungen und die Beteiligung an Entscheidungsfindungen unterscheiden sie sich zwar erheblich, von oben, bzw. von aussen kann man das aber nicht immer gut erkennen. Aus diesem Blickwinkel kann es sogar sein, dass sich überhaupt keine Unterschiede wahrnehmen lassen. Werfen wir einen genaueren Blick auf die beiden:
Man sieht - beide tun durchaus ähnliche Dinge, allerdings aus einer völlig unterschiedlichen Motivation heraus. Der Motivierte beteiligt sich an Change-Prozessen weil er einen Beitrag zur Verbesserung seines Unternehmens leisten will, der Frustrierte tut es um Schadensbegrenzung zu betreiben. Der Motivierte sieht in den Veränderungsergebnissen Leitlinien für sein Handeln, der Frustrierte tut zwar so, sieht in ihnen aber eher eine Liste der Punkte die er nicht verhindern konnte und um die er jetzt herumarbeiten muss. Der Motivierte stimmt Vereinbarungen zu weil er sie für sinnvoll hält, der Frustrierte tut es nur weil er glaubt, dass er sonst so lange in Meetings mit dem Management muss bis er seine Ablehnung aufgibt. Wenn man jetzt versucht, das Ganze aus der von aussen kommenden Position des Managements zu sehen, wird das Problem offensichtlich: beide wirken gleich. Beide beteiligen sich, beide stimmen den Ergebnissen zu, beide melden keine Bedenken an. Aus Management-Sicht sind beides motivierte Mitarbeiter. Die Fehlwahrnehmung ist entstanden.
Interessant ist im Folgenden die Reaktion des Managements auf eine Aufdeckung dieser Fehlwahrnehmung. Bei Variante A, in der frustrierte Entwickler fälschlicherweise für motiviert gehalten wurden, ist es sehr häufig Verleugnung ("Das kann nicht sein, wenn die so denken würden, dann würden die es mir sagen"). Das ist in der Regel ein Indikator dafür, dass der Manager an seiner Selbstwahrnehmung arbeiten sollte - er muss erkennen, dass er nicht der Freund und/oder Vertraute seiner Mitarbeiter ist für den er sich selber gehalten hat, sondern dass er von ihnen mit Distanz betrachtet wird und nur vorsichtig gefiltertes Feedback erhält. Ebenfalls häufig ist Relativierung, etwa indem behauptet wird, die Mitarbeiterhätten nicht die notwendigen Informationen und das notwendige Verständnis, weshalb sie die Situation gar nicht richtig beurteilen könnten. Auch das ist aber in der Regel ein Indikator für Management-Antipattern, etwa für eine verfehlte Informationspolitik oder für ein merkwürdiges Menschenbild.
Auch eine Variante B existiert übrigens, die sogar besonders tragisch ist: in ihr sind die Entwickler motiviert und bringen sich ein, dass Management geht aber davon aus, dass das nur die Fassade für ein frustrationsgetriebenes Aussitzen und ins Leere laufen lassen sein kann. Da sich das in misstrauischem und kontrollierendem Verhalten niederschlägt ist es eine selbsterfüllende Prophezeihung - es ist nur eine Frage der Zeit bis die Teams tatsächlich frustriert sind.
Zuletzt ist natürlich auch eine positive Wendung möglich: das Management realisiert seine Fehlwahrnehmung, erkennt das Problem (auch) bei sich und arbeitet an einer Anpassung und Verbesserung des eigenen Verhaltens. Das erfordert allerdings zwei der größten Kuststücke die eine Führungsposition vollbringen kann - das Eingeständnis sich geirrt zu haben und den Sprung über den eigenen Schatten. Dafür ist bei Gelingen der Applaus sicher.
Donnerstag, 7. April 2016
Wohin mit dem Kanban Board?
Ein Klassiker unter den Ausreden "warum Agil bei uns nicht geht": Es dürfen keine Post-Its an den Wänden angebracht werden, weil der Putz/die Tapeten so empfindlich sind.1 Vor kurzem erst habe ich mir das von einer jungen Projektmanagerin anhören dürfen, der ich gleich eine Wette angeboten habe - alleine in ihrem Lieblings-Social Media-Service (Instagram) würde ich genug Beispiele dafür finden, wie man diese Beschränkung umgehen kann. Hier sind einige Ergebnisse:Auf ein Fenster
Auf Stellwände
Auf einen Schrank
Auf ein Whiteboard
Auf einen Spiegel
Auf ein Flipchart
Auf eine Korkwand
Auf einen Kalender
Auf den Schreibtisch
Auf ein mitnehmbares laminiertes Blatt
Übrigens: der Dame sind dann sofort ganz viele andere Gründe eingefallen warum Scrum dort nicht funktioniert. Wer nicht will, der will nicht.
1Nur zur Klarstellung: natürlich geht Agilität auch ganz ohne physisches Board, es gibt aber gute Gründe eines zu haben.



