Planungshorizonte

In den Frühzeiten agiler Entwicklung wurde mir einmal während einer Podiumsdiskussion über Entwicklungsprozesse aus dem Publikum die folgende Frage gestellt: „Sie propagieren die schnelle Reaktionsfähigkeit und die Anpassungsfähigkeit an den Markt. Das klingt sehr schön, aber wir müssen Produktplanungen über die nächsten fünf Jahre vorlegen. Wie können Sie das mit agiler Entwicklung tun?“ Ich war neugierig geworden, welche Branche so lange Zukunftsperspektiven nicht nur ermöglicht, sondern offensichtlich einzufordern scheint und so fragte ich erst nach, aus welcher Branche der Fragesteller denn käme. Die Antwort erregte allgemeine Heiterkeit: „Wir bauen Handys.“

Ich empfahl dem Fragesteller, die derzeitigen Prozesse unbedingt beizubehalten, sollte es ihnen tatsächlich gelungen sein, vor fünf Jahren vorherzusehen, dass der SMS-Versand von Jugendlichen die wichtigste Einnahmequelle der Mobilfunkbetreiber werden würde – zu dieser Zeit war der SMS-Service noch keine fünf Jahre alt.

Der Handyhersteller ist übrigens mittlerweile insolvent, unter anderem, weil er sich am Markt nicht schnell genug bewegt hatte.

Designwissen ist wichtiger, als Plattformwissen

Martin Fowler hat mal wieder einen sehr lesenswerten Eintrag geschrieben zum Thema „Welche Art von Wissen ist Wichtiger“. Seine Schlussfolgerung: Im Zweifelsfall ist es deutlich effizienter, einem guten Designer eine neue Plattform beizubringen, als einem Plattformspezialisten gutes Design. Ideal wäre natürlich beides, in der Realität steht man aber häufig vor der Wahl. Ich würde jedes seiner Worte unterschreiben.

Den vollständigen Eintrag finden Sie unter Prefer Design Skills

Geschäftsausrichtung der IT und moderne Entwicklungsverfahren

Seit Anfang Januar ist die Erstausgabe des Magazins „Business Technology“ erhältlich, einem Magazin für oberes und mittleres IT-Management. An der Jungfernausgabe habe ich mit einem Artikel über „Geschäftsausrichtung der IT und moderne Entwicklungsverfahren“ mitgewirkt. Aus der Einführung:

IT muss sich heute konsequent an den Erfordernissen der Geschäftsstrategie ausrichten. Die Fähigkeiten von Software dürfen nicht die Gestaltung der Geschäftsprozesse bestimmen. Software-Entwicklung muss schnell und agil veränderten Geschäftsprozessen folgen.

Den vollständigen Artikel können Sie entweder in der Druckausgabe lesen, oder in der Online-Ausgabe.

PS: In einer Einführungsaktion des Software&Support Verlages kann man bis zum 10.2.2008 ein Gratisabo bestellen.

Bestandteile eines Projektplans – wirklich nötig?

Stefan Hagen hat in seinem „Projektmanagement Blog“ eine Folie bereitgestellt mit den „Bestandteilen eines Projektplans„. Die Folie enthält unter anderem 18 Teilpläne, einschließlich „Arbeitspaketdefinitionen“ und „Terminplan (GANTT)“.

Aus agiler Sicht erscheint das eher schwergewichtig. Anstatt festzulegen, welche Pläne gebraucht werden, diskutiere ich lieber die Ziele einer Planung:

  • Das Team auf die wichtigen Aufgaben fokussieren
  • Zusammenarbeit koordinieren
  • Vorhersagen über Fertigstellungstermine ermöglichen
  • Transparenz über den Projektstatus schaffen

Im agilen Bereich hat sich das aus der Toyota-Produktion stammende Kanban-Prinzip bewährt: Weiterlesen

Kultur und „Reife“ von Prozessen

