Der lise Blog:
Einsichten, Ansichten, Aussichten

Interview mit der Softwerkskammer Köln

Im Januar 2018 wurde die Softwerkskammer Köln gegründet. Seitdem fanden zahlreiche Meetups statt, die sowohl lehrreich als auch gesellig waren. Doch 2020 hat den Präsenzveranstaltungen einen Strich durch die Rechnung gemacht.

Wir haben uns mit den Gründern und Organisatoren unterhalten und gefragt, wie sich das Corona-Jahr auf die Softwerkskammer ausgewirkt hat, was Softwerker sind und wie sie zur Aussage "Craftsmanship over Crap" stehen. 

Rede und Antwort standen uns Birgit Kratz, Stefan Scheidt und Steve Korzinetzki. Von der lise GmbH nahmen Daniel Schwarz (Geschäftsführer) und Christoph Holler (Marketing Manager) teil.     

 

 

Christoph Holler: Ich persönlich habe bereits Berührungspunkte mit Software gehabt, Handwerker kenne ich auch. Die Verbindung, „Softwerker“ ist mir hingegen neu. Was ist ein Softwerker denn eigentlich genau?

Stefan Scheidt: Also, zunächst einmal was ist die Softwerkskammer: Die Softwerkskammer ist eine Dachgesellschaft, eine Organisationsplattform für User Groups in unterschiedlichen Städten, die sich treffen, um sich über das Thema Software Crafting auszutauschen. Das ist jetzt nicht wie eine Handwerkskammer, eine formale Organisation, sondern eine Versammlung von Menschen mit gleichgesinnten Interessen.

Jetzt zum Software Crafting: viele sagen auch die Handwerkskunst der Softwareentwicklung. Das, was interessant ist für den praktizierenden Softwareentwickler, um nachhaltig und langfristig wartbar gute Qualität bei der Softwareentwicklung zu liefern.

Er grenzt sich damit auch ein wenig ab von dem akademischen Computer Science Bereich, also wenn ich Informatik oder Computer Science an der Universität studiere. Denn da werden viele Bereiche nicht vermittelt, die relevant sind für industrielle Softwareentwicklung, für die praktische Softwareentwicklung. Auf der anderen Seite, in dem Bereich Fachhochschule oder Fachinformatikerausbildung, dort gibt es auch diverse Defizite, Dinge, die nicht abgedeckt werden. Und es gibt auch Bereiche, die nach der Ausbildung im Sinne kontinuierlichen Lernens immer wieder weiter trainiert und praktiziert werden können. Die Softwerkskammern sind eine Interessensgemeinschaft von Menschen, die das kontinuierlich weiterbeitreiben und vorantreiben und sich da auch selber weiterbilden möchten, und Erkenntnisse mit anderen austauschen wollen.

 

Christoph Holler: Was muss man dafür tun, Mitglied zu werden bei der Softwerkskammer? Oder kann ich mich einfach so anmelden? 

Birgit Kratz: Mitglied muss man nicht werden, es ist nichts hochoffizielles. Wir sind wirklich eine Zusammenschließung von interessierten Menschen, die Treffen, die wir haben, sind dank der „Sponsoren“ frei, also Firmen, die uns die Räumlichkeiten bereit stellen und manchmal auch ein bisschen Catering bereit stellen, und jeder, der Interesse hat, kann dazu kommen. Man muss auch keinen IT-Background haben - es kann wirklich jeder kommen.

Die Softwerkskammer ist auch nicht technologiebasiert. Dass wir dort nur eine bestimmte Programmiersprache präsentieren, sondern die ist wirklich übergreifender gedacht. Da kommen dann auch Leute, die vielleicht Projektmanager sind und eigentlich gar nicht so tief in der IT sind, sondern mehr sich über die Prinzipien der Softwareentwicklung informieren wollen. Es ist wirklich offen für jeden und dazu kostenlos.

 

Christoph Holler: Was für Meetings sind das gewesen? Unabhängig von der jetzigen Corona-Zeit, welche unterschiedlichen Formate und Themen gab es in der Vergangenheit?

Steve Korzinetzki: Alle Formate, die wir haben, haben sich durch Interaktivität und Mitmachmöglichkeiten ausgezeichnet. Das wechselt vom klassischen Vortrag mit anschließender Fragerunde zu Diskussionsrunden zu Hands on Live-Coding oder auch selbst programmieren im Pairing oder Mobbing - oder zusammen eine Kata machen. Das geht in viele Richtungen. Die Beiträge kommen teilweise von uns selbst, viel aber auch auf Vorschlag. Oder wir laden Leute ein, von denen wir denken, dass sie gute Themen mitbringen. Es kann z.B. sein, dass Sachen, die auf Konferenzen vorgetragen werden sollen, bei uns zur Probe vorgestellt werden. Oder Sprecher von anderen Konferenzen kommen zu uns. Mit lokalen Sprechern funktioniert das in der „normalen“ Zeit ganz gut, aber wir hatten zuletzt sogar einen Gast aus Schweden, der bei einem remote Meeting mitgemacht hat.

