• Teaser Home

    Clean Code Developer School

    Saubere Softwareentwicklung üben – regelmäßig, fokussiert, individuell, angeleitet

Saubere Softwareentwicklung Üben

Bei der Clean Code Developer School (CCDS) dreht sich das Lernen um – wie könnte es anders sein – saubere Softwareentwicklung. Das bedeutet, fachlich geht es um das, wofür die Clean Code Developer (CCD) Initiative steht.

Methoden, Paradigmen und Konzeptionelles stehen im Vordergrund, nicht Technologien. Die CCDS versteht sich deshalb ganz grundsätzlich auch als Ort des plattformneutralen Lernens.

Impulse und freies Üben bewegen sich im Rahmen der Werte, Tugenden und Bausteine von CCD. Bei der Anleitung achtet das “Kollegium” besonders darauf, dass die Teilnehmer im Geiste von CCD vorgehen und codieren. Auf darüber liegender Ebene ist aber sicherlich ebenso das Lernen an sich im Blick. Auch in der CCDS gilt ja: Nicht für die Schule, sondern fürs Leben wird gelernt.

Das Üben der fachlich-technischen Inhalte ruht auf zwei Säulen:

Clean Code Design: Auch wenn die CCD Initiative ihre Bausteine in Grade eingeteilt hat, um das Lernen zu erleichtern, fällt die Arbeit daran vielen schwer. Es fehlt schlicht eine Methode, um die vielen Prinzipien einzuhalten oder zumindest bei der Reflexion darüber geleitet zu werden. Diese Lücke schließt Clean Code Design. Der Begriff steht für einen Ansatz, um systematisch und pragmatisch an die Softwareentwicklung im Sinne von CCD heranzugehen. Es geht dabei vor allen um den Softwareentwurf als bewusstem Schritt vor der Codierung.

Clean Code Delivery: Sauber nachdenken und dann sauber codieren ist gut – kann aber auch zum Selbstzweck werden. Deshalb ist es der CCDS wichtig zu vermitteln, wie die sauberen Ergebnisse zügig und verlässlich zum Kunden kommen können. Clean Code Delivery steht für eine Methode, die das nicht nur agil und lean, sondern vor allem pragmatisch erreichen will. Sie bindet Praktiken aus den CCD-Graden zu einem bewussten Softwareproduktionsprozess im Sinne der Theory of Constraints zusammen.

Der Name ist also Programm: An der CCDS geht es vor allem um Clean Code.

Clean Code braucht Kenntnisse, aber Clean Code braucht vor allem Üben, Üben, Üben. Weil Clean Code Development eingefahrene Gewohnheiten herausfordert. Deshalb sind der CCDS auch Regelmäßigkeit und angeleitete Reflexion so wichtig.

Üben – Aber Wie?

Lernen braucht Freiheit. Lernen braucht aber auch Impulse.

Die Clean Code Developer School (CCDS) bietet beides. Die Unterrichtsblöcke von 4 Stunden sind zweigeteilt:

Teil 1 – Impuls: Am Anfang jedes Blockes wird ein Thema vorgestellt. Das dauert ca. 45 Minuten und ist in der Form eher ein “üblicher” Vortrag. Das “Kollegium” oder auch ein Gast präsentieren durch Wort, Demo oder anderer Methodik. Abgeschlossen wird der Impuls mit dem Angebot einer Aufgabe, die die Teilnehmer in der restlichen Zeit angehen können, wenn sie mögen.

Teil 2 – Freies Üben: Die Teilnehmer üben während mehr als 3 Stunden individuell und angeleitet ein Thema ihrer Wahl an einer Aufgabe ihrer Wahl. Die Aufgabe kann dem Fundus der CCDS entstammen, muss es aber nicht. Das Thema kann aus dem Feld des Clean Code Development (CCD) stammen, muss es aber nicht. Wer sich mit MongoDB oder REST auseinandersetzen möchte, der ist genauso willkommen wie derjenige, der sich mit TDD oder Komponentenorientierung beschäftigen will.

