Es gibt keine Osmose der Firmenkultur

01. Oktober 2009

Durch Artikel im Projektmanagement-Blog und im Blog von Jens Coldewey bin ich über Youtube (nein hier gibt es keinen Link) auf Prof. Peter Kruse aufmerksam geworden.

In diesem Video erklärt Prof. Kruse sehr gut, warum Veränderungsprozesse auch immer durch die oberste Ebene einer Organisation mitgetragen werden müssen und eine Änderung von unten nie erfolgreich ist. Und falls doch, dann nur, weil die Führung durch eine Reihe von Krisen so geschwächt ist, daß sie dem Änderungsdruck von unten nichts entgegen setzen können.

Für uns und unsere Projekte bedeutet dies, daß Veränderungen nur erfolgreich sind, wenn wir die Unterstützung der wichtigsten Stakeholder haben oder einfach der richtige Zeitpunkt dafür gekommen ist.

Quellen und Verweise

Entwicklungslandschaft Teil 2 – Schnelligkeit

26. September 2009

Schnelligkeit als Kriterium einer Entwicklungsumgebung Woher das Wort Schnelligkeit kommt weiß ich leider nicht. Auch ein Blick in den Kluge konnte mir nicht weiterhelfen. Für eine Entwicklunglandschaft bedeutet Schnelligkeit aber etwas ähnliches wie für den Sportler. Im Sport wird Schnelligkeit in zwei Arten aufgeteilt:

  • Aktionsschnelligkeit und
  • Reaktionsschnelligkeit

Aktionsschnell ist jemand, der etwas in kürzerer Zeit machen kann als andere, zum Beispiel Laufen. Reaktionsschnell ist jemand, der sich in kurzer Zeit auf Signale und Reize reagieren kann.

Auch Entwicklungsumgebungen kennen solche zwei Arten der Schnelligkeit. Die Aktionsschnelligkeit einer Entwicklungumgebung ist die Fähigkeit Entwicklungsaufgaben in möglichst kurzer Zeit effizient durchführen zu können.

Eine gute Build-Umgebung erlaubt es uns schnell überprüfen zu können, ob unser Code gebaut werden kann. Eine gute Testumgebung schafft uns die Möglichkeit unsere Änderungen schnell überprüfen zu können. Habe ich etwas kaputt gemacht?

Eine Entwicklungslandschaft kann zwar nicht reaktionsschnell sein, zumindest nicht direkt, aber sie kann eine hohe Änderungsschnelligkeit haben. Das heißt nichts anderes, als daß sich Änderungen in der Entwicklungslandschaft schnell vornehmen lassen.

Bis hier wird jeder sicherlich zustimmen können und jeder wird wohl auch ein Build-Script haben, daß seinen Code baut oder zumindest etwas ähnliches. Doch gehört dazu noch mehr als das, was in den meisten Entwicklungsumgebungen zu finden ist. Uns geht die Aktionsschnelligkeit verloren, wenn wir bei häufigen Tätigkeiten immer manuell eingreifen müssen. Wir sind zwar bei den einzelnen Schritten schnell, verlieren dann aber Zeit beispielsweise mit Kopieren von Dateien oder ähnlichem.

Aber wozu brauchen wir diese Schnelligkeit eigentlich? Sicher will keiner lange auf irgendetwas warten. Das ist klar. Wir brauchen diese Schnelligkeit vorallem für eins: um flexibel zu bleiben. Wir alle sind in der einen oder anderen Art faul und sobald bestimmte Aufgaben uns zu aufwendig erscheinen, versuchen wir sie zu umgehen. Wir bauen oder testen weniger und ab dem Punkte sind wir auf dem absteigenden Ast...

Und wie kommen wir zu einer schnellen Entwicklungsumgebung:

  • Analysieren Sie die Abhängigkeiten in ihrer Entwicklungsumgebung und durchtrennen sie sie dort, wo sie nicht notwendig sind.
  • Cachen Sie Zwischenergebnisse wo immer möglich. Nicht alles muß immer wieder erzeugt oder generiert werden.
  • Wählen sie die richtigen Tools aus.

