high value team Angebote

Mit high value team richte ich mich an Entwickler und Organisationen, die wirklich etwas verändern wollen. Quick fixes sind nicht im Angebot. Die nächste Technologie, die nächste Methode wird “es” nicht richten. Wo chronische Probleme die Verlässlichkeit und Produktivität nach unten ziehen, gibt es keine Besserung durch Druckbetankung. Meine Angebote sind deshalb gedacht als eine Mischung aus Impuls und Begleitung. Neue Sichtweise + konsequentes Ausprobieren: dann kann Veränderung bewirkt werden.

Themen

Impulstag “Get into the flow”

Nachhaltiger und vorhersagbarer Software entwickeln ist eine Herausforderung für die ganze Organisation. Es spielen so viele Aspekte dabei eine Rolle, dass es sich lohnt, darüber einen Überblick zu gewinnen. Den gibt der Impulstag in Form von Schlaglichtern. Die Geschichte der Softwareentwicklung wird dabei genauso angeleuchtet wie die unausgesprochenen Wünsche des Kunden oder die Ursachen für notorisch unzuverlässige Schätzungen.

Der Impulstag wendet sich nicht nur an Entwickler, sondern ausdrücklich auch an Product Owner, Produktmanager, Scrum Master und das Management. Beim Impulstag ist für jeden etwas dabei. Das rollenübergreifende Gespräch wird enorm angeregt.

  • Format: 1 Tag offline
  • Für Buzzword-Freunde: Clean Code, Agilität, Lean, Theory of Constraints

Geradlinig testen

Für dauerhaft hohe Produktivität im Rahmen eines Softwareprojektes ist die Herstellung von Korrektheit “erste Entwicklerpflicht”. Das kann allerdings nur erreicht werden mit einer soliden Abdeckung des Codes durch automatisierte Tests. Doch wie kann die erreicht werden? Es fällt vielen Entwicklern schwer, konsequent Tests zu schreiben. Leider ist das weithin propagierte Vorgehen nach TDD auch nicht dazu angetan, leicht in den Arbeitsalltag übernommen zu werden. Was nun? Reifer und regressionsfreier Code sind für zügigen und vorhersagbaren Fortschritt unerlässlich.

Abhilfe schafft ein kritisch reflektiertes und modifiziertes TDD, das ich TDD 2.0 nenne. Darin erhalten ist das Wesen von TDD als testgetriebene kleinschrittige Annäherung an den Produktionscode – doch der ewig schwierige Refactoring-Schritt verschwindet zugunsten mehrerer Alternativen, Produktionscode von vornherein sauber zu schreiben.

TDD 2.0 entlastet Entwickler bei der Testdefinition und Konkretisierung des Produktionscodes mit einem klaren und differenzierten Vorgehen. TDD 2.0 ist “software for your head”.

  • Format: Die Schwierigkeit bei diesem Thema liegt in der Überwindung eingeschliffener persönlicher Gewohnheiten. TDD 2.0 Techniken sind leicht zu lernen – sich ihrer jedoch im rechten Moment zu erinnern, ist schwer. Deshalb ist es wichtig, ihre Anwendung einzuschleifen. Im Grunde ist Drill nötig. Das Thema profitiert daher von wiederholten Übungen. Hier bietet sich insbesondere eine online Begleitung an mit 5-10 Blöcken an.
  • Für Buzzword-Freunde: Clean Code, TDD

 

Lösungsansätze entwerfen

Flüssige Teamarbeit erfordert Koordination. Koordination setzt Überblick voraus. Solange Softwareentwicklung jedoch keinen belastbaren Entwurf produziert, gibt es keinen Überblick als Basis für zügige Codierung, Exploration von Alternativen oder konfliktfreie Arbeitsorganisation.

Die Kunst der Planung von Code bevor man ihn schreibt, ist in den letzten Jahrzehnten jedoch leider scheinbar weithin in Vergessenheit geraten. UML ist nicht im Einsatz und Alternativen haben sich nicht etabliert. Im Team wird zwar geredet, aber sichtbare, nachvollziehbare Spuren unabhängig vom Code hinterlässt das kaum. Und im Code ist es dann oft zu spät, weil der jede Entscheidung nur in geronnener, schwer zu wandelnder Form enthält.

Hilfreicher Entwurf von Lösungsansätzen vor der Codierung ist aber möglich, auch ohne eine Architektur-Meisterklasse besucht zu haben. Es geht sogar ganz ohne UML und spezielles künstlerisches Talent.

