Fünf Flipcharts stehen nebeneinander in einem Konferenzraum mit blauem Teppichboden. Die Bögen sind über und über mit handschriftlichen Notizen, Stichworten und kleinen Skizzen in vielen verschiedenen Farben bedeckt. Vor dem vierten Flipchart steht ein Mann in hellblauem Hemd und betrachtet die Ergebnisse.
Die Ergebnisse des World Café.

Letzte Woche bin ich nach Soltau gefahren, um an der SoCraTes 2014 teilzunehmen, der vierten Ausgabe der International Software Craftsmanship and Testing Conference. Es war meine erste SoCraTes und ganz sicher nicht meine letzte. Auf die nächste Ausgabe freue ich mich jetzt schon.

Donnerstag

Die SoCraTes begann am späten Donnerstagnachmittag mit einem World Café. Dieses Format strukturiert Gespräche: An mehreren Tischen wird jeweils über ein Thema diskutiert. Die Teilnehmenden wechseln in festen Abständen den Tisch, und ein Gastgeber erzählt ihnen am neuen Tisch, worum es dort bisher ging. Ich war selbst Gastgeber eines Tisches und habe die drei Gespräche von je 25 Minuten an „meinem“ Tisch sehr genossen.

Der Donnerstag endete für mich mit einer vergnüglichen Runde Forbidden Island. Beim Spielen dieses kooperativen Brettspiels ist uns aufgefallen, wie ähnlich sein Spielziel dem eines Softwareprojekts ist. Dasselbe hatte ich ein Jahr zuvor schon bei einem Kartenspiel beobachtet. Im Laufe der Partie versinken immer mehr Inselfelder und das Tempo zieht an. Die Mitspielenden müssen die Insel über Wasser halten und dabei Schätze bergen. Den steigenden Wasserpegel haben wir schnell mit technischen Schulden verglichen. Nach der Partie haben wir beschlossen, eine Session dazu vorzuschlagen, das Spiel auf unsere Domäne der Softwareentwicklung zu übertragen.

Ein Mann mit einem Mikrofon steht vor Stellwänden, die über und über mit bunten Haftnotizen beklebt sind. Die Notizen sind in einem Raster aus Zeitfenstern und Räumen angeordnet. Weitere Teilnehmende stehen herum und hören zu.
Der Market Place, auf dem die Teilnehmenden ihre Sessions vorschlagen und einplanen.

Freitag

Freitag und Samstag waren als Open Space organisiert. Pierluigi Pugliese hat den Raum eröffnet, danach haben die Teilnehmenden Sessions vorgeschlagen und so eingeplant, dass es möglichst wenige Überschneidungen gab. Im ersten Zeitfenster wollte ich unbedingt zum „Super-Tasty DDD Workshop“, aber als ich am Raum ankam, war er bereits voll. Also habe ich mich bei den anderen Sessions umgesehen und bin in einem Zelt draußen gelandet, wo über Microservices gesprochen wurde. Danach bin ich zu einer Diskussionsrunde gestoßen, in der die Teilnehmenden ihre Erfahrungen mit Apprenticeship geteilt haben. Diskutiert wurde dort der Wechsel von der Begriffswelt „Junior Developer“ und „Senior Developer“ hin zu „Apprentice“ und „Craftsman“. Dieser Wechsel gefällt mir. Im nächsten Zeitfenster war ich bei Doug Bradbury, einem der Erstunterzeichner des Manifesto for Software Craftsmanship. Er hat über die Diskussion berichtet, die zu dem Manifest geführt hat, und darüber, wie sich seine Ideen anwenden und deuten lassen.