Um wirklich schnell zu sein, braucht es aber auch einen hohen Automatisierunggrad. Aber das ist ein anderes Thema...

Berliner Scrum-Stammtisch mit Mary Poppendieck

21. September 2009

Hier ein kleiner Veranstaltungshinweis für alle Berliner. Marion Eickmann von agile42 hat es geschafft Mary Poppendieck für den nächsten Berliner Scrum-Stammtisch am 11. Oktober 2009 zu gewinnen.

Wer gerne am Stammtisch teilnehmen würde, erfährt auf dem agile42-Blog alles dafür notwendige.

Management von IT-Produkten erhalten

15. September 2009

Schon vor einiger Zeit habe ich auf ein inzwischen nicht mehr ganz so neues, aber trotzdem sehr interessantes Buch hingewiesen.

Jetzt habe ich es mir endlich gekauft und scheine sogar die Zeit zu haben, es zu lesen... Anschließend werde ich eine kleine Zusammenfassung schreiben. Obwohl ich glaube, daß sie sich inhaltlich mit denen auf der Produktseite von Amazon decken wird. :-)

Sonnenuntergang

07. September 2009

Von Eclipse als Entwicklungsumgebung war ich noch nie begeistert. Eclipse war mir immer zu groß, langsam und schwerfällig. Wohl auch berechtigt, wenn man im Vergleich dazu Intellij IDEA von Jetbrains aus St. Petersburg benutzt.

Daher hat mich "I stopped using Eclipse..." Artikel im Blog von Gernot Starke richtig aufrichtig gefreut.

Dazu passend hier noch ein Ausschnitt von der XING-Seite eines ehemaligen Kollegen:

Herzliche Grüße nach Bonn und Köln!

Entwicklungslandschaft Teil 1 – Blühende Landschaften

05. September 2009

Softwareentwickler verbringen die meiste Zeit ihrer Arbeit mit ihrer Entwicklungsumgebung. Daher bin ich oft überrascht, auf welch schlecht aufgebauten Entwicklungsumgebungen ich in Software-Projekten stoße.

Vielleicht sollte ich aber eher von Entwicklungslandschaft als von -umgebung sprechen, da für mich alles zur Entwicklungslandschaft zählt, was wir für unsere Software-Entwicklung benötigen. Das schließt alles mit ein, angefangen vom Datenbanksystem bis hin zu Issue-Tracking-System.

Schon Ian Sommerville nennt als eine zentrale Anfoderung an Software-Entwicklungsumgebungen (-landschaften), daß verschiedene Werkzeuge für unterschiedliche Phasen zur Verfügung stehen sollen, die Menge der Funktionen der Entwicklungsumgebung aber zu jeder Zeit durch neue Werkzeuge erweitern lassen muss, um neue Funktionen integrieren zu können, da wir nicht wissen, welche Funktionen später umzusetzen sind. Kurz gesagt, sie soll flexibel sein.

Oft sind Entwicklungslandschaften jedoch das ganze Gegenteil: starr und sogar hinderlich bei der Arbeit. Im einfachsten Falle kosten sie einfach nur Zeit. Die Probleme in einer Entwicklungslandschaft fangen schon an, wenn mehrere Entwickler dazu gezwungen sind auf der gleichen Datenbank parallel zu entwickeln und enden in stundenlangenen Installationen von Tools und deren Konfiguration.

Dabei muß unsere Entwicklungslandschaft genauso flexibel oder besser gesagt agil ;-) sein wie wir selber. Die gute Entwicklungsumgebung muß uns bei allen Änderungen unterstützen, uns einladen neues auszuprobieren und flexibel zu bleiben. Sobald wir eine Änderung, einen Test oder Idee verwerfen, nur weil sie nicht mit angemessenem Aufwand mit unserer Entwicklungslandschaft umzusetzen ist, ist es Zeit über sie nachzudenken.