Diese Möglichkeiten haben sich durch Corona ergeben. Wenn jetzt sowieso jeder von zu Hause aus arbeiten kann, dann können wir auch in den remote Sessions internationale Gäste einladen. Und dabei sind auch immer Themen, die jeden Softwareentwickler beschäftigen, es geht nicht nur um das eigentliche Handwerk, sondern auch um alles darüber hinaus. Das Handwerk ist mehr als nur das Programmieren selbst. Interaktiv, manchmal passiv, sehr divers.

Das Handwerk ist mehr als nur das Programmieren selbst.

— Steve Korzinetzki

 

Daniel Schwarz: Nochmal zu den Formaten: Pairing, Mobbing, Dojo, Kata. Könntest du uns nochmal kurz erklären, was das für Formate sind?

Stefan Scheidt: Das einfachste ist natürlich der klassische Vortrag. Da haben wir einen Gast bei uns, der einen Vortrag hält. In der Regel treffen wir uns im Zeitraum von 18 bis 21 Uhr, also haben wir mehr Zeit, als der typische Vortrag geht, gibt’s dann auch eigentlich immer auch einen anschließenden Diskussionsanteil. So dass man sich auch über das Gehörte austauschen kann.

Wir haben uns aber auch schon Videos angeschaut, also ganz ohne Live-Sprecher, zum Beispiel von Robert Martin. Da gibt es Clean Coder Videos, die für Softwerkskammern und User Groups frei verfügbar sind. Und anschließend haben wir über das Gesehene diskutiert. Das andere Extrem sind unsere Code Kata-Abende, da trifft man sich, bringt sein Notebook mit, hat eine Entwicklungsumgebung vorbereitet und das Thema des Abends ist eine Programmieraufgabe zu lösen. Beispielsweise unter bestimmten Vorgaben, etwa im Pair Programming und testgetrieben entwickeln, oder Ping Pong Pairing machen. Das ist ein Format, bei dem sich die Pairing Partner abwechseln, getaktet durch die Tests, die sie schreiben.

Danach setzt man sich immer zusammen, um sich auszutauschen: was hat man gelernt, was hat einen überrascht, welche Fragen hat man noch.

Es gibt aber noch Mischformen. Zuerst hat man einen einleitenden Vortrag und anschließend wird das ganze praktisch ausprobiert. Dann wird ein kleines Sample oder ein vorbereitetes Beispiel durchgearbeitet oder jeder versucht auf seine eigene Umgebung anzuwenden, was er kurz zuvor gehört hat.

 

Alle Technologien und Rollen sind willkommen

 

Daniel Schwarz: Gibt es dort Technologien, die stärker vertreten sind? Gibt es welche, mit denen man als Neuling einen leichteren Einstieg findet?

Stefan Scheidt: Wir machen den Teilnehmern in der Regel keine Vorgaben. Die Teilnehmer bringen ihre Dinge mit, die sie entweder kennen oder kennenlernen möchten. Bei uns in der Kölner Softwerkskammer ist Java sehr gut vertreten, C#, ab und an sieht man auch Ruby oder Python, Swift, Kotlin, Javascript.

 

Daniel Schwarz: Das heißt, die Frontendler müssen alle zu Hause bleiben, oder dürfen die auch kommen?

Birgit Kratz: Nein, die dürfen alle kommen!

Stefan Scheidt: Das ist eben freies Programmieren, freies Training, es wird eine Aufgabe gestellt, aber wie man die lösen möchte ist den Teilnehmern überlassen. Wir haben da keine Einschränkung. Vor kurzer Zeit hatten wir aber mal ein Online-Meeting mit den Kollegen von der lise, wo es um Testframeworks für Javascript-Entwicklung ging. Da gab es dazu praktische Übungen und dann war natürlich Javascript auch als Programmiersprache gesetzt. Das muss man das dann eben nutzen. Es gab beispielsweise browserbasierte Entwicklungsumgebungen, die man nutzen konnte, bei denen man selbst gar nichts installieren musste.

 

Christoph Holler: Steve, du hast bereits als Teilnehmer an Meetups der Softwerkskammer teilgenommen. Mittlerweile bist du Teil des Orga-Teams. Was hat sich denn in deinen Augen in den letzten Jahren geändert? Und was unterscheidet sich bei euren Meetups von anderen?

Steve Korzinetzki: Gute Frage! Ich habe den Eindruck, dass sich die Teilnehmerzahl ändert, die geht leicht nach oben. Ansonsten würde ich sagen, der größte Einschnitt ist mit Corona gekommen. Bisher war es immer relativ abwechslungsreich, deswegen kann ich es nicht auf ein oder zwei Veränderungen reduzieren. Die Möglichkeiten sind da. Die Orte an denen wir uns treffen, die ändern sich. Mal ist es ein Unternehmen mehr, mal eins weniger vertreten, das schiebt sich. Jetzt unter Corona-Zeiten, gerade bei dem Meetup bei Rewe, da wurden virtuelle Teilnehmerzahlen erreicht, die würden wir sonst in keinen Raum bekommen.

