Archiv für die Kategorie ‘Vortrag’

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

Eclipse verleiht Flügel

Dienstag, 15. Juni 2004

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 wird das System zur Erstellung der A380-Handbücher komplett neu entwickelt. Es verbindet SAP mit J2EE-Applikationen und integriert die verschiedensten Airbus-Informationssysteme. Bei der Auswahl der Java-Entwicklungsumgebung favorisierte man zunächst Borlands JBuilder. Heute ist Eclipse im Einsatz, und die Software wird mit Hilfe von Ant, XDoclet und CVS unter Solaris und Windows entwickelt und gewartet.

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.

Der Wechsel zu Eclipse begünstigte nicht zuletzt auch die Entscheidung für SWT als GUI-Framework für den Java-Client.

Gemeinsam mit meinem Kollegen Stefan M. Heldt habe ich zeigen können,

  • welche Gründe für einen Wechsel der Entwicklungsumgebung sprachen
  • wie zügig der Wechsel vonstatten ging
  • welchen Anteil Eclipse an der Produktivitätssteigerung hatte
  • wie der Entwicklungsprozess heute aussieht.

Homepage der Konferenz