Global Day of Code Retreat @ DATEV – warum sollte ich als Software Architekt dahingehen? Programmieren kann ich doch! TDD wende ich meist auch an! Zum x-ten Mal Conways Game of Life programmieren? Und noch einen Samstag dafür opfern?
Das ging mir Ende Oktober durch den Kopf.
Na ja, die Events unserer Software Craftsmanship Community (SCC) waren bisher immer super und ich hatte immer etwas mitgenommen. Gutes Essen und Trinken gibt es auch und diesmal sind auch Externe dabei und im Anschluss gibt es sogar noch eine Party. Und am Global Day of Code Retreat hatte ich bisher noch nicht teilgenommen.
GDCR bei DATEV – der größte Einzel-Event weltweit
Also habe ich mich dann doch angemeldet und bin am 17. November als einer von knapp 100 Teilnehmern in den IT-Campus gekommen. Die Teilnehmer waren noch bunter gemischt als bei anderen SCC-Events. Das lag wohl auch daran, dass über die Hälfte der Teilnehmer nicht von DATEV waren – vom 18-jährigen Studenten bis hin zum gestandenen SCC-Guru oder erfahrenen Freiberufler.
Nach einem kleinen Frühstück mit erstklassigem Kakao – der peruanische Kaffee soll auch gut gewesen sein – ging es schon los mit der Einführung durch die Moderatoren. Trotz einiger technischer Probleme klappte sogar eine Live-Schalte zu einem anderen Event in Indien. Während wir gerade anfingen, hatten diese bereits drei Coding Session hinter sich.
Runde 1: TDD und C#
In der ersten Runde hat sich jeder DATEVianer mit einem Externen zusammengetan – in meinem Fall ein Student. Die Anforderungen für die erste Session waren noch einfach: wendet einfach nur Test Driven Development an – also Alltag… oder doch nicht? Nach fast einem Jahr mal wieder in C# zu programmieren, war doch schwieriger als ich dachte – ich vergesse schneller als gedacht, aber mit meinem Partner komme ich schnell wieder rein. Und einfach nur TDD war doch anders als im Alltag: ich musste mal wieder lernen, dass ich es anders anwende, als es die Lehre sagt – die eigentlich kleinen Schritte sind eher große, weite Sprünge.
Runde 2: Java und Spock
Schnell war die erste Session vorbei, der Code gelöscht und in der ersten Retrospektive die Erfahrungen ausgetauscht. Eine neue Partnerin für die zweite Session habe ich auch gleich gefunden, diesmal eine SAP-Entwicklerin. Mangels SAP-Umgebung war Java die Sprache unserer Wahl und ich konnte sie überreden, das Spock als Test Framework ausprobieren. Erstaunlich wie schnell sie nach wenigen Erklärungen die Prinzipien von Spock verstanden hatte und auch Unit Tests und Java Code selbst schreiben konnte.
Runde 3: Mute Session
Die dritte Session bot dann eine ganz neue Herausforderung: Pair Programming ohne Kommunikation – also keine Gesten und nicht reden. Um das Ganze noch schwerer zu machen, durfte einer die Unit Tests schreiben, der andere nahm die Rolle des Evil Coder ein und versuchte die Tests irgendwie lauffähig zu bekommen ohne die Aufgabe so richtig zu lösen. Genau das richtige für meine schwarze Seele – da konnte ich richtig schlechten Code schreiben, der fast nichts mit Game of Life zu tun hatte. Ich hoffe mein Partner hat nicht zu sehr gelitten 😉
Dennoch gab es einige interessante Erkenntnisse: gut geschnittene Tests erschweren dem Evil Coder das Leben und Pair Programming lebt einfach von der Kommunikation miteinander.
Nach einer weiteren Retro gab es dann endlich Mittagessen. Pause war das natürlich nicht, zunächst wurde über die vergangenen Sessions diskutiert und dann Erfahrungen mit den anderen Entwicklern aus verschiedensten Unternehmen ausgetauscht.
Runde 4: Mocking, London und München
Die erste Nachmittagssession stand unter dem Motto „Mocking“ – die Partnerwahl führte einen erfahrenen Mocker wie mich mit einem 18-jährigen Studenten zusammen, der noch nie etwas davon gehört hatte. Nach einer kurzen Einführung durch die Moderatoren, die das London- und das Munich-Prinzip anschaulich erklärten, durfte ich erstmal meine Skills als Coach üben. Auch diesmal erstaunte mich mein Partner: er hatte Mocking schnell verstanden und konnte es anwenden. noch mehr überraschte er mich, als er einen ganz anderen Lösungsansatz für das Problem vorschlug, den ich noch nie ausprobiert hatte – somit lernte der Erfahrene sogar vom „Newbie“! Unterschätze nie die Coding-Fähigkeiten eines 18-jährigen!
Runde 5: Keine Schleifen, kein ifs
Dann brach die fünfte und letzte Coding Session an, die es noch einmal richtig in sich hatte: verzichtet auf bestimmte Programmier-Konstrukte, wie Schleifen oder ifs. Dazu noch ein neuer Partner und mit Python, einer Programmiersprache, die ich noch nie gesehen hatte – eine ganz neue Herausforderung. Wir mussten erstmal gut nachdenken, denn die „üblichen“ Lösungsansätze konnten wir aufgrund der Einschränkungen nicht verwenden. Nach einigen Diskussionen fanden wir einen Ansatz – ob er wirklich funktioniert hätte, weiß ich leider nicht, denn wir schafften es in der Zeit nicht, ihn weit genug voranzubringen. Aber es war eine sehr interessante Erfahrung und hat gezeigt, dass es auch außerhalb der üblichen Lösungsansätze Alternativen gibt.
Und damit war der Code Retreat auch schon zu Ende – langweilig war es nie und trotz meiner anfänglichen Skepsis habe ich wieder einiges gelernt.
Aber nach Hause ging es noch nicht, denn die Party mit Buffet stand ja noch an. Unzählige Gespräche mit Entwicklern aus verschiedensten Unternehmen und anderen DATEV-Bereichen rundeten den Abend ab.
Danke an alle, die das auf die Beine gestellt haben – ein Top-Event.
Ich bin beim nächsten Mal auf jeden Fall wieder dabei, schon allein weil ich mich so verquatscht hatte, dass ich das Code-Karaoke verpasst habe ?
Über den Autor:
Peter Wagner stieg 2006 nach dem Studium der Wirtschaftsinformatik als Softwareentwickler für Personal-Managementsysteme in die DATEV ein. Im Laufe der Zeit wuchs er in die Rolle des Software Architekten hinein und übernahm die Rolle in verschiedenen Modernisierungsprojekten für Personal-Managementsysteme. Seit Oktober 2018 ist er als Software Architekt im Cross Solution Center tätig. In seiner Freizeit entwickelt er an einem Open Source Projekt mit und bewegt sich beim Radfahren, Laufen und Wandern viel in der Natur.