Damit dies einfacher fällt, habe ich hier meine Kriterien für eine gute Entwicklungslandschaft zusammengestellt:

  • Angemessenheit Eine Entwicklungslandschaft muß vom Entwicklungs- und Pflegeaufwand zur Projektgröße und -dauer passen. Je größer, je länger oder je mehr Entwickler an dem Projekt teilnehmen, desto mehr rentiert sich auch ein größerer Aufwand für die Entwicklungsumgebung.
  • Zweckdienlichkeit Alle Komponenten der Entwicklungslandschaft sind effektiv für ihren Einsatzzweck und effizient einsetzbar.
  • Isolation Jeder Entwickler muß die Möglichkeit und Sicherheit haben, Änderungen unabhängig von anderen durchführen zu können und auch nicht durch die Änderungen anderer ungewollt beeinflußt zu werden. Und hierbei denke ich nicht nur an den Einsatz eines Versionskontrollsystems.
  • Automatisierung Wiederkehrende Tätigkeiten müssen automatisierbar sein. Die Entwicklungsumgebung muß hierfür die notwendige Unterstützung anbieten. Stichwörter sind hier beispielsweise Ant und Maven.
  • Schnelligkeit Jede regelmäßig ausgeführte Tätigkeit muss sich in der Entwicklungslandschaft schnell ausführen lassen.
  • Anpassbarkeit Jeder Entwickler muß die Möglichkeit haben seine persönliche Entwicklungslandschaft an seinen Erfordernissen entsprechend zu konfigurieren.
  • Erweiterbarkeit Neue temporär und permantente Funktionen müssen sich leicht in die bestehende Entwicklungslandschaft integrieren lassen.
  • Neutralität Einzelne Komponenten der Entwicklungslandschaft müssen sich leicht gegen andere Tools mit einer äquivalenten Funktionalität austauschen lassen. Funktionalität und Werkzeug müssen also so weit wie möglich orthogonal sein.

In den nächsten Tagen werde ich die einzelnen Punkte näher erläutern...

Resistance is futile

20. August 2009

Die Abende in Berlin sind in den letzten Wochen nun wirklich schön. Mehr als Grund genug sich mit Freunden und Bekannten auf eine Tasse Kaffee oder ein Glas Wein zu treffen. Trifft man sich wie am Dienstag werden unweigerlich Anekdoten ausgetauscht. Seine Erfahrungen mit einer großen Consulting-Firma und deren "Borgs" wurden dabei ungefähr so zusammengefaßt:

We are Firmenname. Your life as it has been is over.
Prepare to be consulted. Resistance is futile.

Ersetzen Sie einfach Firmenname durch den Namen der von Ihnen am meisten geliebten Beratungsfirma... ;-)

Rückblick auf den Scrum Day 2009 in München

09. Mai 2009

Die Haustür ist noch abgeschlossen. Ich bin scheinbar der erste, der unser Wohnhaus in Berlin verläßt. Vor dem Haus wartet ein Taxi auf mich, das mich nach Tegel zum Flughafen bringen soll. Von da aus soll es dann mit Lufthansa weiter nach München gehen, zum ersten deutschen Scrum Day gehen. Es regnet leicht.

Scheinbar kommen auch die agilen Vorgehensweisen nicht ohne ihre Konferenzen und Treffen aus. Wohl wieder eine Gemeinsamkeit mit den klassischen Vorgehensweisen. Da sich Scrum immer weiter in der IT-Branche als leichtgewichtiges Vorgehensmodell oder besser gesagt Framework etabliert und es in vielen Punkten mit dem von mir früher selbst praktizierten und auch bevorzugten Praktiken in Projekten deckt, habe ich beschlossen dabei zu sein. Die Keynote wird von Ken Schwaber, dem Vater von Scrum gehalten, der praktischer Weise gleich noch vor dem Scrum Day Zertifizierungen zum Scrum Master anbietet. Und da Vorgehensmodell von einigen Vertretern unserer Zunft wie Religionen gelebt werden, will ich auch einmal einen echten Gott sehen. Da lohnt sich die Anreise doch gleich doppelt.
Da ich selten in München bin, bin ich bei der Suche nach einem Taxi-Stand auf Hilfe angewiesen, die mich aber glatt zu einem Taxi-Stand für Abflüge schickt. Die Taxen halten hier nur kurz, so daß ich kein freies finde und mir ein wartender Chauffeur eines freudlicher Weise ruft. Gut, S-Klasse als Taxi hatte ich auch noch nicht, hinterläßt aber auch keinen besonderen Eindruck.