Es war von vornerein schon immer so, dass ich auch an einem der ersten Termine als Teilnehmer etwas vorgetragen habe. Diese Möglichkeiten habe ich schon nutzen können, ohne Teil des Orga-Teams gewesen zu sein. Wir ziehen da nicht unseren eigenen Stiefel durch, wir leben auch davon, dass Ideen von außen herangetragen werden.

 

Christoph Holler: Das heißt, es kann sich jeder melden, der einen Vortrag melden will und dann wird geschaut, ob es passt?

Birgit Kratz: Wir sind auch wirklich darauf angewiesen. Es ist ein Community-Treffen. Wir sagen es bei jedem Meetup: Wir nehmen gerne Input und Vorschläge auf, weil wir uns nicht alles selbst ausdenken können. In der Anfangszeit war das sicherlich so, dass wir als Orga-Team sehr viel Themen reingebracht haben, um das Ganze erstmal ans Laufen zu bringen. Aber mittlerweile kommt sehr, sehr viel aus der Community. Der Terminkalender ist schon so, dass wir das fast 2-mal im Monat machen könnten. Es ist nicht immer so, aber es entwickelt sich in diese Richtung.

Ich muss dazu sagen, ich organisiere auch noch die Softwerkskammer in Düsseldorf mit, damit hat eigentlich alles angefangen. Durch ein Projekt, dass ich in Köln gemacht hab. Da habe ich auf die Landkarte geguckt und dachte, da ist noch ein White Spot, wie kann das sein? Da muss ich was tun! So ist das nach Köln getragen worden. In Düsseldorf war die Anfangszeit schwerer als in Köln.  Da saßen wir teilweise nur zu dritt.

 

Christoph Holler: Merkt ihr diesen Unterschied der jeweiligen Softwerkskammern auch bei den Themen der Meetups?

Birgit Kratz: Eigentlich nicht. Was ich beobachte ist, dass es sich in letzter Zeit insgesamt mehr in Richtung Vorträge entwickelt hat, was ich anfangs nicht so gut fand. Mittlerweile sagen wir auch, wir müssen wieder mehr Hands-On machen. Allerdings muss man auch beobachten, wenn es um Vorträge geht und die anschließenden Diskussionen, dass wirklich mehr Leute kommen, als wenn wir Coding-Katas machen würden. Es ist leider so. Ich weiß nie, ob Berührungsängste da sind, wenn es darum geht, mit anderen gemeinsam zu coden. Andererseits: die Softwerkskammer in Köln und Düsseldorf befruchten sich auch insofern, dass wir auch schon mal ein Thema aus Köln nach Düsseldorf bringen – oder umgekehrt.

Ich hab einmal versucht, ein gemeinsames Meetup zu machen mit Düsseldorf und Köln - aber die Mauern sind zu hoch.

 

Achtsamkeit und Selbstreflexion haben einen gehörigen Anteil am Thema Software Craftsmanship.

— Stefan Scheidt

 

Daniel Schwarz: Wie macht ihr das denn technologisch, wenn ihr Pair und Mob-Programming Hands on macht? Und wie löst ihr die Barrieren während Corona, wo alles nur online geht?

Stefan Scheidt: In Onlinezeiten ist das deutlich schwerer. In Nicht-Corona-Zeiten lief das üblicherweise so ab, dass die größte Herausforderung war, geeignete Räumlichkeiten dafür zu finden. Wenn man einen Vortrag hat, dann braucht man einen Raum, Stühle und eine Leinwand. Dann kann man relativ vielen Leuten einen Platz anbieten.

Bei einem Pair-Programming Abend kann man nur durchzählen, wie viele Arbeitsplätze hat man, an dem sich zwei Leute sinnvoll über 2-3 Stunden gemeinsam dransetzen können? Dann braucht es noch WLAN, Getränke und etwas zu essen. Die Leute kommen mit ihrem Notebook und setzen sich hin, arbeiten gemeinsam an einem Rechner und schieben sich den dann hin und her. Das ist von der Vorbereitung relativ gering. Die Inhalte müssen natürlich vorbereitet werden, technisch muss aber nicht so viel gemacht werden. WLAN und ein Arbeitsplatz reichen dann eigentlich schon.

Wenn man das online macht, ist es natürlich schon schwerer, eine Gelegenheit für Pairings zu finden. Mit Tools wie Zoom kann man einen Breakout-Room nutzen, in dem man sich aufteilen kann. Aber wenn sich dann 20 Leute treffen und man anschließend 10 Pairs hat, dann bekommt man die Community so nicht mit. Dann gibt es da kein Gemeinschaftsgefühl, anders als wenn man mit seinem Pairing-Partner und 10 anderen Pairs in einem Raum sitzt, da fühlt man sich nicht allein.

Deswegen versuchen wir eher Mob-Programming zu machen, also Gruppen von vier bis sechs Leuten zu finden, die dann gemeinsam programmieren. In der Regel braucht man dann aber auch einen Moderator, der einen unterstützt.  Denn nicht alle Teilnehmer kennen die Techniken, wie man mit mehreren zusammen programmieren kann.

