Verschwörung beim .NET Open Space Süd

Dieses Wochenende war ich zum ersten Mal bei einem .NET Open Space, dem .NET Open Space Süd in Karlsruhe.

Gleich vorneweg: Es war super! Nein, noch mehr, es war richtig super! Eine mehr als gelungene Veranstaltung. In diesem Wochenende habe ich vieles gelernt und mitgenommen. Die Eindrücke dieser wahnsinnigen .NET-Veranstaltung wirken bei mir noch so immens, dass ich sie hier in einem Blog einfach niederschreiben muss.

Mittendrin statt nur dabei!

Samstag, 9:45 Uhr, ich gehe durch eine unscheinbare Tür, es gibt nur ein kleines Schild „.NET Openspace Süd 2010, 4. OG“. Ich laufe die Treppen hoch und werde von einem lächelnden Gesicht überrascht: „Na, ganz schön sportlich!“ rief die freundliche Check-In-Lady (neudeutsch für Empfangsdame ?!? ;)) mir entgegen. Wohl eher aus Höflichkeit, schließlich tat ich mir nach geleisteter Stufenarbeit merklich schwerer als sonst, das mir entgegengebrachte Lächeln mit einem Zurücklächeln zu erwidern.

Nach dem obligatorischen Check-In mit Teilnehmerkarte und Event-Infos finde ich mich mittendrin in der Sessionplanung für den ersten Tag wieder. „Wahnsinn“ dachte ich mir, endlich sehe ich viele, die ich nur per Twitter, Blog oder anderweitig online kenne. Gleichzeitig freute ich mich, wieder in Gesichter zu blicken, die ich schon kannte. Und ich war gespannt, welche neuen Bekanntschaften ich mit dieser „Erfahrungsaustauschplattform“ Open Space machen würde. Doch zunächst galt es, die Sessionplanung konzentriert umzusetzen. Auf geht’s!

WTF is a Monad?

Die Antwort auf diese Frage hat mir auf anschauliche Art und Weise Steffen gegeben. Er folgte der Aufforderung von Björn, uns allen mal dieses komische „Monad-Ding“ in verständlicher Form widerzugeben. Ich ertappte mich selbst dabei mich nicht daran erinnern zu können, wie lange es her ist, so gespannt und magnetisiert einem Thema und seinem Vortragenden zuzuhören.

r erklärte unter Anderem, dass die Uhr ein Monoid sei und es nur 3 essentielle Kriterien für das in sich geschlossene System eines Monaden gibt. Das neutrale Element, die SelectMany und Id Methoden (also Bind & Return).

(Anmerkung: Das ist mit großer Wahrscheinlichkeit falsch - Korrektur willkommen.)

Es ging weiter mit der Vorstellung der Population in der Monaden-Welt: Identity, Maybe, Continuation, State.

Ich habe es sicherlich noch nicht richtig begriffen und bin selbst erst am Anfang, die funktionale Programmierung wieder in meine tägliche Programmier-Praxis einzuführen. Doch diese Session war für mich wie ein Paukenschlag zum Auftakt! Super.

3D in your Pocket

„Hmm, das ist schwer zu toppen“, dachte ich mir, noch gedanklich verworren in Monaden, als ich mich plötzlich in der 2. Session über XNA & Windows Phone 7 von Tom wieder langsam aus der Monadenwelt lösen konnte. Doch meine Skepsis erwies sich als unberechtigt. Tom zeigte uns, das XNA keine Abkürzung für Spieleentwicklung ist, sondern eine Abkürzung ist für effektive & professionelle Spieleentwicklung - mit einer für mein Empfinden niedrigen Lernkurve.

Tom ist ein Verfechter von Fakten, also waren auch keine trockenen Slides angesagt – statt dessen gab es Visual Studio, Source Code und den Windows Phone 7 Emulator zu sehen. Ich durfte lernen, dass es gar nicht so schwer ist, Windows Phose 7 „anzuprogrammieren“ und sich auch kein Hexenwerk hinter „Worlds“, „Matrices“, „Meshes“ und „Shadern“ verbirgt. Macht Laune auf mehr.