Götter müssen gut verkaufen können

Der Scrum Day beginnt mit der Keynote von Ken Schwaber. Leider komme ich etwas zu spät, so daß mir nur noch ein Stehplatz am Ende des Raumes bleibt. Ken Schwaber ist ein kleiner und drahtiger Mann wohl Ende vierzig, der in seiner Keynote „Scrum, But…“ mit den Problemen von Scrum in der Praxis auseinandersetzt. Und das kann er gut. Ken Schwaber ist ein gekonnter Verkäufer, wohl auch einer der Gründe für den Erfolg von Scrum. Er ist überzeugend, auch wenn etwas manipulativ.

Um die Schwächen von Command&Control zu demonstrieren, läßt er die Zuhörer seiner Keynote aufstehen und Paare bilden. Einer aus dem Paar konnte dem anderen die Befehle links, recht, vor und zurück geben und es schaffen, daß dieser in vorgebener Zeit 60 Schritte schafft, ganz nach dem Grundmuster von Command&Control. Natürlich schafften das die wenigsten. Aber auch kein Wunder, schließlich war der Raum voll. Anschließend durfte jeder Teilnehmer seinen Weg selber suchen, was zu einem wesentlich besseren Ergebnis führte. Worüber dieser Test etwas aussagt weiß ich nicht. Vielleicht darüber, daß, wenn günstige Voraussetzungen geschaffen werden, man alles zeigen kann was man will. Übrigens, die einfachste Lösung der Aufgabe auf kleinstem Raum ist sechzigmal links zu sagen.
Aus Schwabers Vortrag ist mir vor allem die Aussage im Gedächtnis geblieben, daß nur 25% aller Entwickler in der Lage sind, innerhalb von Sprints auslieferbaren Code zu liefern, da ihnen wesentliche Techniken fehlen. Grund dafür seien mangelnde Anwendung von TDD, fehlende Standards zu Coding-Styles und Reviews und letztendlich eine schlechte Werkzeugunterstützung. Wahrscheinlich stimmt das leider auch. Gute Arbeit kann man nur in einer gutem Umgebung leisten.

Butter bei die Fisch

Die anschließenden Vorträge teilten sich in zwei Stränge auf, womit ich vor dem üblichen Problem stand, daß man nur einen von zwei Vorträgen hören kann. So stand ich vor der Wahl zu „Retrospektiven als Grundlage agilen Projektmanagements oder: Gelebte Streitkultur“ oder „Vom Businessneed zum hochwertigen Produktbacklog“ zu gehen. Ich entschied mich für letzteres. Die beiden Referenten, Dr. Martin Wrangel und Sebastian Neus, beschrieben in ihrem Einführungsvortrag wie sie in einem größeren Projekt Anforderungen in Product-Backlog-Items umgesetzt haben.

Ausgehend davon, daß Anforderungen für jeden Sprint hinreichend präzise sei müssen, um sie verläßlich in einem Sprint umzusetzen.