Und dann muss sich die Gruppe eben auch gemeinsam auf eine Programmiersprache und gegebenenfalls eine Umgebungsentwicklung einigen, die dann eben alle benutzen können. Oder aber alle benutzen ein Source-Code-Verwaltungssystem, so dass der Code vom einem zum nächsten Teilnehmer wechseln kann. Da sind die technischen Hürden im Online-Umfeld schon deutlich höher. Was auch ein Grund ist, warum wir in Corona-Zeiten mehr Vorträge und Diskussionsrunden haben als Hands-On-Abende, weil sie schwerer umzusetzen sind.

 

Daniel Schwarz: Ich muss hier eine Anekdote auch mal zum Besten geben: Wir hatten ein Team, dass während des ersten Corona-Lockdowns einfach nicht so richtig funktionierte. Wir dachten, vielleicht liegt es dann doch daran, dass wir räumlich verteilt sind. Technisch waren wir bestens ausgestattet, wir hatten regelmäßige Videocalls, im Zweifelsfalls haben wir uns noch öfters und pünktlicher getroffen. Und dann sagte mir aber ein Senior Developer: Wenn ich mit den Juniors in einem Raum sitze, dann höre ich, wie feste die auf die Tastatur tippen und wie schwer die atmen. Dann weiß ich, ob die ein Problem haben und dann geh ich rüber. Und genau diese non-verbale Kommunikation fehlt halt im Home Office. Ich vermute mal, dass sich das auch ein Stück auf euer Pair-Programming übertragen lässt.

Stefan Scheidt: Definitiv.

 

Daniel Schwarz: Die größte Hürde bei Pair- und Mob-Programming bei Präsenzveranstaltungen war sonst natürlich immer nur das Tastaturlayout, ob man nun das englische oder deutsche nutzt.

Stefan Scheidt: Oder ob man als Linux-Benutzer an einem Mac-Rechner sitzt oder umgekehrt.

Birgit Kratz:  Oder ob rechts oder links die Maus genutzt wird!

Steve Korzinetzki: Aber gerade diese virtuellen Möglichkeiten schaffen ja auch mehr Raum, um solche Hürden abzubauen. Anfangs wird es immer überall etwas ruckeln, aber man hat ja die Möglichkeit Vorteile daraus zu ziehen: Dass jeder in seiner Umgebung entwickeln kann, aber trotzdem macht man etwas gemeinsam. Man muss nicht an einen fremden Laptop gehen, um das Pärchen-wechsel-dich-Spiel zu spielen oder um im Mob den Typist auszutauschen.

Ich kann mich an die Lean Poker Express Veranstaltung erinnern, das haben wir über mehrere Softwerkskammern hinweg organisiert und das hat super gut funktioniert. Man war räumlich getrennt, wie in der Zeit jetzt ohnehin, und dann wurden Teams zusammengestellt von vier bis fünf  Leuten. Bei uns in der Gruppe hatte sich einer bereit erklärt, durchgehend zu programmieren und die anderen waren der sprechende Mob im Hintergrund, der diskutiert hat. Das war schön und hat an dem Abend gut funktioniert!

 

Klare Rollenverteilung fürs Remote-Mob-Programming

 

Christoph Holler: Hast du Tipps für die Durchführung von Remote-Mob-Programming, was man optimieren kann, damit solche Treffen gut funktionieren?

Steve Korzinetzki: Klare Rollenverteilung hilft, etwa einen „Typist“ festzulegen und diese Rollen dann durchzuwechseln. Regelmäßig wechseln, wer denkt und wer arbeitet, damit man auch mal Denkpausen hat. Im Grunde sind die anderen für sich selbst organisiert. Wir einigten uns darauf, das einer darauf achtet, dass die Diskussionen nicht ausarten, ein anderer achtet auf die Zeit, und so weiter. Zum Remote-Mob-Programming gibt es ein schönes Buch, da kann man viele gute Tipps nachlesen.

 

Daniel Schwarz: Wie hängt denn eurer Meinung nach das Thema Software Craftsmanship und Agilität zusammen?

Birgit Kratz: Eigentlich würde ich sagen, das hängt nicht unmittelbar miteinander zusammen. Man kann ein guter Entwickler sein, der den Crafting-Prinzipen folgt, ohne agil arbeiten zu müssen. Oder umgekehrt.

 

Daniel Schwarz: Kann man denn wirklich agil arbeiten, ohne den Gedanken der hohen Qualität zu verfolgen?

Stefan Scheidt: Ob das dann erfolgreich ist, ist eine andere Frage. Ich würde hier fast schon widersprechen. Ich nehme es so wahr, dass typische Praktiken aus Software Craftsmanship und dem Extreme Programming, wo das ursprünglich hergekommen ist, schon scheinbar eine Voraussetzung für ein erfolgreiches agiles Vorgehen sind. Das Anwenden dieser Praktiken liefert eine hohe Wahrscheinlichkeit, dass man Dinge sicherstellt, die man braucht für agile Vorgehensweise: Schnelles Feedback, nicht zu viele technische Schulden ansammeln, mit Qualitätsbewusstsein arbeiten und schnell reagieren zu können auf genau die Rückmeldungen, die mir eine agile Vorgehensweise ja auch gibt.

