Sie befinden sich in den Archiven der Kategorie Konferenzen.
- Agilität (60)
- Allgemein (8)
- Ankündigungen (10)
- Buchtipp (8)
- Crystal (1)
- Konferenzen (11)
- Kunden (3)
- Management (26)
- Planung (9)
- Politik (9)
- Praktiken (3)
- Refactoring (8)
- Scrum (4)
- Software Design (6)
- Surftipp (9)
- Testgetriebene Entwicklung (6)
- Werkzeuge (6)
- Zitate (8)
- 12.11.2008: Einsatz testgetriebener Entwicklung nimmt langsam zu
- 11.11.2008: Crystal in einem Satz
- 8.11.2008: Klinsmann und Management
- 6.11.2008: Wie Unternehmen die Krise überleben
- 31.10.2008: Studienteilnehmer gesucht für Studie zu agilen Team
- 30.10.2008: Hürden gegen Akzeptanztest-getriebene Entwicklung
- 21.10.2008: Agilität und Software-Engineering
- 20.10.2008: Notizen von der OOPSLA - Refactoring Werkzeuge
- 17.10.2008: Refactoringseminar in München
- 15.10.2008: Einführung agiler Entwicklung bei Yahoo International
Archiv der Kategorie Konferenzen
Notizen von der OOPSLA - Refactoring Werkzeuge
20.10.2008 von Jens Coldewey.
Einmal im Jahr gönne ich mir den Besuch der OOPSLA. Zum einen, um Bekanntschaften und Freundschaften zu pflegen, aber auch, um einen Überblick zu bekommen, was derzeit an (wirklich) neuen Dingen aufkommt, abseits der aufgeregten Marketing-Hypes. Ich möchte hier über für mich interessante Erkenntnisse berichten.
Am ersten Tag entschloss ich mich kurzfristig, als Zuhörer am zweiten Workshop über Refactoringwerkzeuge teilzunehmen. Eine Entscheidung, die sich gelohnt hat, obwohl ich normalerweise “Präsentationsworkshops” meide. Der Workshop hat einen guten Überblick über den aktuellen Stand der Forschung zum Thema Refactoring gegeben — und deutlich gemacht, dass wir hier erst am Beginn einer Entwicklung stehen, die unsere Arbeit über die nächsten Jahre wesentlich beeinflussen wird.
Zu den Vorträgen:
Refactoring bei IntelliJ
Dimitri Jemerov von JetBrains (IntelliJ, Resharper) stellte die Mechanismen hinter den Refactoring Browser von IntelliJ IDEA vor. Er basiert auf einem gemeinsamen “Refactoring Workflow Framework”, mit dem sich die einzelnen Operationen relativ einfach implementieren lassen. Jemerov sprach von einer “Refactoring DSL”, die bei IntelliJ dafür entwickelt wurde.
Während die Grundlagen relativ gut standardisierbar sind (und die vorgestellten Ideen auch entsprechend wenig überraschend), liegt der Teufel und damit auch der Aufwand im Detail. Hier diktiert die Sprachkomplexität auch die Komplexität des Refactorings. Gerade bei Java mit seinen Einschränkungen was wo erlaubt ist, führt das beim Refactoring gelegentlich auch zu Ergebnissen, die nicht gerade schön sind. Die Begründung war pragmatisch: Normalerweise wird refaktorisierter Code nicht mehr überprüft. Daher muss er zu 100% korrekt sein, auch wenn das Ergebnis nicht gerade elegant ist.
Interessante Features von IntelliJ, die er vorstellte, waren:
- Extract Method bei mehreren Ergebniswerten: Hier werden komplette Klassen erzuegt und extrahiert.
- Refactorings über mehrere Sprachen: Während der aktuelle Stand (Rename, Move) noch nicht so aufregend ist, wird derzeit daran gearbeitet, die interne Darstellung sprachübergreifend zu gestalten, um auch komplexe Refactorings sprachübergreifend zu ermöglich. Geplant ist Unterstützung von Java, Ruby, Groovy, Python und XML (wenn ich keinen vergessen habe…)
- Veränderung von Typen: Als Beispiel ersetzte Dimitri ein Array durch eine Liste, ein Beispiel für ein ziemlich komplexes Refactoring, das auch nur teilautomatisiert möglich ist. Leider reichte die Zeit nicht aus, das im Detail darzustellen.
Die anschließende Diskussion kreiste vor allem um den Konflikt zwischen 100% korrektem Umbau des Codes, eleganten Ergebnissen und Unterstützung des Entwicklers. Es dürfte hier kaum möglich sein, den richtigen Weg zu finden.
Oberflächen für Refactoring Werkzeuge
Dustin Campbell, der vor wenigen Monaten von DevExpress (Refactor!) zu Microsoft wechselte, demonstrierte aktuelle Entwicklungen in der Oberfläche von Refactoring Werkzeugen am Beispiel von Refactor!. Der Trend geht dahin, den Browser nahtlos in den Editor zu integrieren: Keine Dialogboxen mehr, keine Sammlungen von Shortcuts, statt dessen kontext-sensitive Erweiterungen des Editors. Wer mit Eclipse arbeitet, kennt ähnliche Ansätze bereits vom Umbenennen eines Identifikators: Drückt man vor dem Editieren eines Identifikators eine bestimmte Tastenkombination, werden auch alle anderen Vorkommen umbenannt. Refactor! treibt diesen Ansatz wesentlich weiter: Das Werkzeug ist darauf optimiert, mit einem einzigen Shortcut kontextsensitiv zu arbeiten.
Die Demonstration war beeindruckend, hier wurde ziemlich sicher die derzeit beste Lösung für die Oberfläche des Werkzeugs präsentiert. Ob die dahinter liegenden Mechanismen mit den Anforderungen großer Systeme mithalten können, weiß ich nicht. Ebenso wenig ist mir klar, ob diese Art der Oberfläche für Umbauten an großen Systemen noch adäquat ist, insbesondere in Situationen, in denen bewusst nicht-vollständige Refactorings eingesetzt werden sollen. Das lässt sich sicherlich nur durch praktischen Einsatz herausfinden (Bekannt ist, dass Refactor! für C++ erhebliche Stabilitätsprobleme hat. Die Versionen für C# (und andere .NET Sprachen) scheinen nicht so extrem unter diesem Problem zu leiden). Unabhängig davon ist die enge Integration von Editor und Refactoring sehr interessant (sie war genau genommen bereits in John Grants und Don Roberts “Ur-Refactoring-Browser” angelegt) und ich hoffe, dass sie sich auf breiter Basis durchsetzen.
Werkzeuge zur Entwicklung von Refactoring Werkzeugen
Dieser Teil des Workshops richtete sich naturgemäß eher an jene, die selbst Refactoring bauen, als an deren Anwender. Ich fand die Vorträge dennoch interessant, weil sie einen guten Eindruck liefern, mit welchen Problemen derzeit gekämpft wird und was uns die Zukunft hier bringen kann.
Verbesserung der Analyse
Max Schäfer von der Oxford University stellte eine Refactoring Engine vor, die sich vor allem um Namensprobleme kümmert, um sicher zu stellen, dass die verbreiteten Probleme, die Refactoringwerkzeuge mit Verschattung von Namen haben. Aus Anwendersicht war die Nachricht interessant, dass keines der marktüblichen Werkzeuge hier wirklich sauber arbeitet. Es lohnt sich also weiterhin, darauf zu achten, dass man die Verschattungsregeln der Sprachen nicht zu sehr ausreizt — eine Regel, die schon im Interesse der Lesbarkeit von Programmen sinnvoll ist.
Framework für den Bau von Refactoring Werkzeugen
Jeffery Overbey, ein Diplomand von Ralph Johnson an der Univerity of Illinois, Urbana Champaign, demonstrierte einen Ansatz, die für brauchbares Refactoring notwendigen Syntaxbäume aus speziellen Grammatiken zu erzeugen. Sein Demonstrationsobjekt war ein Transformationswerkzeug für Fortran-Programme. Hier ging es eher im Detailprobleme, die eher für Werkzeugbauer von Interesse sind, wie zum Beispiel der Umgang mit Kommentaren und Einrückungen, Themen die im klassischen Compilerbau kaum eine Rolle spielen, für die Akzeptanz von Refactoring Werkzeugen aber entscheidend ist. Der Vortrag hat schön gezeigt, dass Refactoringwerkzeuge derzeit eine ähnliche Entwicklung durchmachen, wie Compiler in den 70er Jahren. Das halte ich durchaus für einen Grund, sich auf die Werkzeuge der nächsten zwanzig Jahre zu freuen
Refactoring auf höherer Ebene
Macneil Shonle von der University of San Diego stellte ein Plug-in für Eclipse vor, das versucht, Java Refactorings auf höherer Ebene umzusetzen (Arcum). Auch wenn sich der Vortrag eher um Grundlagenforschung drehte, zeigte er doch, dass zumindest die angelsächsischen Universitäten mittlerweile den Ball aufgenommen haben und an den komplexen Problemen wie Migrationen von Bibliotheken forschen. Sollten diese Arbeiten für den professionellen Einsatz reif werden — womit ich nicht in den nächsten zehn Jahren rechne —, könnte das den Umgang mit Architektur und Bibliotheken ähnlich revolutionieren, wie die derzeitigen Werkzeuge den Umgang mit Code und Design verändert haben.
Analyse des Refactoring von Entwicklern
Emerson Murphy-Hill von der Portland State University berichtete über Strategien, um herauszufinden, welche Refactorings an einer Codebasis durchgeführt wurden. Auch er stellte noch mehr Fragen vor, als Antworten. Ziel ist die Verbesserungen von Refactoringwerkzeugen, das Thema kann aber auch relevant werden, um Dokumentations- und Revisionsanforderungen zu erfüllen, oder in Wartungssituationen den Code zu verstehen. Zweifel sind aber angebracht: Murphy-Hill stellte fest, dass nur ca. 10% der Refactorings mit Werkzeugen durchgeführt werden und nur etwa ein Drittel sich überhaupt im Versionsmanagement niederschlagen. Sein Resümee: Wir kennen (noch) keine zuverlässige Methode, durchgeführte Refactorings zu ermitteln.
Zum Nachdenken hat auch eine Erkenntnis am Rande angeregt: Deutete ein Check-in in das Versionsmanagement einen Kommentar, der auf Refactoring hindeutet, war die Anzahl der darin enthaltenen Umbauten halb so groß [sic!], wie bei Check-ins ohne solche Kommentare. Es wäre interessant, ob sich das auf die Zuverlässigkeit von Check-in-Kommentaren verallgemeinern lässt.
Refactoring Lab
Josh Kerievsky, Autor des Buchs “Refactoring to Patterns” und Gründer von “Industrial Logic“, zeigte den Einsatz seines “Refactoring Labs”, eines Trainingswerkzeugs für Refactoring. Die Studenten werden vor eine Refactoringaufgabe gestellt und das Lab analysiert den gewählten Lösungsweg und macht Verbesserungsvorschläge, z.B. dass bestimmte Schritte, die manuell gemacht wurden, einfacher im Refactoringbrowser durchgeführt werden können. Die Regeln sind als JUnit-Tests hinterlegt und überprüfen z.B. wie oft die Tests gestartet wurden und welche Optionen beim Umbau eingesetzt wurden. Ein sehr nettes Werkzeug für die Schulung.
Refactoring für Nebenläufigkeit
Der Organisator Danny Dig berichtete über seine Arbeiten am MIT, in denen er versuchte, sequenziell geschriebenen Code in Code umzustellen, der die Java 5 Unterstützung für Nebenläufigkeit nutzt. Das Werkzeug heißt Concurrencer und ist als Eclipse-Plugin verfügbar. Die Wirksamkeit des Tools wurde mit 6 Open Source Projekten überprüft. Die Ergebnisse waren zwar nicht perfekt, aber deutlich besser, als die manuellen Umstellungen der Entwickler, die die entsprechenden Werkzeuge betreuen. Immerhin machte das Werkzeug keine Fehler, die zu Fehlfunktionen der Software führen können — im Gegensatz zu vier solchen Fehlern im offiziellen, manuell umgestellten Code. Als wichtige Richtung für die zukünftige Entwicklung wurde die Integration mit Analysewerkzeugen angesprochen: Deren Ergebnisse sollten die Entwickler durch die notwendigen Schritte leiten.
Wer vor dem Problem steht, Java Code threadsafe zu machen, sollte sich das Tool genauer ansehen.
Refactoring von Programmen zur Matrixmanipulation
Beverly Sanders von der University of Florida erzählte über den Einsatz von Refactoring in der algebraischen Chemie. Dabei werden chemische Reaktionen simuliert, was im Wesentlichen darauf hinausläuft, Lösungen für die Schrödingergleichungen zu finden. Die Programme laufen auf hoch-parallelen Supercomputern mit speziellen DSLs für Matrizenumformungen. Hier wird Refactoring nicht zur Verbesserung des Designs eingesetzt, sondern um die Performance und Ausführungskomplexität zu verbessern. Das geht oft nicht durch pures Ansehen, sondern auf der Basis von Messungen. Für mich war die Einsicht spannend, dass man Refactoring auch in zunächst anderen Domänen mit ganz anderen Zielen betreiben kann. Der Schluss liegt nahe, dass wir hier erst ganz am Anfang stehen.
Resümee
Refactoring steht erst am Anfang. Sowohl für die Werkzeuge im breiten Einsatz, als auch in Randthemen besteht noch erheblicher Forschungsbedarf, der zunehmend von den Universitäten auch angegangen wird. Aus Sicht des Praktikers kann man nur hoffen, dass sich diese Forschung so bald wie möglich in breit einsetzbaren Produkten niederschlägt. Das könnte die Art, wie wir programmieren weg vom Programme schreiben hin zu Software entwickeln revolutionieren — vorausgesetzt, die Ausbildung wird auch entsprechend angepasst.
Geschrieben in Werkzeuge, Refactoring, Konferenzen | Drucken | Keine Kommentare »
XPDays in Hamburg: Eintägiger Workshop “Agilität erleben”
4.9.2008 von Jens Coldewey.
Ich freue mich, im November gemeinsam mit Bernd Schiffer und Henning Wolf von it-agile im Rahmen der XP Days in Hamburg einen eintägigen Workshop “Agilität erleben” anbieten zu können. Der Workshop ist vor allem für jene gedacht, die sich Agilität bisher eher vorsichtig genährt haben, oder sich nur aus Büchern, Zeitschriften und Blogs informiert haben und nun “gefahrlose Praxis” suchen; und für jene, die bisher nur agile Entwicklungspraktiken einsetzen und jetzt ihre Leistung auch “auf die Straße” bringen wollen.
Einen Tag lang haben Sie die Gelegenheit, die wichtigsten Praktiken agiler Teamarbeit und agilen Projektmanagements am eigenen Leib zu erleben - in einer “Entwicklungsumgebung”, die Sie unter Garantie beherrschen. Wir haben den Tag vollständig powerpointfrei gestaltet, schließlich sollen Sie Agilität erleben und nicht von uns überredet werden.
Was werden Sie erleben?
- Agile Planung
- Agiles Anforderungsmanagement
- Querschnittsteams vom Fachexperten bis zum Tester
- Entwicklung nach Nutzen
- Agiles Controlling
- Retrospektiven
Innerhalb eines Tages kann man natürlich nicht nach den Sternen greifen, aber wir versprechen Ihnen ein paar bleibende Eindrücke — und dass wir garantiert innerhalb unseres Sonnensystems bleiben…
Der Workshop findet am Donnerstag, 27.November 2008 in Hamburg statt. Weitere Informationen und die Anmeldung finden Sie auf den Webseiten der XP Days 2008: http://www.xpdays.de/2008/sessions/praxis_erleben.html. Frühzeitige Anmeldung lohnt sich: Die Teilnehmerzahl ist begrenzt!
PS: Wer Ende November keine Zeit hat, nach Hamburg zu kommen, oder keinen Platz mehr bekommet, hat im Januar auf der OOP 2009 in München noch eine zweite Gelegenheit. Ich werde den Workshop separat ankündigen, sobald das OOP-Programm veröffentlicht ist.
Geschrieben in Ankündigungen, Konferenzen, Agilität | Drucken | Keine Kommentare »
Videocast zu Einführung agiler Entwicklung
25.7.2008 von Jens Coldewey.
Am Rande der OOP 2008 hat mich Damir Tomicic für die Microsoft Architects Connection zur Einführung agiler Entwicklung interviewt. Das Interview ist jetzt als 30-minütiges Videocast verfügbar:
![]()
Einführung agiler Entwicklung - Ein Resümee aus 10 Jahren Erfahrung.
Weitere Interviews mit anderen Referenten finden Sie in der OOP 2008 Nachlese der MAC.
Geschrieben in Ankündigungen, Management, Konferenzen, Agilität | Drucken | Keine Kommentare »
Interview im Software-Engineering Radio
10.7.2008 von Jens Coldewey.
Im Software-Engineering Radio ist jetzt Episode 103 erschienen: “10 Years of Agile Experiences“. Marcus Völter interviewt mich in diesem Podcast zu meinen Erfahrungen mit Agilität, Ihrer Einführung und den Rückschlüssen, die ich daraus ziehe. Der Podcast ist am Rande der OOP 2008 entstanden und — da das SE-Radio weltweit gehört wird — auf Englisch.
Geschrieben in Ankündigungen, Konferenzen, Agilität | Drucken | Keine Kommentare »
Workshop “Einführung in agile Entwicklung” in Bern
28.3.2008 von Jens Coldewey.
Vielleicht gehören Sie zu denen, die einiges zu agiler Entwicklung gelesen haben, die manches interessant finden, anderes eher skeptisch sehen und die im Großen und Ganzen noch nicht so recht wissen, was Sie davon halten sollen. Wenn Sie Lust haben, einen Tag dafür zu investieren, agile Entwicklung zu erleben, sollten Sie darüber nachdenken, am 28. April zur SEE 2008 in Bern zu kommen.
Sie haben dort Gelegenheit, agile Techniken zu erleben und zum Teil auch auszuprobieren. Gemeinsam mit Bernd Schiffer von it-agile werde ich die Grundlagen agiler Entwicklung vorstellen, Sie werden ein “Mini-Projekt” selbst mit agilen Managementtechniken durchführen und können am praktischen Beispiel verfolgen, wie testgetriebene Entwicklung und Refaktorisieren in der täglichen Arbeit ablaufen.
Nähere Informationen finden Sie unter http://www.see-conf.de/workshop_agile.html
Geschrieben in Ankündigungen, Konferenzen, Agilität | Drucken | Keine Kommentare »
CfP für EuroPLoP Pattern-Konferenz
21.1.2008 von Jens Coldewey.
Bis zum 18. Februar ist noch Zeit, seine persönlichen Pattern-Versuche für die EuroPLoP 2008 in Irsee einzureichen. Ziel der Konferenz ist die Unterstützung von Pattern-Autoren und solchen, die es werden wollen. Jeder Autor erhält zunächst einen erfahrenen Patter-Autoren, einen “Shepherd”, beseite gestellt, der Hinweise und Tipps gibt, wo das Papier verbessert werden kann. Bis zum 18.4. hat man Zeit für einige Iterationen, dann wird entschieden, ob das Papier in einen “Writer’s Workshop” kommt, also in einer Gruppe auf der Konferenz noch einmal gereviewt wird, oder ob der Autor auf dem Konferenz selbst weiteres Shepherding erhält.
Die EuroPLoP ist eine einzigartige Konferenz, die vollständig darauf ausgerichtet ist, Kontakte zwischen den Autoren zu knüpfen. Die Teilnehmerzahl ist auf 60 Personen begrenzt. Die meisten (guten) europäischen und ein Teil der amerikanischen Patternbücher der letzten zehn Jahre haben zumindest eine ihrer Wurzeln auf der EuroPLoP, viele zukünftige Bücher werden dort ihre Wurzeln haben. Und viele erste Anfänge dieser Bücher, die auf der EuroPLoP eingereicht wurden, waren möglicherweise schlechter, als das, was gerade in Ihrem Kopf oder Schreibtisch brütet. Zudem ist es eine einmalige Gelegenheit, Reviewkultur und Schreibkultur zu lernen.
Den vollständigen Call for Papers gibt es unter http://www.hillside.net/europlop/.
Geschrieben in Konferenzen | Drucken | Keine Kommentare »
Vortrag “Einführung agiler Entwicklung” am 29.1.2008 in Frankfurt
9.1.2008 von Jens Coldewey.
Auf Einladung der XP User Group Frankfurt werde ich den Vortrag “Einführung agiler Entwicklung - ein Erfahrungsbericht aus zehn Jahren Praxis” auch am 29. Januar ab 19:30 Uhr in Frankfurt. Eine Beschreibung des Vortrags finden Sie im Blog-Eintrag vom 12.12.2007, nähere Informationen zur Veranstaltung auf dem “AgileWiki” der XP User Group Frankfurt.
Geschrieben in Ankündigungen, Konferenzen, Agilität | Drucken | 1 Kommentar »
SEE 2008: Einreichungsfrist verlängert
14.12.2007 von Jens Coldewey.
Die Frist für die Einreichung von Beiträgen für die SEE 2008 in Bern wurde auf den 3. Januar 2008 verlängert. Siehe auch SEE 2008 auf der Suche nach agilen Beiträgen
Geschrieben in Konferenzen | Drucken | Keine Kommentare »
OOP 2008: Einführung agiler Entwicklung - ein Erfahrungsbericht aus zehn Jahren Praxis
12.12.2007 von Jens Coldewey.
Am 23. Januar 2008 halte ich von 9:00 Uhr bis 10:30 Uhr auf der OOP in München einen Vortrag über die Einführung agiler Entwicklung - wie Sie sich anhand des Titels möglicherweise schon gedacht haben.
Darum geht es: Im ersten Teil berichte ich aus vier verschiedenen Projekten, in denen ich in den letzten zehn Jahren agile Praktiken oder agiles Vorgehen beim Kunden eingführt habe; mal mit mehr, mal mit weniger Erfolg. Die Kunden reichen von mittelständischen Unternehmen bis zu Großkonzernen. Ich analysiere die dabei aufgetretenen Probleme und leite meine ganz persönlichen Lehren aus ihnen ab.
Im letzten Drittel bekommen Sie dann das Wort: Im Rahmen einer “Goldfishbowl” können Sie mir Fragen stellen, Ihre eigenen Erfahrungen einbringen oder weitere Sichtweisen diskutieren.
Auf den XPDays 2007 habe ich diesen Vortrag bereits gehalten. Die Auswertung der Feedbackbögen finden Sie unter http://www.xpdays.de/2007/auswertung.html
Weitere Informationen über die Konferenz und die Anmeldung erhalten Sie auf der OOP 2008 Web-Site
Geschrieben in Ankündigungen, Konferenzen | Drucken | 1 Kommentar »
SEE 2008 auf der Suche nach agilen Beiträgen!
30.11.2007 von Jens Coldewey.
Ende April 2008 findet in Bern die SEE 2008 statt, eine Konferenz über die “Software Engineering Essentials”. Ziel der Konferenz ist es, ein “Forum für den Austausch zwischen dem Lager der leichtgewichtigen, agilen Entwicklungsprozesse und den Vertretern reichhaltiger Vorgehensmodelle” zu schaffen, so der Initiator der Konferenz, Andreas Rausch. Um dieses Ziel zu unterstützen, haben sowohl Jutta Eckstein als auch ich unsere Mitarbeit im Programmkomittee zugesagt. Aber das reicht natürlich noch nicht: Um nicht (wie letztes Jahr in München) in die Verlegenheit zu geraten, dass Agilität nur ein Nischenthema zwischen V-Modell XT, SPICE und CMMI bleibt, sondern seine Gegenposition auch klar beziehen kann, brauchen wir von Agilisten Beiträge, Beiträge, Beiträge!
Die Erfahrungen im letzten Jahr haben gezeigt, dass die wenigen Beiträge, die zum Thema Agilität eingericht wurden, recht hohes Niveau hatten und auch die Diskussion im Programm Kommitee habe ich als durchaus fair empfunden. Also: Einreichungsfirst ist der 3. Januar 2008, näheres dazu im offiziellen Aufruf. Wir sollten die Gelegenheit nicht verpassen, auch die Diskussion mit jenen zu suchen, die (noch) nicht von Agilität überzeugt sind!
Geschrieben in Konferenzen, Agilität | Drucken | 1 Kommentar »