Beide gehen davon aus, daß Backlog-Items so präzise sein müssen, daß das Team sein Commitment abgeben kann. Wer bereits Projekte geleitet hat, weiß wie schwierig das sein kann, da sich viele Aufgaben bei der Umsetzung als komplexer erweisen, als anfangs angenommen und eine Menge Erfahrung dafür notwendig ist, dies miteinkalkulieren zu können.
Konzeption und Schätzung von Aufgaben gehören für die beiden auch in einen Sprint und können bis zu drei Tagen in Anspruch nehmen, da das Planning Meeting sich bei ihnen nicht als zeitlich ausreichend erwiesen hat. Um alle wirklich existierenden Anforderungen an das Produkt zu erfassen, wurde in dem behandelten Beispielprojekt ein Product-Owner-Team unter Führung eines Chef-Product-Owners gebildet. Wer oder welcher Bereich in dem Product-Owner-Team vertreten sein mußte, wurde über eine Stakeholder-Analyse ermittelt.
Nach den Erfahrungen der aus diesem Projekt kommen einige Entwickler nicht mit der für Scrum notwendigen Eigenverantwort klar und wünschen sich eine klarere Vorgabe was wie zu tun ist. Auch war es für das Team wichtig, zusammen zu einer gemeinsamen Definition von Fertig zu kommen.
Insgesamt war dieser Vortrag von meinen gehörten Vorträgen, inklusive der sich nach jedem Vortrag anschließenden Diskussion, einer der besten, da er inhaltlich überzeugend war und praktische Lösungsmöglichkeiten gut aufgezeigt hat.

Als nächsten Vortrag habe ich mir dann Boris Gloger und Oliver Zeil von ImmobilienScout24 ausgesucht. Wahrscheinlich, weil ich Boris Gloger nach der Lektüre seines Scrum-Buchs einmal selber erleben wollte. Hierzu muß ich sagen, daß das Buch nicht schlecht ist, viele Beispiele in dem Buch die Gloger benutzt schlichtweg falsch sind und er geradezu in der Einführung polemisiert. Alles Punkte die mich etwas abgestoßen haben. Vielleicht war ich voreingenommen, aber der Vortrag hinterließ auch keinen besonderen positiven Eindruck. Viele Punkte waren mir zu vereinfachend. Teilweise war es mir zu prinzipiell. Warum ein Planing Meeting genau 90 Minuten sein müssen, ist mir nicht klar geworden. Zwar sollten Timeboxen eingehalten werden, wenn sie aber generell zu kurz für ein Team sind, müssen sie auch angepaßt werden dürfen. Mit dieser Art der Orthodoxie kann ich immer wenig anfangen.

Im dritten meiner besuchten Vorträge haben Jan Ebert und Reines Vicups sich mit Anforderungsmanagement innerhalb von Scrum beschäftigt. Dementsprechend hieß der Vortrag auch „Scrum und professionelles Anforderungsmanagement – ein Widerspruch oder nur eine Frage der Vorgehensweise?“ Beide vertraten die Ansicht, daß Anforderungsmanagement grundlegend für erfolgreiche Projekte ist, aber in Scrum nur unzureichend behandelt wird. Zwar wird dem Product-Owner die Verantwortung übertragen die Anforderungen des Kunden an das Produkt zu erfassen und gegenüber dem Team zu priorisieren, doch liefert Scrum hierfür keine Hilfsmittel. Diese Lücke zwischen „ja, aber nur wie?“ kann professionelles Anforderungsmanagent lösen. Inhaltlich ein sehr fundierter Vortrag, dessen behandelte Techniken sehr gut durch Literatur zum RE behandelt werden. Beide haben auch die notwendige Fähigkeit des Product Owners betont, gute Anforderungen bereitzustellen. Hierfür muß er sich zum einen mit den Methoden es Requirement-Engineerings auskennen und zum anderen auch über Domain-Wissen verfügen. Ich denke, daß dies in vielen Nicht-IT-Firmen schwierig sein dürfte, diese beiden Fähigkeiten in einer Person vereint zu finden.
Interessant war die anschließende Diskussion, in der Oliver Zeiler von ImmobilienScout24 einwandte, daß er sich in seinem Bereich diesen Aufwand nicht in der Form leisten könne, worauf ich bat doch Beispielprojekte zu nennen, in denen die beiden RE in der von ihnen beschriebenden Tiefe durchgeführt haben. Erwartungsgemäß war es größere Projekte mit einem längeren Fokus, entweder in regulierten Einsatzgebieten wie Medizintechnik oder auch Produktlinienentwicklungen. Das solche Projekte ein anderes Umfeld mit anderen Anforderungen haben als ein Internetportal dürfte klar sein.