Die Impulse werden sich enger an CCD bewegen. Das “Kollegium” kann auch nicht in allen technischen Gebieten fit sein. Dennoch ist Begleitung immer sinnvoll möglich. Probleme beim Üben entstehen nämlich weniger dadurch, dass der Lernstoff so schwierig ist, sondern durch mentale Blockaden. Lernschwierigkeiten sind Lernstrategieschwierigkeiten. Lernstrategien bzw. Stoffaneignungsstrategien und Problemlösungsstrategien sind sehr inhaltsunabhängig. Deshalb ist die Begleitung durch das “Kollegium” der CCDS immer hilfreich.

Durch die Kombination von Impuls und freiem, angeleitetem Üben bietet die CCDS gleichzeitig Tiefe und Breite. Das Lernen konzentriert sich einerseits auf vorhandene Interessengebiete, andererseits kommt immer mal wieder auch Unerwartetes in den Blick und regt an.

Und nicht zuletzt stellen die Impulse auch eine Möglichkeit für die CCDS dar, manches im Plenum nur einmal zu erklären, statt ausschließlich individuell. Aber das ist eher ein “Mitnahmeeffekt”.

Der Fleiß hat seinen Preis

Der Besuch der Clean Code Developer School (CCDS) kostet Geld. Sie ist kein Community-Angebot, sondern ein kommerzielles.

Das ist aber nicht nur so, weil Stefan Lieser und ich damit einen Teil unseres Lebensunterhalts bestreiten wollen, sondern ist Teil des Konzeptes. Wir glauben nämlich, dass zumindest auf Unternehmensebene die Aufmerksamkeit durch Geld fokussiert wird. Wo man Geld ausgibt, da will man auch Resultate sehen. Wo man Geld ausgibt, da will man auch das Bezahlte nutzen.

Ohne Kosten würde die Zeit, die für das Lernen aufgewandt werden soll, schnell anderen Kostenträgern (oder Umsatzbringern) zum Opfer fallen. Was nichts kostet, ist nichts wert und damit immer disponibel. Leider ist das so und jeder kann es an kostenlosen Angeboten sehen: die no-show Rate ist notorisch hoch. Viele Anmeldungen – viele, die dann doch nicht kommen, weil anderes plötzlich wichtiger geworden ist.

Es ist also notwendig, dass Lernen etwas kostet. Andererseits darf Lernen natürlich nicht zuviel kosten. Die CCDS muss versuchen, eine Balance zwischen diesen Polen zu finden – und auch noch im Blick behalten, dass etwas übrig bleibt fürs „Kollegium“.

Unser erster Preisansatz, mit dem wir das versuchen wollen, sieht so aus:

  • Das Abo: Zum kontinuierlichen Lernen passt ein Abo. Wir bieten deshalb ein Monats- und ein Halbjahres-Abo. Damit kann man pro Woche an einem Unterrichtsblock von 4 Stunden teilnehmen. Ein Abo ist natürlich jederzeit kündbar.
  • Die Streifenkarte: Auch wenn wir glauben, dass konsequent jede Woche geübt werden sollte, kann es Gründe geben, die das verhindern, z.B. Urlaub, besondere Last im Projekt usw. Wer das vorhersehen kann, der nimmt eine Streifenkarte statt Abo. Die Streifenkarte enthält 4 Streifen und ist 2 Monate gültig. Pro Unterrichtsblock, an dem man teilnimmt, wird ein Streifen „entwertet“.
  • Schnupperkarte: Wer sich noch nicht für Abo oder Streifenkarte entscheiden kann, der schnuppert an der CCDS mit Teilnahme an einem Unterrichtsblock. Der Preis für die Schnupperkarte wird bei Abschluss eines Abos bzw. Kauf einer Streifenkarte innerhalb der nächsten 2 Wochen angerechnet. Wer sich bei der CCDS einschreibt, schnuppert also umsonst.

Wir glauben, dieser Ansatz ist gleichermaßen übersichtlich wie „unternehmensverträglich“.

Individuell Üben

Üben im Gleichschritt in einem Seminar hat seinen Sinn: das skaliert gut für den Trainer. Der kann mehr Teilnehmer betreuen.

Und üben an vorgegebenen Aufgaben hat auch seinen Sinn. Dadurch kann kontrolliert der Schwierigkeitsgrad der wachsenden Kompetenz angepasst werden.

