Archiv für die Kategorie ‘Vortrag’

Prinzen und Aschenputtel: Anatomie eines Scrum-Teams

Donnerstag, 17. September 2009

In der agilen Literatur ist es fast wie im Märchen: Da werden die besten Mitarbeiter einer Firma zusammengerufen, um gemeinsam das beste Produkt aller Zeiten in vielen kleinen Schritten herzustellen – bei ständiger Zufriedenheit des Kunden. Das Team arbeitet selbstbestimmt und zielorientiert, man hilft sich gegenseitig, und alles wird gut. In der Praxis kann man froh sein, wenn man zu Projektbeginn überhaupt ein Team hat. Die Besten darf man höchstens ab und zu als Experten zu Rate ziehen. Dafür findet man die gesamte Bandbreite an Charaktereigenschaften vor: Prinzen – heimliche Anführer unter Gleichen; Ritter in goldener Rüstung – ohne sie läuft nichts, sie schlagen den Weg frei; das tapfere Schneiderlein – mit ihm ist man gut (?) beraten; Aschenputtel – das tiefe stille Wasser. Und viele weitere sonderbare Gestalten.

Lassen Sie sich verzaubern und erleben Sie, wie mit Hilfe eines Einhorns aus dem wunderbaren Land Scrum aus diesen Individuen ein schlagkräftiges Team geformt werden kann.

Expertenbefragung: Was Sie schon immer zum Thema Agilität fragen wollten

Montag, 22. Juni 2009

Eine Expertenbefragung zum Thema Agilität ist sicherlich eine gut gemeinte Idee. Das Thema ist aktuell, und es gibt noch eine Menge Informationsbedarf. Problematisch fand ich, dass man schwer einzuschätzen konnte, wie es um das Vorwissen des Publikums bestellt war. Beantwortete man eine Frage sehr knapp, dann setzte man vielleicht zu viel Wissen voraus. Hätte man weiter ausgeholt, dann wären diejenigen unruhig geworden, die mit den Grundlagen vertraut sind und nur “Spezialfragen” beantwortet wissen wollten. Die Bandbreite der Frage reichte von “welche agilen Methoden soll ich verwenden?” bis hin zu “was ist die Idealbesetzung für die Rolle des Product Owners?”. Insgesamt hatte ich das Gefühl, zu wenig Zeit gehabt zu haben. Außerdem entwickelte sich aufgrund der Spielregeln (Publikum fragt, Experten antworten) keine Diskussion, wie ich sie beim Fishbowl erlebt habe (und trotz des fehlenden Ergebnisses sehr gut fand). Ein solcher Fishbowl oder auch ein Open Space zu ausgewählten agilen Themen wäre meiner Meinung nach für alle Beteiligten fruchtbarer gewesen.

Ich freue mich auf den nächsten Hamburger Scrumtisch am 9. Juli, wo wir ähnliche Themen diskutieren – und nicht nur beantworten.

Fishbowl: Unterscheide komplizierte und komplexe Probleme und finde die dazu passenden Methoden, Prozesse und Strategien

Montag, 22. Juni 2009

Gemeinsam mit Klaus Marquardt, Bernd Oestereich und Jutta Eckstein durfte ich dem ersten Fishbowl auf der SEACON Starthilfe geben. Die Diskussion drehte sich zunächst um die Frage, wie man die Begriffe “kompliziert” und “komplex” definieren kann, ohne allerdings eine von allen akzeptierte Definition zu finden. Einige Diskussionsteilnehmer verwendeten beide Begriffe synonym und fanden es wichtiger, mit der Problemlösung zu beginnen, als sich mit der Kategorisierung zu beschäftigen. Das andere Lager (dem auch ich angehöre) würde zur Lösung komplizierter Probleme einen Experten zu Rate ziehen. Bei komplexen Problemen reicht das nicht aus. Hier gibt es nicht “die richtige Antwort”, weil sich der Problemraum unvorhersehbar verändert. Was tun? Einfach anfangen und auf die Kraft der Emergenz vertrauen. Die wenigen Regeln und Prinzipien, die agilen Verfahren zugrunde liegen, reichen aus, um dem Projektteam einen Rahmen zu bieten, innerhalb dessen es dem Problem zu Leibe rücken kann. Und damit sind wir plötzlich bei der Agilität. Das war dann auch das dominierende Thema in der zweiten Hälfte des Fishbowl.

Am Ende fehlte vielen Teilnehmern der rote Faden und ein Ergebnis. Das lag sicherlich daran, dass man ohne Definition in die Diskussion über komplizierte und komplexe Probleme gestartet war. Vielleicht hätte sich die “Startmannschaft” im Vorfeld ein wenig abstimmen sollen. Haften blieb aber eine sehr pragmatische Definition der beiden Begriffe, die einer der Fishbowl-Teilnehmer wie folgt formulierte: “Kompliziert sind die Probleme, für die ich keine Zeit habe. Komplexe Probleme sind jene, für die ich keine Lösung kenne.”

