​Agile Technical Coaching

Warum

Ziel dieser Schulungen ist es, Entwicklungsteams agile technische Praktiken zu vermitteln, um wartbare, veränderbare und korrekte Lösungen schneller entwickeln zu können.

In den letzten Jahren - nicht zuletzt mit dem Aufkommen von agilen Vorgehensmodellen, wie z.B. Scrum - sind die Erwartungen an die Softwareentwicklung gestiegen. Software muss heute geringere Fehlerquoten haben, schnelles Einarbeiten von neuen Mitarbeitern ermöglichen, einfach änderbar sein, geringere Wartungskosten verursachen, korrekt sein, in kürzeren Zyklen geliefert werden und natürlich keine Regression verursachen. Wir bringen die  Arbeitstechniken und Praktiken bei der Erstellung von Software in Einklang mit diesen Rahmenbedingungen. Die Gruppe baut ein gemeinsames Verständnis auf und kann gemeinsam zielgerichtet an Verbesserungen in der Code-Basis arbeiten.

Wie

Die Schulung enthält mehrere aufeinander aufbauende Lektionen. In jeder Lektion gibt es  einen Theorieteil zur Einführung des Themas, in einem weiteren Schritt wird anhand eines Beispiels die praktische Anwendung vorgeführt. Im Anschluss haben die Teilnehmer Gelegenheit zu üben. Die Teilnehmer werden angeregt in einen intensiven mündlichen Austausch untereinander zu kommen.

Wenn es möglich ist, sollte zwischen den einzelnen Lektionen eine Pause von ca. einer Woche eingelegt werden, damit Erlernte in der täglichen Arbeit angewendet werden kann und sich festigt. Optional kann der Coach in dieser Zeit mit dem Team an der konkreten Software als Team-Mitglied mitarbeiten und so bei Fragen zur Verfügung stehen.
Diese Schulungen finden im 'normalen' Umfeld der Teams statt. In den letzten Jahren konnten wir diese Lektionen auch schon oft Remote (z.B. via Zoom, Skype, Hangout) durchführen. Wir hatten das Glück, dass Kunden verteilt in internationalen Teams zusammengearbeitet haben und profitieren nun in Zeiten von Social Distancing von diesen Erfahrungen.

Was

Folgende Themen werden behandelt:

  Pair und Mob Programming
  Classical Test Driven Development ( TDD )
  TDD Habits
  Transformation Priority Premise
  Object Callisthenics
  Test Doubles
  Code Smells
  Legacy Code / Refactorings
  Cohesion  / Coupling,  SOLID Principles
  Connascence
  4 Elements of Simple Design
  Design Patterns
  CRC Cards
  Outside in Design
  Domain Driven Design