„Companies cannot overlay work practices that have been successful in other markets and expect them to work in India“, schreiben Kari Heistad und Anjali Bhatia ihrem E-Mail Beitrag „An Introduction to Doing Business with India“ für den „Cutter IT Adivsor„. Diese Aussage ist sicherlich so richtig, wie sie auch generell ist: Ebensowenig, wie man indischen Firmen Verfahren und Kulturen aufpfropfen kann, die in Europa oder Nordamerika gut funktionieren, kann man automatisch davon ausgehen, dass in Indien erfolgreiche Vorgehensweisen auch bei uns sinnvoll einsetzbar sind.

Mich erinnert diese Feststellung – die eigentlich eine Selbstverständlichkeit ist – an das Phänomen, dass der größte Teil der nach CMM-I Level 5 zertifizierten Entwicklungsunternehmen in Indien ansässig sind. Hierzulande räumen selbst ausgewiesene Protagonisten des CMM-I ein, dass sich sowohl Kosten- als auch Qualitätsvorteile nur bis einschließlich Level 3 nachweisen lassen. Bei Level 4 und 5 droht der bürokratische Aufwand den Nutzen zu übersteigen (siehe R. Solingen: „Measuring the ROI of software process improvement„, Software, IEEE, May-June 2004, Volume 21, Issue 3 Seiten 32- 38)

Vielleicht haben sich die Verfasser und Protagonisten des CMM-I mit der Bezeichnung „Reifegradmodell“ doch auf eine etwas zu eindimensionale Vorstellung von „Reife“ festgelegt. Er scheint für die indische Kultur besser zu funktionieren, als für unsere.

Langfristige Produktplanung und Agilität

Ein wichtiges Argument für agile Entwicklung ist, dass man flexibel auf Änderungen der Umstände reagieren kann. Viele Manager befürchten allerdings, dass sie diesen Vorteil auf Kosten der Planbarkeit erkaufen müssten. Gerade bei Produkthäusern verlangen Kunden und Investoren möglichst zuverlässige Aussagen, wann welche neuen Produktmerkmale oder Marktstrategien zur Verfügung stehen. Stört hier agile Entwicklung?

Ich meine, dass agile Planungspraktiken ganz im Gegenteil sogar helfen, solche langfristigen Planungsaussagen nicht nur zu treffen, sondern dann auch noch einzuhalten. Allerdings muss man dafür eine zusätzliche Planungsebene einführen, nennen wir sie strategische Planung (oder Roadmap, falls Ihnen Anglizismen besser gefallen). Anders als alle anderen Planungsebenen in einem agilen Vorhaben, geht der Horizont der strategischen Planung nicht nur über die anstehende Iteration, sondern über die nächsten 18 oder 24 Monate – mehr ist in der Regel nicht mehr seriös planbar.
Weiterlesen

Auslastung optimieren oder Ergebnisse optimieren?

In der traditionellen Planung wird versucht, die Auslastung der „Ressourcen“ zu optimieren: Die Idee ist, dass man dann am effizientesten arbeitet, wenn jeder voll ausgelastet ist.

Agile Planung versucht Ergebnisse zu optimieren: Das Team bemüht sich, zunächst die wichtigsten Aufgaben abzuschließen, dann die nächst-wichtigen usw. Man konzentriert sich also darauf, Aufgaben abzuschließen, anstatt darauf, Aufgaben anzufangen.

Durch die Optimierung der Ergebnisse ist die Anzahl der zugleich bearbeiteten Aufgaben niedriger, es sind weniger Abstimmungen und Kontextwechsel notwendig, das Team erledigt insgesamt mehr Aufgaben. Die Auslastung einzelner Entwickler mag zwar gelegentlich geringer sein, als bei Auslastungsorientierter Planung – wie auch die Auslastung der Flugbegleiter in meinem gestrigen Eintrag. Aber der Geschäftsnutzen ist größer. Und darauf kommt es an.

Über Projektgrößen