Im Zeitfenster darauf habe ich Zendo kennengelernt, ein Spiel der induktiven Logik. Eine Spielleitung denkt sich eine Regel für Strukturen aus, die Koans genannt werden. Die übrigen Mitspielenden versuchen, diese Regel zu erraten, indem sie selbst Koans bauen und untersuchen, die der Regel folgen oder sie brechen. Nachdem wir das Spiel verstanden hatten, haben wir versucht, einen Algorithmus für die induktive Logik testgetrieben zu entwickeln. Leider musste ich die Session verlassen, bevor wir tatsächlich zum Programmieren gekommen sind. Meine letzte Session vor dem Abendessen war die Diskussion „Is TDD dead?“. Zum Auftakt haben Teilnehmende die Diskussion zwischen David Heinemeier Hansson und Kent Beck nachgespielt. Da ich diese Diskussion verfolgt hatte, habe ich in der Session nichts Neues gelernt, unterhaltsam war sie trotzdem. Nach dem Abendessen habe ich die Session „Release of Doom“ ausgerichtet, in der wir besprochen haben, wie sich „Forbidden Island“ auf ein Thema aus der Softwareentwicklung übertragen lässt. Natürlich sind wir mit dem, was wir uns vorgenommen hatten, nicht fertig geworden. Wir wollen aber in Kontakt bleiben und die Idee weiterdenken. Vielleicht können wir auf der nächsten SoCraTes etwas dazu zeigen.

Eine Weitwinkelaufnahme eines Raumes, in dem etwa zwanzig Menschen auf Stühlen, auf Tischen und auf dem Boden sitzen und zu einer Projektionsfläche schauen.
Eine Session in einem der Räume.

Samstag

Der Samstag begann für mich mit einer sehr interessanten Session zu Bottom-Up TDD und Specification by Example. Adi Bolboaca hat zunächst die beiden großen Stilrichtungen von Test-Driven Development zusammengefasst: Classicist TDD, auch als Chicago School of TDD bekannt, und Mockist TDD, auch als London School of TDD bekannt. Bei Classicist TDD dürfen Tests die Außenwelt berühren, sie prüfen Zustand, verwenden Stubs, und der Code entsteht bottom-up. Bei Mockist TDD testen die Tests isoliert, sie prüfen Zusammenspiel, verwenden Mocks, und der Code entsteht top-down. Und wer Domain-Driven Design anwendet, beginnt weder oben noch unten, sondern in der Mitte. Nach dieser Einführung hat Adi Schritt für Schritt „Test-Driven Development as if you meant it“ vorgeführt. In dieser Spielart von Test-Driven Development schreibst du genau einen fehlschlagenden Test und bringst ihn zum Bestehen, indem du den Produktivcode im Test schreibst. Erst danach verschiebst du den Produktivcode mit Refactorings aus der Testklasse in eine Produktivklasse.

Als Nächstes war ich in „Legacy Code by Example“, wo Aki Salmi uns durch eine Legacy-Codebasis geführt hat, die er kurz zuvor „geerbt“ hatte. Er hat uns die Refactorings gezeigt, die er bereits durchgeführt hatte. Aus der Session wurde schnell eine interessante Diskussion darüber, wie man am besten mit Legacy Code umgeht. Die letzte Session, die ich vor meiner Abreise besucht habe, drehte sich darum, den ELK-Stack (Elasticsearch, Logstash, Kibana) mit Docker und Vagrant zu konfigurieren und bereitzustellen. Eberhard Wolff hat die Themen so miteinander verwoben, dass man die Grundlagen von beidem lernen konnte. Auch nach dem Verlassen des Veranstaltungsortes ging die SoCraTes für mich weiter. Fast zehn weitere Teilnehmende sind zur selben Zeit abgereist wie ich, und wir saßen alle im selben Zug nach Hannover. Aus einer sonst eher langweiligen Zugfahrt wurde so eine interessante Diskussion über die verschiedensten Themen.

Eine Weitwinkelaufnahme aus dem Inneren eines Zugwagens mit gelben Haltestangen, in dem mehrere Menschen mit Laptops und Mobiltelefonen sitzen.
Die SoCraTes ging im Zug nach Hannover weiter.

Fazit

Die SoCraTes war eine großartige Veranstaltung über 48 Stunden, in denen fast 150 Menschen zusammengearbeitet und Ideen ausgetauscht haben. Sie wird als gemeinnützige Veranstaltung mit niedrigen Kosten von der Gemeinschaft aller deutschsprachigen Software-Craftsmanship-Gruppen getragen. Ich möchte allen Beteiligten gratulieren, allen voran Nicole Rauch, Benjamin Reitzammer und Pierluigi Pugliese. Vielen Dank!