Nach dem Üben kommt jedoch der Transfer in den Arbeitsalltag. Dann sind die Aufgaben nicht mehr didaktisch aufbereitet und der Trainer ist auch nicht mehr greifbar. Dann steht man da mit den ganzen Unsicherheiten. Eigentlich beginnt jetzt erst das wirkliche Lernen. Ein steiler, einsamer Aufstieg auf den Wissensberg.

Das will die Clean Code Developer School (CCDS) ändern. Hier soll gerade der steile Weg des Transfers erleichtert werden.

Die Lerngruppen in der CCDS sind deshalb erstens bewusst klein: max. 8 Teilnehmer, im Schnitt sogar kleiner. Zweitens arbeitet jeder Teilnehmer an Aufgaben, die ihn interessieren und die seinem Kenntnisstand entsprechen. Diese Arbeit ist auch nicht durch ein Seminarziel getaktet, sondern richtet sich ausschließlich danach, wie der Teilnehmer vorankommt.

Gelernt wird also doppelt individuell: inhaltlich und zeitlich. Die CCDS bietet ganz bewusst Raum für Fehler, Umwege und Erforschung.

Schulort München

Wir haben lange überlegt, wo wir mit der Clean Code Developer School (CCDS) starten sollen.

Am liebsten wäre es uns gewesen, in unseren Heimatorten Köln und Hamburg zu beginnen. Dort ist die Community jedoch vergleichsweise dünn, die wir am besten kennen und der wir über die plattformneutralen Clean Code Developer Bausteine hinaus auch noch technisch etwas vermitteln können.

Diese Schulungsorte heben wir uns nun für später auf. Wir beginnen lieber in München. Das hat mehrere Gründe:

  • Im süddeutschen Raum ist die (.NET-)Entwicklerdichte deutlich höher als in Hamburg oder Köln.
  • München ist für uns beide noch recht gut mit Bahn/Flug erreichbar.
  • In München gibt es nicht nur ein Motel One – unsere bevorzugte Hotelkette, wenn wir übernachten müssen.
  • München ist eine schöne Stadt :-)

Für die ersten Schritte mit der CCDS ist München ein guter Startort. Aber wir sind offen für andere, je nach dem wie sich die Nachfrage entwickelt. Mittelfristig würden wir zum Beispiel gern Karlsruhe und Berlin sowie selbstverständlich Köln und Hamburg dazu nehmen.

Wer die CCDS also noch nicht gut jede Woche in München erreichen kann, der nehme uns die Schulungsortwahl nicht übel. Wir stehen damit ja erst am Anfang. Es ist ein Startup-Experiment…

Wo in München die Schule ihre Zelte aufschlagen wird, wissen wir noch nicht. Um Zentrumsnähe bemühen wir uns in jedem Fall. Es ist einfach eine Frage der Raumkosten. In einem anderen Beitrag dazu Konkreteres.

Fokussiert Üben

Üben und üben ist nicht dasselbe. Sie können sich Zeit am Arbeitsplatz nehmen fürs Üben… und dann kommt das eine oder das andere dazwischen. Die Kollegen stören “nur kurz”, das Telefon klingelt, Ihnen fällt ein, dass sie noch schnell etwas mit der Personalabteilung besprechen sollten, bevor Sie es vergessen…

Wie konzentriert üben Sie also wirklich, wenn Sie sich schon die Zeit dafür freischaufeln?

Unserer Erfahrung nach beschäftigen sich Entwickler in solchen selbstorganisierten Übe- und Lernzeit am Arbeitsplatz nur selten wirklich fokussiert mit Lernstoff. Effizienz und Effektivität sind gering. Und das ist tragisch, wo es doch schon so schwer ist, sich diese Zeit überhaupt aus den Rippen zu schneiden. Dazu kommt der zumindest latente Rechtfertigungsdruck, warum man denn gerade nicht am Produktionscode arbeite.

Um diese Situation zu verbessern, bietet die Clean Code Developer School (CCDS) nicht nur regelmäßige Übungszeiten, sondern auch eine Atmosphäre für konzentriertes Lernen. Wir halten es für wichtig, nicht (nur) am eigenen Arbeitsplatz zu lernen, sondern sich dafür an einen besonderen Ort zu begeben. Wie ein Ritual konzentriert schon diese Bewegung die Aufmerksamkeit aufs Üben.