Allerdings: Es ist schon etwas gewöhnungsbedürftig, Lösungen zu denken, ohne sie gleich im Detail in einer Programmiersprache zu codieren. Doch es winkt ein großer Gewinn: das Team lässt die visuelle Sprachlosigkeit hinter sich und kann die kollektive Intelligenz laser-gleich auf ein Problem konzentrieren. Die Lösungen werden effektiver und sind besser legitimiert. Und es wird die Grundlage für arbeitsteilige Implementationen geschaffen, um einzelne Aufgaben effizienter umzusetzen. Work-in-Progress (WIP) sinkt auf diese Weise ganz natürlich, die Vorhersagbarkeit der Softwareproduktion wächst.

  • Format: Vom Entwurf profitiert jeder Entwickler einzeln, aber der Effekt im Team ist noch größer. Der Codierung eine Phase gemeinsamen Nachdenkens über einen Lösungsansatz voranzustellen, ist eine Veränderung der Gewohnheiten aller. Deshalb lohnt sich bei diesem Thema der Einstieg mit einer “Druckbetankung” von 2-3 Tagen, der eine online Begleitung mit z.B. 5 Blöcken folgt, um das Vorgehen mit regelmäßigen Übungen einzuschleifen.
  • Für Buzzword-Freunde: Clean Code, Flow-Design, Softwareentwurf

Systematisch Code reviewen

Ein sauberer Entwurf ist eine gute Grundlage für wandelbaren Code. Aber es gibt genügend Gründe dafür, dass bei der Implementierung “etwas verrutscht” und das Ergebnis doch nicht das gewünschte Qualitätsniveau hat. Es gibt also, Code regelmäßig in Augenschein zu nehmen, um sicherzustellen, dass der Anspruch an seine “Sauberkeit” eingehalten wird. Darüber hinaus sind solche Inaugenscheinnahmen gute Gelegenheiten, um sich im Team der Domäne oder der Nutzung von Technologien zu vergewissern. Es lässt sich eine Menge lernen beim Code Review.

Doch worauf sollten sie achten, die “Männer, die auf Code starren”? Für mich gibt es eine klare Liste von Aspekten. Die kann man systematisch abarbeiten. Die gibt natürlich auch Hinweise darauf, was man schon vorher bei der Codierung beachten kann, um im Code Review flüssig durchzukommen. Code Review ist kein Selbstzweck.

Im Workshop gehen wir diese Liste Punkt für Punkt durch, klären das Warum jedes Aspektes, diskutieren Auslegungsmöglichkeiten und Sonderfälle und üben den Review an Beispielcode und auch gern an Code aus Ihren Projekten.

  • Format: Der Code Review lässt sich sehr gut online üben. 5-8 online Blöcke schaffen einen Überblick über die Review-Kriterien und legen die Grundlage für einen eigenen Review-Rhythmus.
  • Für Buzzword-Freunde: Clean Code, SOLID, TDD

Anforderungen übersetzen

Wie kommt man von Anforderungen zum Code? Das ist eine Frage, die Entwickler meiner Erfahrung nach immer wieder umtreibt. Dazu wurde zwar schon viel gesagt, es gibt ganze Disziplinen, die sich damit beschäftigen, die UML hat dazu etwas zu sagen und die Agilität macht auch Empfehlungen. Dennoch sehe ich Entwickler mit einem Stirnrunzeln, wenn sie dann am Ende eine User Story angehen.

Was fehlt ist Anschlussfähigkeit. Eine User Story lässt Spielräume, die kontraproduktiv sind. Der Übersetzungsaufwand für Anforderungen in die Welt der Programmierung ist zu groß, um zumindest einen Ansatzpunkt für den konsequenten Lösungsentwurf und die testgetriebene Codierung zu finden. Es fehlt ein gemeinsames Vokabular für Entwickler und “Anforderer” (z.B. Product Owner), um Anforderungen zu verfeinern und zu konkretisieren.