Die Diskussion ist in etwa so alt, wie agile Entwicklung alt ist und dennoch haben sich die Fragen (und „Vorwürfe“) kaum geändert: „Ja geht denn das auch für ‚große‘ Projekte?“ Varianten dieser Anmerkung lauten zum Beispiel: „Das mag ja für Spielprojekte funktionieren. Wir dagegen, wir machen Projekte mit hunderten von Mitarbeitern, da funktionieren nur die traditionellen Ansätze!“

Ob die traditionellen Ansätze (wenigstens) bei solchen Teamgrößen funktionieren, sei einmal dahingestellt. Die Projekte oberhalb der 100 Personen, an denen ich bisher mitgearbeitet habe, waren alle weit entfernt von dem ruhigen, sicheren Fahrwasser, das ich aus der agilen Entwicklung kenne. Obwohl sie alle am Ende zumindest vom Management als mehr oder minder erfolgreich dargestellt wurden, hätte das, was dort als Erfolg verkauft wurde, einen agilen Projektleiter vermutlich in die Resignation und in den Vorruhestand getrieben.

Spannender finde ich die Frage, was eigentlich „große“ Projekte sind. Weiterlesen

Globale versus lokale Optimierung

Wer die Koordination der Flugbegleiter beim Service auf einem Kurzstreckenflug beobachtet, kann ein schönes Beispiel globaler Optimierung entdecken: In dem engen Mittelgang hat nur ein Servicewagen Platz, überholen ist ausgeschlossen. Oft beginnt die erste Flugbegleiterin in Reihe 1 mit ihrem Service und arbeitet sich voran. Sobald der Kollege seinen Wagen bereit hat und aufschließt, überspringt die erste Kollegin einige Reihen, in denen der Kollege dann den Service übernimmt. Das ist zwar sehr naheliegend, zeigt aber, dass hier erst globale Optimierung ein vernünftiges Ergebnis bringt: Würde die erste Kollegin einfach „schneller“ bedienen, sprich ihre eigene Effizienz optimieren, wäre ihr Kollege arbeitslos, die Aufgabe, alle Passagiere zu versorgen wäre in der gebotenen Zeit nicht zu schaffen. Sie muss ihre Arbeit für zwanzig oder dreißig Sekunden einstellen – also ineffizienter werden – damit der Kollege wiederum mit seiner Arbeit beginnen kann.

Warum ich darüber schreibe? Genau das zweite Verhalten, die operative Hektik, sehe ich immer wieder in der Softwareentwicklung: Wenn Entwickler versuchen, ihre persönliche Aufgabe durch Überstunden und besonders „schnelle“ Arbeit so schnell wie möglich „abzuschließen“, geht das in der Regel auf Kosten der Qualität. Nachfolgende Tester oder Entwickler, die später den Code ändern müssen, sind die Leidtragenden, weil ihre Arbeit schwieriger wird. Und vor allem sind die Kunden die Leidtragenden, die nicht selten durch irrationalen Druck gehörige Mitverantwortung tragen. Diese operative Hektik ist nicht einmal Egoismus, weil das sogar den Entwickler selbst treffen kann. Es ist simple Kurzsichtigkeit.

Das gleiche gilt für Tester, die neue Features nicht testen, sobald sie bereit stehen, sondern erst, wenn der Test „an der Reihe ist“. Und natürlich für Manager, die solches Verhalten oft nicht nur dulden, sondern sogar fördern und belohnen.

Warum sind Flugbegleiter dabei so viel besser? Sie trainieren in mehreren Iterationen täglich in ständig wechselnden Teams. Sie haben den direkten Kundenkontakt, der bei ineffizientem Service deutliches Feedback ermöglicht. Und sie haben die notwendige Prozessfreiheit, den Vorgang immer weiter zu optimieren.

Iterationen, direkter Kundenkontakt und Retrospektiven helfen bei agiler Entwicklung, global zu optimieren, anstatt die Mitarbeiter in operativer Hektik auszubrennen.