Design Drivers

Und schon ging es weiter mit den Erkenntnissen in der von Sergey angetriebenen Session über "TDD vs. BDD vs. ATDD". Es war unerwarteterweise keine trockene Gegenüberstellung von „methodischen Religiösitäten“. Ganz im Gegenteil. Die Session war wohl eine der konstruktivsten Diskussionen über „Erwartungsgetriebene Softwareentwicklung“, bei denen ich dabei sein durfte.

Der Erfahrungsaustausch fand auf breiter Ebene statt, fast jeder konnte irgendwie dazu beitragen. Highlights waren sicherlich die Vorstellung von Fitnesse als Werkzeug für ATDD sowie die anschauliche Erklärung der Agile Testing-Quadranten von Sergey.

Im Übrigen hatte wohl Sergey noch mehr „feine Info’s“ mitgebracht, denn er war es auch, der die „RX – Reactive Extensions Hands On“-Session kräftig mitgestaltete. Ach, ich könnte womöglich noch stundenlang über die weiteren, hochinteressanten Sessions auf diesem .NET Open Space schreiben.

Know How Rollercoaster

Zum Beispiel über die unglaublich erkenntnisreiche Session über „TDD/BDD Do’s and Dont‘s“ – das war geballtes Know-How über testgetriebene Entwicklung. Oder die Session über „verteilte Architekturen“ sowie die Session über „Skalierung & Caching im Web“, die anschaulich die Best Practices dieser Themen an mich, den Teilnehmer transportieren konnten.

as „Daily Life“ wurde wertwoll angereichert durch die Sessions „Smart Tools for Smart People (Part I + II)“ von Daniel. Das meistern spielerischer Herausforderungen wurde in der AntMe!-Session von Tom gezeigt, einen Kickstart von 0 auf 100 für ASP.NET MVC2 lieferte der Albert. Die weise Erkenntnis der vielen Gemeinsamkeiten und wenigen Unterschiede von xUnit.BDDExtensions zu MSpec zu NaturalSpec wurde in der „United BDD“-Session deutlich. Unüberhörbar waren auch die Berichte von einer spannenden Session über die Erfahrungen mit und um DDD herum von Gregor.

Ach ja, es gab ja auch noch ein Coding Dojo. Ich als „Session-Host“ möchte nicht viele Worte darüber verlieren. Ich möchte viel mehr, dass jeder, der dabei war, seinen Eindruck mitnimmt und seine Meinung dazu bildet. Ich kann nur sagen: mir hat das Dojo mit so vielen interessierten und erfahrenen Entwicklern sehr viel Spass gemacht und ich konnte wieder einiges dazulernen.

Environment.Cool();

Doch dieses gesamte „Excitement“, der Erfahrungsaustausch, die Bekanntschaften, die wunderbar leichten Unterhaltungen am Mittagstisch, die Diskussionen über Vergangenheit, Gegenwart und Zukunft der Software-Entwicklung am gemütlichen Abend, die Betrachtungen über den eigenen Tellerrand hinaus – all das wäre nicht möglich gewesen, ohne die Motivation & Organisation zum .NET Open Space Süd in Karlsruhe. Vielen Dank an die DNUG Karlsruhe, Alex, Ralf, Frank, Aydin und alle, die dabei waren! Ich bin beim nächsten Mal sicher wieder dabei!

Doch eine wichtige Frage bleibt nach dem .NET Open Space Süd immer noch offen: Planen Steffen, Björn, Sergey, Alexander eine Verschwörung? Bildet sich ein verschworene Monaden-Mafia? Welche Rolle spielt dabei „Jean Closure“ – ist er der neue Pate der testgetriebenen Untergrundgeschäfte? Vielleicht hat Christian auch etwas damit zu tun?

Maybe.Some<IsTrue>, Maybe.None<IsTrue> ... to be Continuation-Monad! ;-)


(c) Copyright 1998 - 2014 Ilker Cetinkaya.