Als letzten Vortrag habe ich mich dann für „Was (noch) klassische Projekte von Scrum&Co lernen können – eine empirische Studie“ von Markus Wittwer, oose Innovative Informatik, entschieden. Die oose hat um die Jahreswende 2008/2009 eine Online-Umfrage zum Projektmanagement durchgeführt, deren Ergebnisse von Wittwer vorgestellt wurden. Nach den Umfrageergebnissen sind agile Projekte häufiger erfolgreich als klassische Projekte, wobei der regelmäßige Kundenkontakt ein maßgeblicher Faktor ist. Erfahrene Projektleiter kombinieren jedoch eher agile und klassische Techniken. Dazu paßt auch, daß ein Vorgehensmodell keine Aussagen zu eingesetzten Techniken und umgekehrt zuläßt. Vorgehensmodelle sind wohl eher doch Leitkulturen oder -ideen, die letztendlich durch Menschen gelebt werden müssen. Im schlimmsten Fall sind sie aber auch nur ein Mäntelchen, welches sich man umhängt. Ich es ist wie mit dem Kochen. Jeder paßt sein Rezept dem eigenen Geschmack an und nimmt die Zutaten welche die eigene Küche hergibt.

Neben dem ersten erscheint mir der Praxisvortrag von Mathias Patzak „ScrumHell – Wann sind Sie ‚Done‘“ über die Scrum-Einführung bei AutoScout24 einer der besten gewesen zu sein. Nicht nur, wegen seines sehr lebendigen Vortragsstils, sondern auch wegen des wichtigen Hinweises darauf, daß es wichtig ist eine Kultur zu etablieren. Und die in einem Unternehmen gelebte (nein, nicht die nach außen kommunizierte) Kultur entscheidet über Erfolg von agilen Techniken. Fragwürdig erscheint es mir aber, die Spezifikation in den Sprint zu verlegen.

Was am Ende bleibt

Spät kehre ich wieder nach Berlin zurück. Das eine Konferenz in München stattfindet heißt nicht, daß man als Teilnehmer auch in München landet. Es kann auch Aschheim-Dornach sein und macht sich in einem dreistelligen Betrag für Taxifahrten bemerkbar. Abgesehen davon konnte ich an einigen interessanten Vorträgen teilnehmen und interessante Gespräche führen. Gewünscht hätte ich mir aber auch eine stärkere Diskussion von Scrum und Lean Management Methoden ansich. Das Organisationsniveau des Scrum Days war gut bis sehr gut. Das man sich so gut um das leibliche Wohl der Gäste gekümmert hat, habe ich nicht so oft erlebt. Getränke und kleine Imbisse waren über die ganze Zeit verfügbar. Lediglich hätte mich mir in manchen Räumen mehr Stühle gewünscht und nicht über das Kabel des Projektors steigen zu müssen. Bei einer Eintagesveranstaltung dieser Preisklasse stelle ich diesen Anspruch schon. Fachlich hat es sich auf jeden Fall gelohnt, da der Scrum Day nicht nur gute Einblick in die Umsetzung von Scrum gebracht hat, sondern auch gezeigt hat, daß Scrum als kleines Framework bei jedem anders sein kann. Eine gute Voraussetzung, um langfristig erfolgreich zu sein.

P.S.: Einige weitere Gedanken zum Scrum Day von Markus Wittwer kann man im oose-Blog (Gedanken zum Scrum-Day in München (Teil 1), Gedanken zum Scrum-Day in München (Teil 2)) finden.

Scrum Day in München 2009

06. Mai 2009

Heute bin ich auf dem Scrum Day 2009 in München. In den nächsten Tagen gibt es den Bericht hierzu...

Ward Cunnigham über technische Schulden

03. Mai 2009

Vor einiger Zeit habe ich ein Phänomen beschrieben, welches ich Event-Driven-Software-Development nenne und dessen Kern von Martin Fowler als Technische Schulden beschrieben wird.

In Fowlers Blog habe ich jetzt einen Verweis auf ein Video von Ward Cunnigham gefunden, in welchem er den Begriff Technische Schulden erläutert und in 4 Minuten und 44 Sekunden auf den Punkt bringt.