Steve Korzinetzki: Ich glaube, dass man mit Software Crafting, unabhängig von Agilität, viel erreichen kann, auch in der klassischen Welt. Auch da ist es angebracht, sich mit Software Crafting und mit Standards und Ideen auseinander zu setzen, die jeder Software guttun. Ich glaub aber auch, dass gerade die Welt der agilen Ansätze sich supergut mit Crafting ergänzt. Scrum ohne die richtigen Praktiken in der technischen Umsetzung wird nicht so gut funktionieren, wie mit diesen. Nur Software Crafting zu betreiben sichert mir aber natürlich auch noch lange nicht, dass ich das richtige Produkt entwickelt habe. Diese Kombination aus beidem ergibt dann ein erfolgreiches Produkt.

Birgit Kratz: So gesehen ja. Aber man kann, wenn man will, beides voneinander getrennt betreiben. Das eine setzt das andere nicht unbedingt voraus. Ich behaupte: Im Zusammenspiel ist es natürlich ein Erfolgsduo.

Steve Korzinetzki: Das würde ich in dem Sinne unterschreiben, dass der Softwareentwickler selbstnicht für die agilen Prozesse primär verantwortlich ist und er sich deswegen auf das Crafting fokussieren kann. Aber das Team besteht nicht nur aus Softwareentwicklern und dann kommt die agile Komponente von einer anderen Person rein. Zusammen ergibt das Synergieeffekte.

Stefan Scheidt: Bemerkenswert ist dann, wenn man in die Historie zurückgeht, dass das agile Manifest von Software Crafting Praktikern formuliert wurde.

 

Daniel Schwarz: In Vorbereitung auf diesen Termin bin ich auch nochmal auf den fünften agilen Wert gestoßen, der von Robert C. Martin kam, der da sagte: „Craftsmanship over Crap“. Der wurde dann noch kompatibler formuliert mit … „Craftsmanship over Execution“. Schon die erste Aussage fand ich super und einleuchtend - genau so muss das sein.

Craftsmanship over Crap. Genau so muss das sein!

— Daniel Schwarz

 

Apropos Uncle Bob: Ihr bezeichnet euch als Crafter, als Handwerker, weil ihr aus der akademischen Ecke herauskommen möchtet. Jetzt habe ich aber noch ein anderes Video im Kopf, wo Robert C. Martin sagt: Eigentlich sind Softwerker keine Handwerker, weil die Maschine baut. Ihr seid hingegen die Architekten und designt den ganzen Tag. Wie hab ich das zu verstehen?

Stefan Scheidt: Das ist halt die Crux mit Analogien. Was ist der Ingenieursanteil, was ist der handwerkliche Teil? Was ist die Fertigungsstraße dabei? Ist das der CI-Build-Prozess? Ist das der Compiler, der die Sachen dann eigentlich tut? Ich glaube, es ist eine Schwierigkeit, beim Thema Softwareentwicklung, dass es eben auch virtuell ist, was wir tun. Es lässt sich nicht mit dem physikalischen Engineering direkt vergleichen, bei dem Maschinen gebaut werden. Oder mit Maschinen, die gebaut wurden, um wiederum andere Dinge zu bauen.

Das Ganze ist ein rein virtuelles Konstrukt, was zusammengebaut wird. Deswegen gibt es bei vielen Analogien, die man dabei formuliert, Pferdefüße, weil es dann eben nicht mehr so genau passt.

Das ist etwas, was es der Softwareentwicklung deutlich schwerer macht, als dem klassischen Engineering, was es bereits seit hunderten von Jahren gibt. Wo viel mehr Erfahrungswerte da sind, wo viel klarer ist, was erprobt ist und was experimentell ist. Also ich glaube, ich kann deine Frage gar nicht so richtig beantworten, was Softwareentwicklung im Vergleich zu Handwerk, Kunst, Wissenschaft oder zu Ingenieurskunst tatsächlich ist.

 

Daniel Schwarz: Es ist eine Mischung aus allem, nehme ich für mich mit. Ich sage auch immer: nicht alles was hinkt, ist ein Vergleich. Wenn wir zurück zum Handwerklichen kommen, dann ist es so, dass ihr ja auch richtig Fingerübungen macht. Dass ihr auch das Handwerkliche an der Tastatur versucht zu üben, damit ihr schneller seid. Steve hatte doch mal eine Session, wo er nur mit der Maus refactoren wollte?

Steve Korzinetzki:  Oder umgekehrt?

 

Daniel Schwarz: Bei der Session war es wirklich nur mit der Maus! Natürlich musste man dabei auch mal Namen eintippen, aber eigentlich war das Ziel, dass man nur IDE-Refactorings macht.

Birgit Kratz: Diese Fingerübungen waren dazu da, dass man sein Arbeitswerkzeug, die Entwicklungsumgebung mit der man täglich arbeitet, dass man die wirklich immer besser beherrscht. Das geht nur mit Übung. Auch die Entwicklungswerkzeuge entwickeln sich weiter. Updates, neue Versionen, neue Möglichkeiten Refactoring zu machen. Tastenkombinationen, die einem das Programmieren erleichtern. So etwas kennenzulernen, auch möglichst wenig mit der Maus zu arbeiten, das sollte schon zum täglichen Business dazugehören.

