Nun ist er vorbei, der Developer Openspace 2012 und hat mal wieder einen bleibenden Eindruck in meinem Langzeitgedächtnis hinterlassen. Dies fing schon mit dem interessanten und lehrreichen Workshop zu Windows Azure an. Danke an der Stelle an Sascha Dittmann für die (kostenlos) dargebotenen Informationen und die spätere Session zu Azure Service Bus.

Damit sind wir auch schon beim Thema, denn ich bin erneut überrascht mit welcher Qualität an Workshops und Sessions hier aufgewartet wurde. Alle Leute waren hoch motiviert, begeistert bei der Sache und nicht zögerlich Wissen aufzusaugen oder zu verbreiten, selbst wenn es um Themen ging die Entwickler laut Stereotyp nur peripher interessieren.

Der eigentliche Openspace begann für einige schon Freitagabend nach den Workshops, als zum gemeinsamen Brainstorming in Form eines World Kaffees eingeladen wurde. Hierbei sind mehrere Tische mit Schreibmaterial versehen und die Teilnehmer setzten sich aller 15 Minuten an einen anderen Tisch um über mögliche Themen zu diskutieren. Es findet also eine deutliche Durchmischung der Beteiligten statt und damit kommen immer neue Ideen zusammen bzw. werden bestehende durch unterschiedliche Sichtweisen spezifiziert. Damit der Grundgedanke der Mitschriften nicht verloren geht gibt es zudem pro Tisch jeweils eine Person die den Platz nicht wechseln darf und den Nachrückern das zuvor Erarbeitete kurz erläutert.

Die somit erarbeiteten Ergebnisse wurden anschließend am Marktplatz, also dem Ort an dem sich die Agenda des nächsten Tages ergeben sollte, aus gehangen und wirkt dadurch als Pool für Themenvorschläge. Diesem bediente ich mich tags darauf auch, hatte ich doch beim World-Kaffee das Interesse an einem mir wichtigen Thema abgetastet. So störe ich mich schon länger an dem Begriff Unit Test und wollte gern von anderen wissen was automatisiertes Testen für sie ausmacht, was eigentlich die viel zitierte Unit ist und warum es Sinn macht sich darüber Gedanken zu machen.

Zugegeben, dies wirkt evtl. etwas esoterisch. Irgendwie kam ich mir selbst nach einiger Zeit mit meinen Fragen wie ein Testkritiker vor und wurde wohl zwischenzeitlich auch als solcher wahrgenommen. Auf der anderen Seite, wird meiner Meinung nach heute jede Form des automatisierten Tests als Unit Test bezeichnet, wodurch sich im Alltag schnell Probleme ergeben, wenn man dann doch mal eine Datenbank braucht oder das System in seiner Gänze prüfen soll. Dazu aber später ein eigenes Blogpost. Viel interessanter fand ich an der Stelle die eigentliche Quintessenz, die da lautet: Tests sind ein Sicherheitsnetzt. Je nachdem was man damit machen will sollte es mehr oder weniger engmaschig sein.

Diese Erkenntnis half dann auch gleich in der darauf folgenden Session die sich mit System Tests und Specflow beschäftigte. Hierbei stellten wir fest, dass WPF uns mit seiner Möglichkeit des Stylings so einige Steine in den Weg legt, während im Webbereich die Frameworks verhältnismäßig gut funktionieren (siehe auch meinen Artikel in der Dotnetpro). Darüber hinaus ist Gherkin aufgrund seiner Einfachheit ein gutes Mittel mit dem Kunden zu kommunizieren, wobei die sich daraus ergebenden Beschreibungen eigentlich immer noch einmal von einem Entwickler bearbeitet werden müssen. Wie viel man anschließend von den Gherkin Features wirklich automatisiert, ist abhängig von der gewünschten Testdichte (will ich einen Tester ersetzen oder unterstützen?).

Es kommt also, wie so oft, auf das eigentliche Ziel an, welches man verfolgt. Genauso wie beim Einsatz jedes anderen Mittels oder Vorgehens. Dies bringt mich auch zu meiner eigentlich ersten Session des Openspace. Unter der Überschrift MVVM++ ging es mir um einen Vergleich der aktuellen MVVM Frameworks: Prism, Caliburn.Micro und MVVM Light. Schnell wurde darin klar, dass sich diese deutlich voneinander unterscheiden. Zwar bieten alle drei so grundlegende Funktionen wie ein ViewModelBase oder einen EventBroker, aber eigentlich dienen sie unterschiedlichen Zwecken. MVVM Light, ist im Vergleich mehr ein Helferlein um immer wieder auftretende Schwierigkeiten zu beseitigen. Caliburn.Micro erweitert dies noch, in dem es auf Konventionen basierend die Komposition der Applikation vereinfacht. Prism übertrifft alle anderen Frameworks an Funktionsbreite aber auch Komplexität, da es eher als Applikationsframework zu sehen ist und nicht primär der Umsetzung des MVVM Patterns dient.

Für mich waren alle drei Sessions sehr hilfreich und haben einige Barrieren im Kopf gelöst. Leider jedoch auch eine verstärkt. Denn die MVVM++ Session befand sich mehrfach unter dem Beschuss der Java Script Fraktion. Letztes Jahr war meine WTF Situation als Microsoft Bier und Popcorn ausgab um anschließend zum Bashing zu laden. Diesmal waren es zwei Personen in Kapuzenshirt mit Node.JS Aufdruck, die trotz deutlicher Hinweise mehrfach versuchten die Session zu kapern und nicht umhin kam darauf hinzuweisen, dass man WPF Applikationen ja nur lokal ausführen könne…

Dies blieb aber ein Einzelfall und so lernte ich die Reactive Extensions kennen, welche ich unbedingt mal ausprobieren muss, hatte eine sehr interessante Unterhaltung über Nutzer die ihre Intelligenz lieber einsetzen um UI Konzepte auszuhebeln, als sich die Software etwas genauer anzusehen und habe in einem Psychologiekurs für Anfänger gelernt, dass ich wohl ein blauer Eichhörnchentyp auf Panic-Level bin, der auch gern mal Aber sagt wenn es um Java Script geht. Ok, das werden nur Personen verstehen die anwesend waren 😉

Alles in allem, habe ich viel gesehen und auch viel verpasst. So ist halt ein Openspace, man freut sich über all die Information und hat doch ein schlechtes Gewissen, weil gerade noch zwei andere Sessions laufen an denen man gern teilgenommen hätte. Von meiner Seite ist also auf alle Fälle der Bedarf für einen weiteren Openspace und wenn ich könnte würde ich mich schon heute anmelden :)

Vielen Dank an alle die dabei waren und vor allem an die Organisatoren für dieses gelungene Wochenende.


Kick It auf dotnet-kicks.de