Der Senior Developer Advocate ist ein erfahrener Software-Entwickler, welcher zeitweise in Ihrem Team mitarbeitet und dabei ein besonderes Augenmerk auf die Verbesserung der technischen und organisatorischen Fähigkeiten der Team-Mitglieder legt. Der Senior Developer Advocate arbeitet aktiv an der vom Team bereitgestellten Software-Lösung mit und ist daher auch ein weiterer Entwickler.
Vorteile für Ihr Unternehmen
In Zeiten knapper Budgets und vieler neuer Herausforderungen ist der Senior Developer Advocate eine sehr kostengünstige Möglichkeit die Gesamtleistung des Teams dramatisch zu verbessern.
Statt in die Anstellung weiterer Software-Entwickler, Tester, Business Analysts, Product Owner, Scrum Master, usw. zu investieren, hilft der Senior Developer Advocate die Fähigkeiten der schon vorhandenen Mitarbeiter zu verbessern. Es fallen Einarbeitungszeiten weg, die Gesamtkosten sind weitaus geringer und als angenehmer Nebeneffekt steigt sogar die Qualität des Codes.
Weitaus besser als Schulungen - und billiger
Der Senior Developer Advocate ist ein weiteres Team-Mitglied und kann daher situativ die richtigen Angebote im richtigen Kontext machen. Er liefert die Lösung für das jeweilige Problem und die Schulung passiert “on the job” und ist quasi gratis. Hier einige Beispiele:
Continuous Deployment (CD)
Bisher liefert das Team eine neue Version der Software am Ende des Scrum Sprints und damit z.B. alle 2 Wochen. Anstelle einer aufwändigen Umstellung auf Continous Deployment, findet der Senior Developer Advocate Gelegenheiten immer mehr Schritte von build, test und deployment zu automatisieren. Durch viele kleine quick wins entsteht nach und nach eine Infrastruktur, die schließlich Continous Deployment ermöglicht. Der Senior Developer Advocate realisiert diese Dinge entweder eigenständig oder bezieht andere Team-Mitglieder im Stile von pair programming mit ein. Nicht nur wird eine Lösung geliefert, sondern auch nachhaltiges Wissen und Fähigkeiten aufgebaut. Ganz ohne Mühen ist das Team sogar auf dem Weg zu DevOps.
Testgetriebene Entwicklung (TDD)
Zu TDD gibt es viele Texte und Schulungen. Leider ist testgetriebene Entwicklung alles andere als einfach. Bestehender Code stellt oft eine unüberwindbare Hürde dar und in fast allen Fällen wird TDD dann abgelehnt oder aufgegeben. Am Ende wird sich weiter auf dedizierte Tester verlassen, der Code ist schwer veränderbar und die technischen Schulden steigen. Der Senior Developer Advocate hat durch langjährige Praxis ein Gespür für den richtigen Moment, für die richtige Situation und führt die anderen Team-Entwickler an TDD heran.
Ausführbare Spezifikation
Gerade in größeren Unternehmen ist die Kommunikation zwischen Entwicklungsteam und den internen Auftraggebern oft schwierig und gern werden perfekte Lösungen für das falsche Problem entwickelt. Der Senior Developer Advocate setzt sich mit den Auftraggebern - stakeholdern - zusammen und findet heraus wo es klemmt. Eine mögliche Lösung ist dann die behutsame Einführung von ATDD (Acceptance Test-Driven Development), welches eine ausführbare Spezifikation, z.B. mit dem Werkzeug Cucumber oder Alternativen, nutzt, um die in natürlicher Sprache abgefaßten Anforderungen testbar zu machen. So wird geliefert was bestellt wird.
Dauer des Einsatzes
Die Dauer des Einsatzes des Senior Developer Advocate ist grundsätzlich nicht begrenzt. Er ist ja primär ein weiteres Team-Mitglied - allerdings mit einer Sonderaufgabe. Viele Einsätze gehen über 6 - 12 Monate.
Es ist hilfreich das Engagement dynamisch oder in Intervallen, z.B. jede zweite Woche, zu gestalten. Die Kosten bleiben dadurch unter den üblichen Ausgaben für externe Spezialisten. Damit bekommt Ihr Unternehmen mit dem Senior Developer Advocate einen Entwickler, einen Berater, einen Trainer und die gesammelte Erfahrung von vielen Unternehmen.
Struktur eines typischen Engagements als Senior Developer Advocate
Erfolgskontrolle ist bei jeder Investition wichtig. Eine klare Struktur und Kommunikation sind wichtige Elemente.
Bestandsaufnahme und Interviews
Planung von Maßnahmen (Coaching-Karte)
Praktische Arbeit
Erfolgskontrolle
Entwöhnung
Bestandsaufnahme und Interviews
Bevor wir anfangen können, müssen wir feststellen, wo wir überhaupt stehen. Was funktioniert gut und wo gibt es Schwierigkeiten, Herausforderungen, Defizite usw.
Je nach Größe des Teams und Umfang der bestehenden Software werden im Laufe von ein bis zwei Wochen verschiedene Interviews geführt und bestehende technische Prozesse genauer analysiert. Dazu gehört auch ein technical review der bestehenden Software.
Coaching-Karte zur Bestimmung von Maßnahmen und erwarteten Erfolgen
Mit den Erkenntnissen aus der Bestandsaufnahme entwickeln wir gemeinsam eine Coaching-Karte, die – ähnlich einer Story Map – mögliche Maßnahmen sowie deren zeitlichen und inhaltlichen Zusammenhang aufzeigt. Diese Coaching-Karte wird dann unser gemeinsamer Plan und dient auch zur Erfolgskontrolle.
Praktische Arbeit
60 % bis 70 % der praktischen Arbeit des Senior Developer Advocate besteht aus der Mitarbeit an der Entwicklung der Softwarelösung, an der das Team arbeitet. Daher ist diese Rolle klar die eines Teammitglieds und Entwicklers, und es geht nicht einfach nur um Training.
Der Schwerpunkt auf der praktischen Arbeit als Entwickler führt zur Akzeptanz der Person und der vorgeschlagenen Maßnahmen durch die anderen Teammitglieder.
Die oben erwähnte Coaching-Karte ist für alle Teammitglieder ständig sichtbar, und der Senior Developer Advocate sucht aktiv nach den richtigen Zeitpunkten und Gelegenheiten, um Ausbildungsziele und Maßnahmen situativ und im persönlichen Kontakt umzusetzen.
Phase der Entwöhnung
Nach einiger Zeit wird das Engagement enden, und es beginnt die Phase der Entwöhnung. Der Nachhaltigkeit wegen sollte diese Phase spätestens nach 12 Monaten beginnen. Die Mitarbeit des Senior Developer Advocate wird reduziert, und der Schwerpunkt verlagert sich mehr auf die Beobachtung und Begleitung des Teams.
Ziel ist es, das Engagement nach ein paar Wochen reduzierter Präsenz vollständig zu beenden. Bei Bedarf kann es wieder aufgenommen werden.
Erfolgskontrolle
Regelmäßige Gespräche mit der Geschäfts- oder Bereichsleitung dienen der Erfolgskontrolle. Es geht dabei um klare Ziele und was davon erreicht wurde oder wo Schwierigkeiten sind. Der Senior Developer Advocate ist auch ein Unternehmensberater und wird gegebenenfalls z.B. auch Änderungen an der Aufbaustruktur des Unternehmens vorschlagen.
Insgesamt drei Coaches für den Hauptstandort und bei einem externen Entwicklungspartner kümmerten sich um technische und organisatorische Themen rund um den E-Commerce-Shop (Java J2EE-Umgebung mit IBM Websphere Commerce). Inhaltlich ging es um die Entwicklung von Produkten vs. Servicebereitstellung, Informationsvisualisierung, Integration von Nicht-Entwicklern, die Umstrukturierung eines traditionellen Einzelhändlers zu einem E-Commerce-Unternehmen, neue Rollen und Fähigkeiten. Das Engagement wurde um die Ausbildung neu eingestellter Entwickler in der Microservices-Architektur und im DevOps-Modell erweitert.
Alfa Insurance, Moskau, Russland
Gemeinsam mit dem Senior Management arbeiteten wir an der Verbesserung der Engineering-Praktiken. Es wurde zu Netzwerksicherheit und Informationssicherheitspraktiken beraten. Wir führten zusätzliche Coaches in die Teams ein, um XP (eXtreme Programming) auf Teamebene zu unterstützen.
Huawei Technologies, verschiedene Städte, China
Für verschiedene Teams wurde ATDD und situatives Kanban eingeführt. Auch wurde das mittlere Management zu agilen Prinzipien beraten und ausgebildet.
Webtrekk, Berlin, Deutschland
Coaching des CTO zu agilen Prinzipien und Testing. Einführung von Acceptance Test-Driven Development in Entwicklungs-Teams und vertiefendes Coaching für Scrum Master.
OBI Smart Technologies, Wermelskirchen, Deutschland
Aufbau eines multifunktionalen Teams und entsprechende Veränderung der Aufbauorganisation in Zusammenarbeit mit Bereichsleitern. Verbesserung der Anforderungserfassung und der Zusammenarbeit zwischen Abteilungen. Coaching von Abteilungsleitern zu agilen Werten und Prinzipien.
Independent Health, Buffalo, New York, USA
Coaching von SOA-Teams zu Acceptance Test-Driven Development. Entwicklung von rmq zur Unterstützung der Arbeit mit IBM MQ.
Nationwide Insurance, Columbus, Ohio, USA
Beteiligung an einer agilen Transformation von 23 Teams. Technisches und organisatorisches Coaching für 6+ Teams und etwa 80 Einzelpersonen. Coaching von Softwarearchitekten und Teammitgliedern zu agilen Entwicklungspraktiken, einschließlich testgetriebener Entwicklung (TDD) und kontinuierlicher Integration (CI).