Vermeintlich leichte Programmieraufgaben gehören auch dazu. Jedes Jahr gibt es den Advent of Code, vom 1. – 25. Dezember. 25 Tage lang eine Programmieraufgabe, die man lösen kann. Wie eine Art Kata, die man macht. Wenn man Aufgaben gestellt kriegt, zu Sachen, die man nicht so oft macht, merkt man, wie schnell Dinge  wieder vergisst und doch wieder üben muss. Das ist wie wenn 100 Meter Läufer drei Wochen Pause macht. Der läuft die 100 Meter dann auch nicht mehr unter 10 Sekunden.

 

Christoph Holler: Stimmt es denn, dass diese Übungen, die Katas noch vorm ersten Kaffee gemacht werden soll, so wie bei anderen ihre Yoga Einheiten? Ist da was dran oder nur ein blöder Witz?

Birgit Kratz: Ich kenne niemanden persönlich, der das so macht. Aber vielleicht hat mir das auch keiner bisher erzählt?

Stefan Scheidt: Also ich mache zurzeit vorm Daily Sync eben die jeweilige Advent of Code Übung. Und es gab auch mal eine Phase, da hatten wir eine Reihe von Kundenworkshops zum Thema Softewareentwicklung, wo Nils Wloka und ich zusammen in Pair-Programming-Übungen verschiedene Vorgehensweisen exerziert haben. Das haben wir auch tatsächlich eingeprobt. Da zehre ich heute noch von: diverse Keyboard Shortcuts, bestimmte Code Modifikationen, durch Tools gestützte Codeveränderungen durchführen…

Nach diesem Projekt hat mich ein Kollege auch mal angesprochen und gefragt, warum ich an bestimmten Stellen so viel produktiver sei. Wieso geht das bei dir so viel schneller? Ich hatte halt einfach die Zeit, das mal zu üben. Das ist einer der Punkte, der gar nicht so gesehen wird. Dass es tatsächlich was bringt, diese Dinge zu üben. Aber jemanden, der das jeden Morgen konsequent macht, den kenn ich jetzt auch nicht.

 

Daniel Schwarz: Du würdest sagen, der Software Crafter ist auch beim Refactoring im Legacy Code überlegen, wenn er dort mit Dingen konfrontiert wird, die er sonst so nie produzieren würde?

Stefan Scheidt: Ich denke ja. Wobei es auch wieder eine eigene Kunst ist, der Umgang mit Legacy Code. Wie mache ich mir eine fremde Codebasis zu Eigen? Mit welchen Techniken kann ich die gefahrlos in einen für mich besser verständlichen Zustand bringen? Das ist auch nochmal eine eigene Teildisziplin.

 

Daniel Schwarz: Ich hab selber mal bei der Gilded Rose Kata mitgemacht und da auch ein paar Praktiken erlernt, wobei ich als Softwareentwickler nie dieses Niveau selbst erreicht habe. Ich hätte mich wahrscheinlich sogar mit der Gilded Rose Kata zufrieden gegeben, so wie sie anfangs war, weil die ja funktioniert hat. Aber ich habe dann auch vieles dabei lernen können.

Birgit Kratz: Was ich manchmal glaube, man entwickelt mit der Zeit Gespür für Code. Wie sieht der aus, gefällt der mir, spricht er mich an? Leider ist es so, dass dieses Gespür durch Erfahrung kommt. Die muss man sammeln und das braucht Zeit. Das kann man sich nur über die Zeit erarbeiten. Man muss halt dranbleiben, auch an kleinen Sachen. Man muss hartnäckig bleiben. Und sagen: Es muss auch noch anders gehen und mit diesen kleinen Puzzleteilen sich Erfahrung und dieses Gespür erarbeiten.

Gespür für Code kann man sich nur über die Zeit selbst erarbeiten.

— Birgit Kratz

 

Christoph Holler: Übungen sind wichtig, Erfahrungsschatz aufbauen ist wichtig – was macht denn neben diesen beiden Dingen einen guten Software Crafter noch aus?

Steve Korzinetzki: Leidenschaft, besser: Passion – man muss auch schon den Willen und die intrinsische Motivation haben, am Ball zu bleiben. Das kann man niemanden aufzwingen. Das muss auch nicht für jeden passen. Aber das ist schon enorm hilfreich, wenn man Interesse und Wissensdurst hat, die Dinge die man jetzt gemacht hat, beim nächsten Mal besser zu machen. Ich glaube, das Gefühl kennt zumindest jeder. Wenn ich mir meinen Code von vor 2 Wochen oder einem halben Jahr angucke, denk ich mir, das würde ich heute aber anders machen. Und daraus zu lernen, dafür offen zu sein, das ist ein ganz wichtiger Punkt.

 

Daniel Schwarz: Müsste man da in der Ausbildung nicht viel früher konfrontiert werden? Stefan sagte es ja auch eingangs, dass die Ausbildung sehr verkopft und ingenieursmäßig ist?