Ein solches Vokabular zur gemeinsamen Verfeinerung von Anforderung vermittle ich in diesem Workshop. Konsequent eingesetzt liefert es fein geschnittene Anforderungen, zu denen “Anforderer” Feedback geben können und die sehr konkret sind für die Umsetzung. Gleichzeitig entsteht ein Bild von Software, das für die grobe Architekturplanung taugt und frühzeitig alle Beteiligten an den Tisch bringt, um Entscheidungen zu treffen (oder zu vertagen). Auch hier geht es um Überblick.

  • Format: Die Anforderungsanalyse entwicklerfreundlicher zu gestalten, ist eine Sache des ganzen Teams inklusive des Kunden bzw. seines Vertreters (soweit willig und verfügbar). Deshalb erfolgt hier der Einstieg am besten auch mit einem gemeinsamem Workshop von 1-2 Tagen; anschließend können Übungen online in z.B. 5 Blöcken den Umgang mit der Methode vertiefen.
  • Für Buzzword-Freunde: Analyse, BDD, Sprint Planning

Planbare Lieferungen

“Wann wird die Anforderung umgesetzt sein?” steht als Frage ständig im Team Room der Softwareentwicklung. Sie belastet Entwickler wie Management, sie erzeugt chronischen Stress. Daran hat auch die neuere Schätzpraxis mit Story Points in agilen Teams nichts geändert. Entspannte Softwareproduktion sieht anders aus.

Doch der Stress ist zu einem guten Teil selbstgemacht. Überzogene Erwartungen, Selbstüberschätzung, ein reduziertes Verständnis von Verlässlichkeit, mangelhafte Aufmerksamkeitsgestaltung und Unkenntnis weit verbreiteter Trugschlüsse, Voreingenommenheiten und simpler statistischer Verfahren erzeugen chronischen Druck und schüren Konflikte.

Leider hilft die tapfere Einführung von Scrum oder Kanban hier nur bedingt. Solange man damit versucht, bessere Antworten für die falschen Fragen zu finden, bleibt man hinter dem Möglichen zurück. Der Cargo-Kult lauert hinter jedem Ritual.

Was tun? Es hilft die Rückbesinnung auf das Grundlegende, auf Gesetzmäßigkeiten und die “Natur der Sache”. Weniger Regeln, mehr Prinzipien; weniger Buzzwords, mehr sorgfältige Beobachtung.

In diesem Workshop fordere ich ihre Zusammenarbeit heraus. Können Sie systematisch und diszipliniert vorgehen, um verlässlich Resultate zu liefern? Wir werden sehen.

  • Format: Dieses Thema greift tief in Gewohnheiten der ganzen Organisation ein. Deshalb ist hier eine Begleitung offline und online ratsam. Der Umfang ist allerdings sehr von den Organisationsumständen abhängig. Lassen Sie uns über Ihre Situation sprechen.
  • Für Buzzword-Freunde: Agilität, Lean, Kanban, Theory of Constraints, Flow Metrics

Formate

Offline Workshops

Offline Workshops finden gewöhnlich bei Ihnen vor Ort im Unternehmen statt. Voraussetzung ist ein Besprechungs-/Seminarraum mit Beamer und Flipchart, Metaplan-Wände sind vorteilhaft.

Mein offline Tagessatz beträgt 1750€ für Gruppen bis 6 Teilnehmer und 2000€ für Gruppen bis 10 Teilnehmer. Noch größere Gruppen sind nur in Sonderfällen möglich (z.B. Impulstag); der Tagessatz beträgt dann 2500€.

Die optimale Gruppengröße liegt im Bereich von 5-8 Teilnehmern.

Online Begleitung

Die online Begleitung erfolgt in Blöcken die aus einem synchronen online Termin von 90-120min sowie einer Woche asynchroner Betreuung via Email/Chat bestehen. Um einen echten “Begleitungseffekt” zu erzielen, sollten diese Blöcke möglichst aneinander anschließen mit grob wöchentlichen online Terminen.

Online Termine finden mit 1 oder 2 Teilnehmern statt. Sie sind deshalb deutlich intensiver, individueller und flexibler als offline Gruppenworkshops.

Voraussetzung für online Termine sind ein Headset, eine Webcam und eine zügige Internetverbindung für Video-Meeting und Screen Sharing. Jeder Teilnehmer sitzt dabei vor seinem eigenen Rechner und am besten in einer ungestörten Umgebung.

Mein Satz für einen online Block von einer Woche beträgt 250€ für die Begleitung von 1 Teilnehmer und 375€ für die Begleitung von 2 Teilnehmern.

 

Alle Preise zzgl. MwSt sowie Reise-/Übernachtungskosten nach Aufwand.