Sonntag, 18. April 2010
vulkanische Energie
Die Konferenz ist aus. Alle Sprecher fahren nach Haus. Alle Sprecher? Nein! Ein kleiner irdischer Kontinent ist von einer Aschwolke verhüllt, wegen der alle Rückflüge gestrichen wurden. Damit sitzen alle fliegenden Sprecher fest. So bilden sich ganz neue Überlebensstrategien heraus:

Wie lange kann ein professioneller Programmierer in der Hotellobby überleben? Eine Fahrgemeinschaft bilden und mit der Fähre reisen? Mit dem Zug? Hoffen, dass es in den nächsten Tagen besser wird? Wenn wir schonmal da sind, laßt uns eine Open Space Konferenz organisieren.

Was ist das denn schon wieder? Hier das Zitat von Wikipedia: "Open Space (englisch für „geöffneter“, „offener“ oder auch „weiter Raum“) oder Open Space Technology ist eine Methode zur Strukturierung von Besprechungen und Konferenzen. Sie eignet sich für Gruppen von etwa zwölf bis 2000 Teilnehmern. Charakteristisch ist die inhaltliche und formale Offenheit: Die Teilnehmer geben eigene Themen ins Plenum und gestalten dazu je eine Arbeitsgruppe. In dieser werden mögliche Projekte erarbeitet. Die Ergebnisse werden am Schluss gesammelt. Wichtig ist, wenn der Open Space in geschlossenen Organisationen stattfindet, dass eine die Umsetzung von entstehenden Projektideen fördernde Infrastruktur bereitgestellt wird, denn Open Space kann in kurzer Zeit eine große Vielfalt von konkreten Maßnahmen produzieren."

Also wenn die coolen Typen das bis Dienstag in London hinbekommen, muss ich wohl noch ein wenig Urlaub nehmen, um dabei zu sein. Ich will auch so ein cooler Typ sein! Und hier sind sie, die coolen Typen:

Hier sitzen sie alle auf dem Rasen. Die IT-bestseller-autoren gemeinsam mit den Novizen.

Aber ich habe noch mehr gelernt. Erstmal die kleinen Herausforderungen (Challenges) meistern: Die 4. Ausfahrt bei einem Kreisverkehr mit 6 (!) Ausfahrten schaffen. Schon beim 2. Mal hat es auf Anhieb geklappt, wenn auch mit etwas Schweiß, aber beim 4. Mal war es schon ganz leicht. Seht Ihr? der Mensch wächst mit seinen Herausforderungen. Und sein Selbstvertrauen wächst, weitere Herausforderungen meistern zu können.

Was ist ein Lightning talk? Das ist ein abendlicher 5-Minuten-Vortrag nach dem offiziellen Programm über etwas Interessantes oder Spannendes oder Lustiges oder ... Der Lightning talk soll also Erleuchtung bringen oder einfach nur entspannen und hat beim ACCU Tradition.

die Erleuchtung

Was ist ein Volcano-talk? Das ist ein Vortrag, der aufgrund des Vulkanausbruchs spontan entstand, um eine Lücke zu füllen für die Vortragenden, die keinen Flug auf den kleinsten irdischen Kontinent abbekommen haben.

Und dann das Konferenz-Dinner! Nein, nicht Konferenz-Dinner, sondern Speakers-Dinner. Die Speaker müssen sich über alle Tische verteilen und die nicht-Speaker müssen nach jedem Gang den Tisch wechseln, damit alle mal die Chance haben, mit ihren Lieblings-Sprechern zu dinieren. Die spinnen, die Programmierer!

Damit der Spass nicht zu kurz kommt, wurde spontan eine Wette abgeschlossen über das Geburtstagsproblem. Das Geburstagsproblem berechnet die Wahrscheinlichkeit, mit der 2 Personen im gleichen Raum am gleichen Tag Geburtstag haben. Dazu wurden dann auch gleich einige Tests geliefert: Wenn sich nur eine Person im Raum befindet, ist die Wahrscheinlichkeit 0. Bei 366 Personen (vergesst für den Moment das Schaltjahrproblem) 1. Bei 1 Person etwas über 0, bei 365 etwas kleiner 1.
Das c-Programm, was die Lösung versuchte numerisch mit IEEE floating point numbers zu errechnen, bestand einige der Tests nicht. Die Wette galt: Das Programm so zu schreiben, dass es die Tests besteht. Am nächsten Tag wurde das Programm so umgefummelt, dass es die Tests bestand, aber trotzdem verkehrt war. Die verwetteten 20 Pfund gingen übrigens an eine Charity-Organisation. Am letzten Tag gab es dann noch 2 drauf: Der passionierte Tester zeigte, dass bei diesen Tests nur Stümper am Werk gewesen sein können. Was, wenn die Personen lügen? Was, wenn sie verschiedene Datums-Formate verwenden? Verschiedene Zeitzonen? Und: ja, es gab dann auch eine Lösung dieses Problems in Clojure (Lisp-Dialekt auf der Java Virtual Machine), die viel kürzer und eleganter war, mit viel besseren Tests und deren Ergebnis stimmte. Der Autor beanspruchte für sich 2*20Pfund. Sweet Charity.

Fortsetzung folgt.

Permalink (0 Kommentare)   Kommentieren





Freitag, 16. April 2010
Energie
Ich bin diese Woche auf einer Konferenz:
http://accu.org/index.php/conferences

ACCU - professionalism in programming
ist ein Zusammenschluß von Leuten, die professionell programmieren und dabei noch besser werden wollen. Mein Kollege hat mich auf die Organisation und die Konferenz hingewiesen. Das war ein Volltreffer!

