Blog

Retrospektive – SoCraTes MMXII

Nun ist es schon fast wieder zwei Wochen her, dass die SoCraTes – das internationale Software Craftsmanship und Testing Camp – zum zweiten Mal seine Pforten im idyllischen Rückersbach geöffnet hat. Holisticon war auch dieses Jahr wieder als Sponsor dabei und vor Ort durch Carl, Sven und mich vertreten. Anders als im letzten Jahr stand die SoCraTes hinsichtlich der Inhalte ganz im Zeichen der Selbstorganisation. Im Wesentlichen fand das Event als Unconference im Open Space Format statt. Dazu gab es schon einige Tage vor Beginn der Konferenz jede Menge spannende Vorschläge zu Sessions im Incubator auf der Homepage.

It’s all about behaviour…

Nachdem am Donnerstagabend fast alle Teilnehmer vor Ort eingetroffen waren, begann der offizielle Teil mit einem World-Café, um zu eruieren, welche Themen den Teilnehmern besonders auf den Nägeln brennen bzw. über welche eventuell noch gar nicht nachgedacht wurde. Dabei war sehr auffallend, wie viele Teilnehmer grossen Bedarf hatten, sich über Behavior Driven Development, Best-Practices und den Vergleich zu konventionellem TDD zu unterhalten.

Insgesamt herrschte schon vom ersten Abend an eine sehr aufgeschlossene Atmosphäre und gute Stimmung bei allen Besuchern. Neben einigen bekannten Gesichtern vom vorigen Jahr fanden sich auch viele neue Teilnehmer – sogar aus Schweden, Australien, Frankreich und UK. Daher gab es natürlich auch jede Menge Gesprächstoff und Erfahrungsaustausch.

Open Space, Coding Dojos und Refactoring Games

Am Freitag wurde der Open Space von Pierluigi Pugliese eröffnet, der sich nach dem Erfolg der SoCraTes im vergangenen Jahr sehr gern bereit erklärt hatte, die Moderation des zweitägigien Events zu übernehmen. Nach der Anmoderation füllte sich der Themenmarktplatz sehr schnell mit allen nur denkbaren Themen rund um Clean Code, (A)TDD, BDD, Legacy Code Refactoring etc… Aber auch andere Fragen aus dem persönlichen Software Craftsman-Alltag standen auf dem Programm, beispielsweise “Wie motiviere ich mich und meine Kollegen, ständig weiter zu lernen und uns zu verbessern?” Am Ende waren beide Konferenztage vollgepackt mit interessanten Talking Sessions, Coding Dojos, Refactoring Games und Architectural Katas, die es einem schwer machten, sich für eine Session zu entscheiden, ohne dabei etwas in einer anderen zu verpassen. Anbei ein kurzer Einblick in drei Sessions, die ich unter anderem besuchte und die mir besonders gut gefielen.

Software Craftsman Swaps

Eine sehr interessante Session während des Open Space drehte sich um die Frage nach “Software Craftsman Swaps”. Dabei tauscht man seinen Arbeitsplatz für eine kurze Zeit (ca. zwei Wochen) mit jemand anderem aus der Software Craftsmanship Community, um so Einblick in die Arbeitsweisen und Techniken des anderen zu gewinnen und davon zu lernen. Grundsätzlich keine neue Idee, wenn man bedenkt, dass Handwerksgesellen früher auch von einem Meister zum anderen zogen, um so ein breiteres Erfahrungsspektrum an Methoden und Vorgehensweisen aufzubauen. Grundsätzlich wurde dies daher auch für Software Craftsmen und Apprentices als möglicherweise lohnenswerte Erfahrung gesehen. Es wurde eine Liste für alle Interessierten ausgehängt, auf der man sich als Tauschinteressent bzw. -anbieter eintragen konnte. Das Flipchart war am Ende des Tages voll und ich selbst habe mich auch für einen Soft Swap eingetragen. Dabei tauscht man nicht zeitgleich mit dem anderen, sondern gemeinsam nacheinander. Ein spannende Idee, bei der ich Interessierten sehr gern zeigen würde, wie wir bei Holisticon im Rahmen holistischer Teams die Grundsätze von Software Craftsmanship leben und umsetzen.

Faster with Babysteps

Während Adi Bolboacas Session “Taking Babysteps” implementierten wir testgetrieben pairwise TicTacToe nach der Stoppuhr. Alle zwei Minuten mussten der Code komplett eingecheckt und alle Tests grün sein oder reverted werden. Dabei stellte sich sehr schnell heraus, dass man meist gar nicht so kleine Schritte macht, wie man denkt. Insbesondere, wenn es ans Refactoring geht, ist man doch schnell versucht, mehrere Schritte auf einmal zu machen. Tatsächlich ist man mit Babysteps aber nicht langsamer, sondern arbeitet fokussierter an kleinen überschaubaren Codeabschnitten und hat mit Unittests stets ein Sicherheitsnetz.

Working effectively with Legacy Code

Ebenso interessant war Sandros Legacy Code Refactoring Dojo. Dabei versuchten wir in Anlehnung an “Working effectively with Legacy Code” ein augenscheinlich recht kleines Codefragment nach und nach mit Tests abzusichern, um es anschließend zu refaktorisieren. Das hatte es allerdings ganz schön in sich, und schon der erste Schritt, die Dependencies zu isolieren und durch Mocks zu ersetzen, stellte sich als knifflig heraus. Wichtig ist bei verschachtelten und komplexen Kontrollanweisungen, den Code immer von aussen nach innen schrittweise mit Tests abzusichern. Dabei hilft es, regelmässig Code Coverage Tools wie EclEmma einzusetzen, um festzustellen, welche Pfade im Code bereits abgedeckt sind. Wirklich ein sehr gutes Beispiel zum Üben.

Fazit

Insgesamt war der Besuch der SoCraTes genau wie im letzten Jahr sehr lohnend. Er brachte jede Menge neue Einsichten, Ideen und Impulse für die tägliche Arbeit und für die lokale Community in Hamburg. Ich freue mich daher schon auf die nächste SoCraTes 2013 in Rückersbach.

Über den Autor

Avatar

Roland Jülich arbeitet als Java Consultant im Geschäftsfeld Architektur der Holisticon AG in Hamburg. Während der vergangenen Jahre war er in verschiedenen Softwareprojekten bei Grossunternehmen und Behörden als Coach, Developer und Scrum Master tätig. Seine Schwerpunkte liegen hauptsächlich im Bereich agilen Entwicklungsmethoden wie BDD, TDD, XP und Clean Code. Er ist Co-Organizer der Softwerkskammer Hamburg einer lokalen Community der SoftwareCraftsmanship Bewegung in Deutschland.

Antwort hinterlassen