Steve Korzinetzki: Bei dem Legacy Code, den ich mir bisher angeguckt habe, steckt auch viel Unwissenheit der Programmierer dahinter, wie man es hätte besser machen können. Im objektorientierten Bereich, die ganzen Entwurfsmuster, die es da gibt, die kriegt man wahrscheinlich auch gelehrt. Nur vergisst man sie aber schnell, weil man sie eben nicht anwendet. Mentoring an dieser Stelle wäre wichtig, von jemanden Erfahrenen was mitzukriegen und das Warum auch zu lernen. Warum ist es schlau, etwas so und nicht anders zu machen? Dann würden wir in einer viel schöneren Softwareentwicklungswelt leben, wenn man von nicht aufhört, wenn man eine funktionierende Lösung gebaut hat, sondern danach noch einen Schritt weiterdenkt. Das sollte man schon vermitteln.

Man liest viel öfter Code als dass man ihn schreibt. Es ist enorm wichtig, dass man viel Zeit beim Lesen verliert und nicht beim Schreiben. Das ist ein Punkt, der in der Ausbildung fehlt. Egal ob in der Ausbildung oder im Studium. Da wird keine Praxiserfahrung gelebt.

Daniel Schwarz: Ich kann das von der anderen Seite aus bestätigen. Das Wort Leidenschaft ist ja ein bisschen negativ konnotiert im deutschen, aber wenn ich beobachte, wer bei uns Entwicklung gemacht hat und als Junior angefangen hat und sich zum Senior weiterentwickelt hat, dann waren das nur die Leute, die diese Leidenschaft mitgebracht haben. Die so stark intrinsisch motiviert waren, dass sie sich auch in der Freizeit weitergebildet haben, die auf Meetups gehen und dergleichen. Wenn das fehlt, dann kannst du zwar so ein guter Consultant sein, der Probleme löst, aber die Codequalität, die dabei herauskommt, und auch die Geschwindigkeit, mit der der Code produziert wird…diese Komponenten stehen auch nur bei Craftern in gutem Verhältnis.

 

Crap in = Crap out

 

Christoph Holler: Wenn ich Senior Developer sein will, muss ich denn dann auch Crafter sein?

Birgit Kratz: Muss nicht, aber es wäre wünschenswert. Die Juniors, auf die die Seniors schauen, von denen sie etwas lernen, wenn die einem Crap beibringen, dann ist es natürlich so: crap in, crap out. Man kann es aber sicherlich nicht verlangen. Es gibt ja auch nicht die Berufsbezeichnung „Software Crafter“, es ist eher eine Einstellung. Eine Art Ethos vielleicht.

Steve Korzinetzki: Als Unternehmen kann man auch gut dazu beitragen, dass man Leute dahin lenkt. Heißt, Rahmenbedingungen schaffen, unter denen sie auch besser lernen. In der Freizeit all das zu machen, schön und gut. Stefan hat gerade eben erzählt, er hat die Kata vor seinem Daily gemacht. So etwas wird sicherlich nicht von jedem Arbeitgeber geduldet, geschweige denn gefördert. Da kann jeder Arbeitgeber dazu beitragen, aus den Mitarbeitern, die man hat, das Potenzial auszuschöpfen. Mit gut organisiertem Mentoring Wissen vermitteln dürfen und  dass die Zeit dafür auch bereitgestellt wird. Da kann man auch als Unternehmen viel schaffen, ohne dass die Mitarbeiter in der Freizeit was machen müssen. Das hat bei mir als zweifacher Vater auch nachgelassen.

Die Möglichkeiten, die man privat hat, sind dann nicht mehr so groß, neben einem 40 Stunden Job. Mit Blick auf die Code Retreats, die wir machen: Wenn man sich Sportler oder Musiker anschaut, die trainieren fast den ganzen Tag, aber performen nur einmal die Woche. Und wir sind hier im Verhältnis, dass wir nur performen und eigentlich gar nicht trainieren. Ein Tag Weiterbildung pro Monat ist dann eher wenig und nicht viel. Da muss man auch mal sagen, wie es ist. Da muss man als Unternehmen schauen, dass man trotz allem Wirtschaftlichem, den Mitarbeitenden auch die Potenzialentwicklung ermöglicht.

Stefan Scheidt: Da gibt es ja auch diese sehr schöne Aussage von Martin Fowler, wo sich die zwei Kollegen unterhalten. Einer aus dem HR-Bereich, einer aus dem Engineering Bereich. „Was machen wir denn jetzt, wenn wir den Leuten die ganzen Weiterbildungsmöglichkeiten geben, und die wechseln anschließend den Arbeitgeber? Darauf sagt der andere: Was machen wir denn, wenn wir ihnen diese Möglichkeit nicht geben und die bleiben bei uns?“

Birgit Kratz: Gut, ich bin jetzt Freelancer, ich muss mich sowieso auf eigene Kappe weiterbilden, um auch am Markt zu bleiben. Andererseits, wenn man jetzt als Angestellter darauf beharrt, dass man immer nur Zeit von seinem Arbeitgeber bekommt und das nur in dieser Zeit macht und ansonsten nicht… ob das geht? Und es ist ja überhaupt nichts Schlimmes daran, Softwareentwickler zu sein, um damit Geld zu verdienen und davon leben zu können. Es gibt diesen einen Schritt weiter, wo man eine Art Hobby-Situation reinbringt, in der man sich auch privat damit beschäftigt. Es gibt vielleicht auch Leute, die sind so aufnahmefähig und schnell im Denken, denen reicht eine 40-Stunden-Woche plus einen Tag Weiterbildung. Andere müssen da vielleicht mehr investieren. Das muss aber jeder für sich selbst wissen.