Und in der CCDS ist dann alles darauf ausgerichtet, dass alle Lernenden sich wirklich fokussieren. Es gibt klare Aufgaben, es herrscht Ruhe, es gibt Anleitung, damit die Aufmerksamkeit nicht abschweift, wenn mal etwas nicht gleich klappt.

So wird die wöchentliche Übungszeit wirklich genutzt. So macht die Investition ins Lernen Sinn.

Regelmässig Üben

Die Hauptmotivation hinter der Clean Code Developer School (CCDS) ist das regelmäßige Üben.

Lernstoff soll nicht nur einmal in einem Training für 2, 3 oder 5 Tage gebimst, sondern immer wieder, ständig, kontinuierlich geübt werden.

Wir glauben fest daran, dass wöchentliches Lernen nötig ist. Ebenso glauben wir fest, dass Üben nicht weniger als 4 Stunden pro Woche dauern sollte. Das wären ca. 10% der Arbeitszeit.

Für manchen mag sich das viel anhören – in Wirklichkeit ist es aber sehr wenig in Relation zu Vielfalt und Umfang dessen, was Sie als Softwareentwickler eigentlich können sollten.

Dass Sie es nicht schaffen, diese 4 Stunden regelmäßig an Ihrem Arbeitsplatz einfach so freizuschaufeln, ist uns völlig klar. Deshalb bieten wir die CCDS ja unter anderem an. Wir wollen Ihnen bei der Organisation Ihrer Zeit helfen. Wer in die Clean Code Developer School geht, der hat jede Woche einen Termin im Kalender stehen. Da gibt es dann kein Vertun. Der steht drin wie jeder andere Termin mit Kunde, Chef oder Sportsfreunden. Die Wahrscheinlichkeit, dass Sie sich wirklich fürs Lernen die Zeit nehmen, steigt damit deutlich. Ein Besuch der CCDS ist eben ein Commitment.

So legen Sie mit der Clean Code Developer School die erste Grundlage für echtes Lernen: die Regelmäßigkeit. Dran bleiben, nicht nachlassen, sich immer wieder an den Lernstoff setzen – das ist das Geheimnis erfolgreichen und nachhaltigen Lernens.

Back to school…

Clean Code zu schreiben, soll endlich noch leichter zu lernen sein.

Das haben wir uns für 2013 vorgenommen. Und erreichen wollen wir das mit der Clean Code Developer School (CCDS).

Ja, genau: Saubere Softwareentwicklung wollen wir zukünftig in einer Schule vermitteln. Schiefertafel, Holzbank und Rohrstock wird es dort natürlich nicht geben. Stattdessen WLAN, Beamer, Flipchart plus moderne Didaktik und Methodik. Auch werden wir keine normalen „Lehrer“ sein.

Die Bezeichnung „Schule“ finden wir dennoch passend wegen der grundsätzlichen Art des Lernens. Das soll nämlich in kleinen Schritten und kontinuierlich über längere Zeit stattfinden. Nur so, glauben wir, kann es nämlich dem allgegenwärtigen Anspruch an Nachhaltigkeit gerecht werden.

Der Nürnberger Trichter ist immer noch nicht erfunden, also braucht es Zeit zum Lernen. Mit 3 oder 5 Tagen Workshop ist es nicht getan. Deren Impuls kann wertvoll sein – läuft im Tagesgeschäft allerdings spätestens nach wenigen Wochen aus. Insbesondere ist das der Fall, wenn der Lernstoff erfordert, dass Gewohnheiten und Denkmuster überwunden werden müssen. Und das ist beim Clean Code Development der Fall.

Deshalb wollen wir das Thema Fortbildung in Sachen saubere Softwareentwicklung anders angehen. Wir gründen einfach eine kleine Schule.

Wo, wann und wie genau der Unterricht stattfinden wird… Das erfahren Sie hier in weiteren Blogartikeln.

Es grüßt das „Kollegium“ der Clean Code Developer School

Stefan Lieser
Stefan Lieser
Ralf Westphal
Ralf Westphal

PS: Ganz einfach können Sie auch auf dem Laufenden bleiben, indem Sie den Twitter-Feed der Clean Code Developer School abonnieren: @ccd_school.