Königskinder: Wie Business Process Engine und Rule Engine zusammenfinden

Donnerstag, 23. April 2009

«Sie konnten zusammen nicht kommen, das Wasser war viel zu tief» – so heißt es im Lied von den zwei Königskindern. Mit der Integration von Business Process Engines und Rule Engines scheint es sich ähnlich zu verhalten. Obwohl beide Systeme einander ideal ergänzen, gestaltet sich die Zusammenführung mitunter schwierig. Dieser Vortrag sortiert die Begriffswelten und diskutiert Integrationsmuster für verschiedene Anwendungsfälle – Happy End inklusive.

Prinzen und Aschenputtel: Anatomie eines Scrum-Teams

Montag, 26. Januar 2009

In der agilen Literatur ist es wie im Märchen: Da werden die besten Mitarbeiter zusammengerufen, um gemeinsam das beste Produkt aller Zeiten iterativ herzustellen. Das Team arbeitet selbstbestimmt und zielorientiert, man hilft sich gegenseitig, der Kunde ist zufrieden – und alles wird gut. Die Praxis sieht oft anders aus und beschert uns heimliche Prinzen, draufgängerische Ritter, das tapfere Schneiderlein, Aschenputtel und andere märchenhafte Gestalten. Dieser Vortrag zeigt, wie man aus solchen Individuen ein erfolgreiches Team formen kann.

Mehr Standards = Bessere Software?

Mittwoch, 07. Mai 2008

In vielen IT-Projekten wird der Ruf nach Standards laut. Es klingt ja auch verlockend: Standardisierte Architekturen, Software, Systemlandschaften… sollten sich da nicht alle Probleme in Luft auflösen? Standardisierung führt oft zu einem Zielkonflikt. Es gibt konkurrierende Technologien, die oft schneller am Markt sind. Kommerzielle Interessen der Gremienmitglieder beeinflussen den Standard. Und dann ist da der Mensch, der vom Nutzen der Standards überzeugt sein will. Durch wechselnde Sichtweisen und einen Blick über den IT-Tellerrand ergibt sich ein vielfältiges Bild, das zum Nachdenken darüber anregt, was Software wirklich besser macht.

Java Persistence API – Java-Persistenz ganz leicht

Montag, 21. April 2008

Die Java Persistence API 1.0, entstanden im Rahmen der EJB-3.0-Spezifikation, bedient sich der guten Ideen ihrer Vorgänger, um den Umgang mit persistenten Java-Objekten so elegant und leichtgewichtig wie möglich zu gestalten – und das sowohl im Java-EE- als auch im Java-SE-Umfeld. Dieser Vortrag gibt einen Überblick über die Verbesserungen und Neuerungen der Java Persistence API und beschreibt deren Auswirkungen auf die Architektur und die Entwicklung von Enterprise-Java-Anwendungen.

Build am Sonntag

Freitag, 20. April 2007

Dem Build- und Release-Management wird in vielen Projekten nicht der nötige Stellenwert eingeräumt. Im Budget- und Projektplan taucht das Thema nur selten auf. Dabei kann sowohl eine sorgfältige Planung der Software-Releases als auch ein weitgehend standardisierter und automatisierter Prozess für das Erstellen der Software aus den verschiedenen Quellcodes einen wesentlichen Einfluss auf die termin- und kostengerechte Lieferung der Software haben. Im Rahmen des Vortrags beleuchten wir die wesentlichen Aspekte des Build- und Release-Managements in großen Projekten und stellen Best Practices aus unserem Projektalltag vor:

  • Konfigurationsmanagement
  • Build Management
  • Eclipse 3.2, Equinox und OSGi
  • Release Management
  • Versionierung und Roll-out
  • Der Open-Source-Werkzeugkasten

Build am Sonntag

Mittwoch, 23. November 2005

Dem Build- und Release-Management wird in vielen Projekten nicht der nötige Stellenwert eingeräumt. Im Budget- und Projektplan taucht das Thema nur selten auf. Dabei kann sowohl eine sorgfältige Planung der Software-Releases als auch ein weitgehend standardisierter und automatisierter Prozess für das Erstellen der Software aus den verschiedenen Quellcodes einen wesentlichen Einfluss auf die termin- und kostengerechte Lieferung der Software haben.