Die Konferenz ist in Oxford, d.h. ich brauche keine Hotelübernachtung. Mit diesem Preisargument und mit dem wohlklingenden Namen ACCU war es ein Leichtes, meinen Chef und meinen Linemanager zu überzeugen, mich auf Dienstreise (Mission) zu schicken.

Diese Konferenz ist wirklich amazing! Um einen Teilnehmer zu zitieren: "Hier ist mein halbes Buchregal anwesend". Right. Fast alle Sprecher (speaker) haben mindestens ein sehr gutes Buch über Programmieren, Software-Entwicklung, IT-Projektmanagement oder über eines unserer geliebten Werkzeuge geschrieben. Gleichzeitig ist es auch die lauteste Konferenz mit der meisten Interaktion und mit viel Entertainment. Ja, Programmieren (oder drüber reden) kann unterhaltsam sein. Zumindest für Einige von uns ;-)

Einige der Highlights für die Freaks und auch ein wenig social skills, hoffentlich soweit allgemeinverständlich (Weiterlesen!)

Gestern habe ich u.a. spannende Dinge über verteilte Teams von Jutta Eckstein gehört. Der wichtigste Erfolgsfaktor sind die Beziehungen der Personen untereinander: Vertrauen, offene Kommunikation, persönliche Beziehungen und das Überbrücken kultureller Differenzen. Wie ich aus eigener Erfahrung weiss, ist schon der "Weisswurstäquator" ein schier unüberwindlicher Fluss. Folgende Ideen fand ich besonders spannend: Rotieren der Personen über die Standorte, immer ein Botschafter eines Standortes am anderen Standort. Achtung mit der Verwendung von Vokabular: Bei remote Zusammenarbeit sind alle Standorte remote, keiner ist herausgehoben, auch das headquarter ist eine remote site. Bringe die Menschen in informellen Situationen zusammen (geht in den Pub und trinkt ein Bier).

Heute war ein Highlight der Vortrag von Pete Goodliffe (schon 4 Bücher!) mit dem schönen Titel "Stand at the bottom of a mountain looking up". Was tun, wenn ich vor einem Berg von neu zu Lernendem stehe? Es war ein Plädoyer für lebenslanges Lernen und dabei Spass haben. Dazu gehört: sich um seinen Körper kümmern (ausreichend Schlaf, Essen, Bewegung, Ihr wisst schon). Wissen, wo ich stehe und wo ich hinwill:
1. Anfänger (novice) - ich brauche Regeln
2. fortgeschrittener Anfänger (advanced beginner) - ich kann wichtig und unwichtig noch nicht unterscheiden
3. Kompetent (competent) - ein guter Platz
4. erfahren/geübt (proficient) - ich bin schnell frustriert, wenn ich Anfängern etwas erklärt werden muss
5. Experte (expert) - ich kann die Kompetenten lehren, ich benutze Intuition
Selbstvertrauen, lernen zu können. Selbstvertrauen, DAS lernen zu können. Nutze ausser Deinem Geist dessen "Erweiterung" (Notizbuch, mindmaps, Internet, wissen, wo die Informationen sind). Nutze Dein Netzwerk (baue Dir eines auf! Studiengruppe, Mentoring, lehre andere, schreibe Artikel, diskutiere). Plane Dein Lernen, habe eine Strategie.

Und der Vortrag, der mich wirklich überwältigt hat, war "beautiful team and team leaders" von Roy Osherove. Was ein Team leiten wirklich heisst, nämlich ihm Hindernisse aus dem Weg räumen, Engstellen (fange bei Dir selbst an!) erkennen und beseitigen, die Leute wachsen lassen, kommunizieren. Er hatte ein schönes Beispiel eines furchtbar langsam tippenden Programmierer, den er erst darauf eingeschworen hat, besser und schneller zu werden und zu lernen (er hat begeistert zugestimmt) und dann musste der arme Kerl mit einer Tastatur OHNE Buchstaben drauf üben, ganz schnell zu tippen. Der Typ ist dann richtig schnell geworden und sein nacktes Keyboard ist heute noch sein ganzer Stolz. Und Roy hat einen Song komponiert darüber und ihn am Ende auf der Gitarre vorgespielt.

Bereits am Dienstag habe ich ein Tutorial über Domain Specific Languages von Juha-Pekka Tolvanen mitgemacht. Eins der Themen, für die ich mich schon lange interessiere. Die Idee ist, ein kleines, aber feines Modell zu machen und statt das dann zu programmieren, einen Programmierautomat zu schreiben, der das Modell dann zum Programm (Code) übersetzt. Also Meta-Programmieren. Das schöne daran: Es gibt Metamodelle und Metacode und Metametamodelle und Metametacode und MetaMetaMetamodelle und MetaMetaMeta usw. Wer braucht denn sowas? Wir! Die Modelle sollen dabei einfach bleiben und der automatisch erzeugte Code muss genausogut aussehen, wie wenn er mühevoll per hand programmiert wurde. Dann ist es wirklich gut.

Mein nächstes Projekt: Ich lerne etwas über SCRUM. Das ist eine Projektmanagement-Methode für agile Software-Entwicklungs-Teams, in dem die Gehirne der Einzelnen zu einem Super-Brain vernetzt werden. Bitte das im übertragenen Sinn verstehen. Kein neuer Frankenstein. Aber eine weitere echte Bildungslücke von mir, die es zu schliessen gilt.

Permalink (0 Kommentare)   Kommentieren