Learning Days

Gemeinsam zu besserem Code und stärkeren Teams

VOM SCHMERZ ÜBER …

  • Wachsende Technische Schulden: Mit der Zeit wird der Code immer schwieriger zu warten, und die Entwicklungszeit neuer Features verlangsamt sich stetig.

  • Ineffiziente Code Reviews: Diskussionen über Code-Qualität sind oft subjektiv und führen zu endlosen Debatten ohne klare Lösung.

  • Unklare Standards: Das Team fehlt ein gemeinsames Verständnis darüber, was guter Code ist und was professionelles Entwicklerverhalten bedeutet.

  • Ungünstige Team-Kommunikation und Zusammenarbeit: Entwickler arbeiten in Silos, Probleme werden nicht offen angesprochen, und die Code-Qualität leidet darunter.

ZUR FREUDE AN …

  • Sauberem, wartbarem Code: Euer Code bleibt langfristig verständlich und erweiterbar, sodass ihr kontinuierlich die technische Schuld abbauen könnt.

  • Effiziente und qualitativ fundierte Code-Reviews: Diskussionen über Code sind sachlich, effizient und basieren auf gemeinsam vereinbarten Standards, die das gesamte Team teilt.

  • Klare, gemeinsame Standards: Das Team hat ein einheitliches Verständnis davon, was professioneller Code ist und wie ein echter Software Craftsman arbeitet – basierend auf verbindlichen Prinzipien.

  • Starke Teamdynamik: Offene Kommunikation und starke Zusammengehörigkeit sorgen dafür, dass Probleme frühzeitig erkannt und gelöst werden, bevor sie eskalieren.

In diesem dreitägigen Workshop arbeitet Ihr Team an bewährten Prinzipien und Methoden wie Clean Code, Software Craftsmanship und Domain-Driven Design. Durch praktische Übungen erwerbt das Team nicht nur die notwendigen Fähigkeiten, sondern entwickelt auch eine gemeinsame Kultur für langfristig bessere Code-Qualität.

Tag 0

Remote

Vorbereitung
(1-2 Wochen vor dem Workshop)
Vorbereitung:
(1-2 Wochen vor dem Workshop)

Das Team bereitet vordefinierte Aufgaben vor und setzt sich bereits mit den wichtigsten Erkenntnissen aus dem Clean-Code-Buch auseinander. So können wir den Workshop-Tag optimal für praktische Übungen nutzen, anstatt grundlegende Konzepte zu erklären. Die Inhalte werden dann während des Workshops vertieft und auf euer Codebase angewendet.

Tag 1

Remote

Code-Smells erkennen:
Grundlagen von Clean Code meistern

Code-Smells entdecken: Eine Einführung in die wichtigsten Konzepte und Code-Smells mit dem Ziel, ein gemeinsames Verständnis aufzubauen

• Unterschied zwischen leichten und schweren Code-Smells: Ihr lernt, verschiedene Arten von Code-Problemen zu unterscheiden – manche könnt ihr schnell beheben, andere erfordern längerfristige Refactoring

• Kosten / Nutzen: Wir untersuchen die finanziellen und technischen Kosten, die durch Code-Smells entstehen.

• Clean Code: Das Team analysiert ein echtes Code-Beispiel und entscheidet, welche Prinzipien relevant sind

  • Verständnis und Identifikation von Code-Smells

  • Leichte von schweren Code-Smells unterscheiden

  • Gemeinsames Vokabular für schlechten und guten Code kennenlernen.

  • Deep-Dive in Kernkonzepte von Clean Code und Teamentscheidung welche Prinzipen in den Alltag übernommen werden.

Tag 2

Vor Ort

Üben, Refactoring und Haltung:
Eigene Professionalität reflektieren und methodisches Refactoring lernen

• Einführung in Software Craftsmanship: Der Tag beginnt mit einer Diskussion darüber, was einen professionellen Entwickler ausmacht. Ziel ist es, das Team zu einem verbindlichen Konsens darüber zu führen, wie Profis arbeiten und mit Kollegen interagieren. Dieser Konsens dient als Grundlage für zukünftige Konfliktlösungen und fördert langfristig bessere Teamdynamik.

• Übungen in Kleingruppen und Mob Programming: Die Teilnehmer arbeiten in kleinen Gruppen (3-4 Personen) mit Mob Programming, um Code zu analysieren, Refactorings durchzuführen und Lösungen zu diskutieren. Vorbereitete Code-Beispiele werden untersucht und verschiedene Ansätze getestet.

• Kritische Reflektion: Gedankengänge und Lösungen werden mit genügend Zeit hinterfragt und Alternativen besprochen.

  • Software Craftsmanship und die professionelle Haltung eines Entwicklers

  • Mob Programming für effektives Refactoring

  • Micro-Commits und intensiver Nutzung der IDE (z.B: Shortcuts und automatische Refactorings)

  • Zyklomatische Komplexität / Kognitive Komplexität

  • TDD und ATDD

  • SOLID principles
  • DDD (Domain-Driven Design)
  • Inversion of Control
  • Design patterns

  • Unterschied zwischen Code-Design, Software Architektur und System-Architektur

Tag 3

Vor Ort

Von Theorie zu Praxis

Das Gelernte im echten Code anwenden

• Individuelle Schwerpunkte setzen: Der 3. Tag wird bewusst sehr flexibel gehalten um dem Team zu erlauben angesprochene Themen zu vertiefen oder in andere relevante Themen einzutauchen.

• Arbeiten im echten Code: Das Team kann in unserer Session direkt im echten Code die Umsetzung üben.

• Abschluss: Am Ende des Workshops findet eine abschließende Diskussion statt, um das Gelernte zu reflektieren und nachhaltige Verbesserungen in Team-Kommunikation und Code-Qualität zu fördern. Konkrete Folgeaktionen werden geplant.

  • Tiefgehende praktische Arbeit am echten Team-Code

  • Flexible Arbeit an teamrelevanten Themen

  • Anwendung gelernter Prinzipien auf reale Herausforderungen