Stefan Scheidt: Wir hatten vorhin die Frage, was einem Software Crafter eigentlich ausmacht. Dann kamen wir zum Thema Passion und Interesse. Ein weiterer wesentlicher Punkt ist für mich Achtsamkeit. Dass ich als Softwareentwickler weiß: bin ich in einer Situation, in der ich mir die Zeit nehmen muss, genau darüber nachzudenken, ob es sich lohnt, diese Stelle Code zu verbessern, oder ist das ein Stück Legacy Code, das funktioniert, das zwar ugly aussieht, aber bei dem keine Änderungen anstehen und man nicht dran muss, und ich nur meiner Zwangsneurose nachgehe, um das irgendwie schöner zu machen. Werde ich wirklich besser durch diese Code Kate Zeit? Ich muss zurückschauen können und erfahren, hat sich die Zeit gelohnt oder muss ich etwas anderes machen? Selbstreflektiert auf sich zu achten, das ist auch ein gehöriger Anteil an dem Thema Software Craftsmanship.

 

Daniel Schwarz: Thema Events: GDCR, Socrates im Jahr 2021. Ihr seid zwar keine Virologen, aber habt ihr schon eine Tendenz, ob diese Veranstaltungen stattfinden werden? Wie wird es weitergehen?

Stefan Scheidt: Was sicherlich positiv an der jetzigen Zeit ist, ist eine größere Vermischung und ein leichterer Zugang zu Events, die die Münchner und Berliner Softwerkskammern machen. Man bekommt leichter internationale Gäste. Das ist angenehm und wird auch nicht verloren gehen. Was mich nicht überraschen würde, wenn sich immer mehr Softwerkskammern finden, die das im wechselnden Rhythmus machen – unter der Annahme, dass man Präsenzmeetings machen kann.

Denn man kann dieses gemeinsame Zusammenstehen und Quatschen mit Online-Plattformen einfach nicht simulieren oder nachbauen. Ich könnte mir gut vorstellen, dass es einen wechselnden Rhythmus geben könnte. Einmal im Monat ein Online-Meeting, um eine größere Zielgruppe erreichen zu können und das nächste Event machen wir dann als Präsenzmeeting, um sich mit der lokalen Community zu treffen. Ich glaube, alle stehen mit scharrenden Füßen da und warten darauf, dass im nächsten Jahr wieder eine Socrates stattfinden kann und man sich 2 Tage lang unter gleichgesinnten austoben kann.

 

Daniel Schwarz: Was ist denn die Socrates genau?

Birgit Kratz: Das ist die Software Craftsmanship and Testing Conference, eine sogenannte Un-Conference. Also ohne vorgegebenes Programm, sondern die Teilnehmer gestalten es selbst. Da gibt’s morgens eine Session, in der die Teilnehmer Themen vorstellen und Fragen platzieren können. Anschließend kann jeder in jeden Themenraum gehen und sich ganz nach dem Open Space Prinzip zwischen allen Räumen hin- und herbewegen. Law of 2 Feet und so. Das Event selbst ist kostenlos, weswegen es von Sponsoren lebt. Die Teilnehmerzahl ist limitiert und man muss sich als Teilnehmer bewerben. Das Los entscheidet.

Grundsätzlich findet die Socrates am letzten Augustwochenende in Soltau statt, und der GDCR findet am 2. Samstag im November statt.

Stefan Scheidt: Mittlerweile gibt’s den Global Day of Code Retreat schon am Freitag davor, damit auch Firmen mitmachen können.

 

Daniel Schwarz: Wann trifft sich die Kölner Softwerkskammer und wann die Düsseldorfer?

Birgit Kratz: Die Kölner Softwerkskammer trifft sich jeden 2. Montag des Monats, die Düsseldorfer trifft sich an jedem 4. Mittwoch des Monats. Da ist aber auch ein bisschen Pause im Moment. Wir haben zwar kürzlich eine Online-Veranstaltung gemacht, aber die Corona-Krise zieht da einen auch ein bisschen runter. Es fehlt uns einfach das interaktive Element. Nächstes Jahr kommen wir aber wieder zurück! Und ich glaube, da wird es dann auf hybride Modelle hinauslaufen. Die Leute wollen sich auch einfach wieder treffen. Mir fehlt es. Das Networking funktioniert so auch einfach besser.

Steve Korzinetzki:  Am 14.12. gibt’s übrigens noch den letzten Termin 2020 der Kölner Softwerkskammer mit dem Thema cucumber.js und BDD, inkl. Live Coding und Lessons learned von meiner Arbeit bei der lise.

Christoph Holler: Dann hoffen wir, dass du nur Gutes erzählst über die lise! Wir danken euch für das Gespräch, bleibt gesund, und hoffentlich bis bald.

 

Diesen Artikel weiterempfehlen

 Teilen  Teilen  Teilen  Teilen