Insbesondere große, mehrschichtige Anwendungssysteme mit vielen Benutzern stellen hohe Anforderungen an die Releaseplanung. Muss Client-Software ausgeliefert werden, dann spielen Aspekte wie Internationalisierung, zeitlicher Vorlauf für den Roll-out und Distributionsmechanismen eine Rolle. Der von den verschiedenen Schichten (Client, Middleware, Server, Backend-Systeme) angebotene Funktionsumfang sowie die Schnittstellen müssen zueinander passen. Auch hier ist der Release-Manager gefragt. Was aber, wenn die Entwickler bereits an der übernächsten Version arbeiten? Kein Problem – wenn die Versionskontrolle funktioniert. Durch Definition verschiedener Entwicklungsstränge (Branches) kann die Weiterentwicklung parallelisiert werden.

Allerdings muss gewährleistet sein, dass zeitgleich die in der produktiven Softwareversion auftretenden Fehler behoben werden können. Das lässt sich durch die Definition getrennter Umgebungen für Entwicklung, Test, Schulung und produktiven Betrieb erreichen. Wird das Anwendungssystem von externen Dienstleistern entwickelt, dann sollte man als Kunde darauf bestehen, dass das System jederzeit aus dem Quellcode erzeugt werden kann. Neben den geeigneten Werkzeugen und Verfahren gilt es aber vor allem, den Entwicklungs- und Release-Prozess zu definieren und Verantwortliche zu benennen. Erst dann kann die Software jederzeit von (fast) jedermann gebaut werden – falls nötig auch am Sonntag. Im Rahmen der iX-Konferenz haben wir die wesentlichen Aspekte des Build- und Release-Managements in großen Projekten beleuchtet und Best Practices aus unserem Projektalltag vorgestellt:

  • Versionsverwaltung mit mehreren Entwicklern
  • Branch & Merge
  • Automatisiertes Build-Management
  • Codegenerierung
  • Der Kunde baut sich seine Software selbst
  • Roll-out von Client-Software
  • Releaseplanung und- dokumentation
  • Softwareentwicklungsprozess
  • Standards und Werkzeuge

Homepage der Konferenz

Eclipse bei Airbus

Dienstag, 14. Juni 2005

Jeder, der schon einmal an der Entwicklung eines umfangreichen Softwareprojekts beteiligt gewesen ist, kennt die besonderen Herausforderungen solcher Großprojekte. Der Airbus-Konzern hat seit einiger Zeit nicht nur eines, sondern gleich mehrere davon, die alle auf ein gemeinsames Ziel hinarbeiten. Es handelt sich dabei um das ehrgeizigste Projekt der jüngeren Luftfahrtgeschichte: Die Entwicklung des Großraumjets A380.

In vielen Bereichen wie Planung, Konstruktion oder IT setzt Airbus bewusst auf neue, moderne Methoden und Hilfsmittel. So wurde das System zur Erstellung der A380-Handbücher neu entwickelt. Es verbindet SAP mit J2EE-Applikationen und integriert verschiedene Airbus-Informationssysteme. Hier ist Eclipse im Einsatz, um die Software mit Hilfe von Ant, XDoclet und CVS unter Solaris und Windows zu entwickeln und zu warten. SWT dient als GUI-Framework für den Java-Client. Für eine proprietäre Skriptsprache wurde zudem ein eigenes Editor-Plugin für Eclipse entwickelt. Aus der Kombination dieser Werkzeuge entstand ein durchgängiger und integrierter Entwicklungsprozess, der sich in der täglichen Praxis bewährt und kontinuierlich verfeinert wird.

Auch für die redaktionelle Arbeit, die Verwaltung und die Erzeugung von Master-CDs zur Vervielfältigung werden integrierte Systeme benötigt. Diese müssen große Datenmengen verwalten können, denn einige Handbücher umfassen mehrere zehntausend Seiten. Eine benutzerfreundliche Oberfläche soll die komplexen Abläufe bei der Erstellung, Versionierung und Produktion der Handbücher optimal unterstützen. Die guten Erfahrungen mit Eclipse als Entwicklungsumgebung und SWT für die Client-Entwicklung führten zu der Entscheidung, die Eclipse 3.0 Rich Client Platform (RCP) als Fundament für die Applikationen zur Handbuchverwaltung zu verwenden.

Gemeinsam mit meinem Kollegen Roman Schlömmer habe ich zeigen können,

  • welche Rolle Eclipse in der Softwareentwicklung spielt,
  • wie Eclipse den Entwicklungsprozess unterstützt,
  • wie ein eigenentwickeltes Eclipse-Plugin die Entwicklung und Wartung vereinfacht,
  • wie mit Hilfe von Eclipse RCP und SWT eine Benutzungsoberfläche für ein Dokumentenverwaltungssystem entwickelt wurde, das sich durch hohe Performanz und Benutzerakzeptanz auszeichnet.

Homepage der Konferenz