Wissensverteilung
In Entwicklungsprojekten ist das Wissen im Team stets ungleich verteilt. Unkenntnis über diese Wissensverteilung führt zu besonderen Risiken im Projekt und gefährdet die Entwicklungsziele.
Unsere DETANGLE Analyse der Software-Historie macht die Struktur und die Verteilung des Wissens im Projektteam transparent. Aktives Wissensmanagement in R&D Projekten führt zu einem effizienteren On- und Offboarding, einer besseren Qualität der entwickelten Software und zu robusteren Prozessen im Software Engineering.
- Die Qualität der Software verbessert sich
- Der Entwicklungsprozess wird langfristig robuster
- Die Wissenverteilung zu optimieren wird zur Führungsaufgabe
- Wissen zu teilen wird Teil der Entwicklungskultur
- Abhängigkeiten von einzelnen Entwickler werden reduziert
- Neue Teammitglieder werden schneller produktiv
- Fluktuation bei den Entwicklern wird reduziert
Wissensverlust ist teuer und vermeidbar
Eine erfolgreiche Software muss über viele Jahre technologisch und funktional weiterentwickelt werden. Für das R&D Management ist das eine Herausforderung, da die Software in dieser Zeit durch viele Entwickler bearbeitet wurde, die inzwischen nicht mehr im Unternehmen sind. Zu wissen, was sich der Entwickler damals bei seinen Codezeilen gedacht hat, ist entscheidend dafür, dass der Code nicht nach und nach zu einem Spaghetti-Code voller Technischer Schulden wird. Eine gute Wissensverteilung im Projektteam ist die Basis, dass nachfolgende Entwickler-Generationen die Software effizient weiterentwickeln können.
Wenn das R&D Management folgende Fragen nicht beantworten kann, besteht Handlungsbedarf im Bereich Wissensverteilung und -vermittlung:
- Welcher Teil des Codes stammt von Entwicklern, die nicht mehr verfügbar sind?
- Wo ist der Code mangelhaft dokumentiert?
- Welche Top-Entwickler coachen und delegieren zu wenig?
- Welche Code-Bereiche werden von zu vielen Entwicklern betreut, so dass die Fehlerquote hier ansteigt?
- Welches Wissen muss neu aufgebaut werden, wenn ein Entwickler seine Kündigung einreicht?
Im Kern drehen sich diese Fragen um die Robustheit des Software-Entwicklungsprozesses. “Was wäre, wenn"-Szenarien helfen dabei, Abhängigkeiten von einzelnen Personen zu erkennen und Codestellen mit problematischer Nachvollziehbarkeit zu identifizieren. Eine regelmäßige Analyse des Codes mit Fokus auf die Wissensverteilung reduziert die Risiken, die im Code durch die (Wissens-)Fluktuation entstehen könnten.
Wir von Cape of Good Code kennen als Softwareentwickler dieses Problem nur zu gut. Bei der Konzeption unserer DETANGLE Analyse Suite war es von Anfang an vorgesehen, diese Fragen mit einem einfachen DETANGLE Code Scan zu beantworten. Mit diesem, direkt aus der Historie des Code gewonnen Input, lassen sich organisatorische und methodische Gegenmaßnahmen erarbeiten, die das Risiko von Abhängigkeiten oder durch Wissensverlust für die Zukunft minimieren.
Möchten Sie mehr über die Wissensverteilung in Ihrem Unternehmen erfahren?
Gerne unterstützen wir Sie dabei die Wissensverteilung transparent zu machen. Sprechen Sie mich an!
Eine gute Wissensverteilung macht R&D Teams robuster
Agile Softwareentwicklung ist Teamarbeit und Teamarbeit beruht auf Koordination, Kommunikation und dem Teilen von Wissen. Nicht alle Mitglieder im Projektteam verfügen über die gleiche Erfahrung und das gleiche Wissen. Gleicht man diese Wissensasymmetrien nicht aus, spiegelt sich das in Arbeitsergebnissen wider, die die Erwartungen dann selten erfüllen. Wäre das vermeidbar gewesen? Ja!
Mit der DETANGLE Analyse Suite können die wesentlichen Fragen zum Thema Wissensverteilung und Wissensvermittlung direkt aus dem Code abgeleitet und beantwortet werden. Dabei erfährt man:
- ob neue Mitarbeiter durch Kollegen effektiv angelernt und integriert werden
- ob die erfahrenen Entwickler ihr Wissen weitergeben und delegieren
- ob wichtige Codebereiche von einzelnen Entwicklern alleine bearbeitet werden
- ob die Arbeitsverteilung einen Burn-out/Bore-out begünstigen
Sich auf einzelne Top-Entwickler:innen zu verlassen ist zwar kurzfristig effizient, hat aber ein großes Risiko, wenn sie krank werden oder kündigen. Talentierte Entwickler, die das Unternehmen verlassen (müssen), weil sie nicht genügend eingearbeitet und integriert wurden, sind unnötige und teure Fehlinvestitionen. Eine sinnvolle Verteilung von Wissen auf mehr als jeweils nur sehr wenige Teammitglieder und die Vermittlung von Wissen über diesen Kreis hinaus, sorgt an dieser Stelle für Ruhe, Effizienz und Sicherheit. Es sorgt auch für mehr Selbstvertrauen und Zufriedenheit bei den jüngeren Entwickler:innen, die sich anfangs verloren und später unterfordert fühlen können. Die Performance des Software-Engineerings wird durch eine sinnvolle Wissensverteilung (Knowledge Distribution) langfristig “robuster” und verlässlicher.
Senkt eine bessere Wissenverteilung die Entwicklungskosten?
“There is no free lunch”. Die Verbesserung der Wissensverteilung erfordert eine gewisse Redundanz bei der Besetzung von Entwicklungsaufgaben und das verursacht oberflächlich betrachtet zunächst Mehrkosten. Nach unseren Erfahrungen werden diese durch weniger Nacharbeiten, geringere Qualitätskosten und mehr Potential für einen kommerziellen Erfolg weit überkompensiert.
Eine Analyse der Software mit DETANGLE liefert dem R&D Management die notwendigen Fakten, um die Optimierung der Wissensverteilung sinnvoll auf die Problem-Hotspots im Team und in der Software zu konzentrieren. Ohne diese detaillierten Analyseergebnisse wäre der Versuch, die Wissensverteilung zu verbessern, ein Blindflug, der entweder für die Entwicklungseffizienz wirkungslos, wahrscheinlicher aber sogar negativ ausfallen würde.
Gerade bei stark wachsenden Software-Unternehmen kann das Beachten einer sinnvollen Wissensverteilung die Arbeitseffizienz der vielen Neueinstellungen wesentlich verbessern. Deren schnelle Einarbeitung und Integration ist essentiell, damit sie aktiv und kompetent zur Wertschöpfung in den Projekten beitragen können. Die regelmäßige Analyse der Wissensverteilung in den Projektteams kann dazu einen wesentlichen Beitrag leisten.
Sprechen Sie uns an. Der Aufwand ist überschaubar und die Ergebnisse liegen schon in wenigen Tagen vor.
Warum sind Lücken in der Dokumentation Technische Schulden?
Eine mangelnde Dokumentation system-relevanter Code-Bereiche führt grundsätzlich zu einer verringerten Effizienz bei der Code-Weiterentwicklung, weil das Nachvollziehen des Codes mehr Zeit erfordert. Dramatisch kann es im Falle von Krankheit oder Kündigung der dafür verantwortlichen Entwickler werden. Dieser nachhaltige Wissensverlust verstärkt nochmals die Qualitätsrisiken und die Ineffizienzen bei der Weiterentwicklung des Codes. Dokumentationslücken und -mängel werden deshalb zu den Technischen Schulden gezählt.
Mangelnde Dokumentation führt zu insbesondere bei folgenden Konstellationen zu Fehlern und zusätzlichen Wartungsaufwänden:
- inhärent komplexe Code- Bereiche,
- schwer verständliche Code-Bereiche aufgrund unstrukturierter Programmierung
- gekoppelte Code-Bereiche aufgrund
- mangelnder Modularisierung
- von vielen Entwicklern bearbeitete Code-Bereiche
Jetzt unser kostenfreies Whitepaper zum Thema Technische Schulden sichern
In diesem Whitepaper veranschaulichen wir, warum es unerlässlich ist, die technischen Schulden in einer Software Analyse zu betrachten.
Warum führt Nachvollziehbarkeit im Code zu mehr Qualität?
Jede Code-Änderung braucht einen Grund und dieser sollte bekannt sein. Für jede neue Software-Version müssen nicht nur die darin enthaltenen Features und alle Bugfixes bekannt sein, sie müssen auch überprüfbar im Code gefunden und nachvollzogen werden können. Mit methodischen Best-Practices und entsprechenden Tools ist das ein Teil des wichtigen Versionsmanagements. Versionsmanagement wiederum schafft das relevante Projektwissen, das die Qualität zukünftiger Versionen mitbestimmt.
Die DETANGLE Analyse Suite zieht Analysedaten aus diesen Tools (z.B. Code-Repositorys, Issue Trackers, DevOps Plattformen) und prüft die eindeutige Rückverfolgbarkeit im Code zu Features und Bugfixes. Selbst im Code “verloren” gegangene Features können identifiziert werden. Damit steigt die Nachvollziehbarkeit des Codes erheblich an und unbeabsichtigte Probleme durch Seiteneffekte aus Qualitätsmaßnahmen werden vermieden.
Welche Maßnahmen haben sich bewährt?
Folgende Beispiele an Maßnahmen lassen sich aus den Details der Analyse zur Wissensverteilung ableiten. Neben den Daten und Informationen aus DETANGLE, liefern auch Interviews durch unsere erfahrenen Berater ergänzende Informationen über die einflussreiche Entwicklungs- und Unternehmenskultur. Das gemeinsame Verständnis sollte sein, dass auch eine hohe Mitarbeiterzufriedenheit die Grundvoraussetzung für qualitativ hochwertige Entwicklungsergebnisse ist.
Um ein untereinander gut vernetztes und kollaborierendes Projektteam zu erreichen, sind nachfolgend einige Empfehlungen gelistet. Das Onboarding von neuen Mitarbeitenden spielt dabei aus Sicht der Wissensverteilung und Wissensvermittlung eine ebenso große Rolle wie das Offboarding:
- Für gefragte Entwickler sind State-of-the-Art Methoden eine wichtige Bedingung, um sich für einen Arbeitgeber zu entscheiden. Die Software Engineering Prozesse müssen auch deshalb ständig überprüft und weiterentwickelt werden.
- Das Onboarding neuer Mitarbeiter muss nach einem strukturierten Plan erfolgen.
- Erfahrene Entwickler sollten als Coaches für jüngere Kollegen installiert werden. Regelmäßiges Feedback hilft dabei, das Coaching zu justieren.
- Mit DETANGLE identifizieren wir, wer welchen Beitrag am Code liefert und differenzieren zwischen Solisten, “Handlangern” bzw. strukturierten und unstrukturierten Teams. Solisten müssen mehr coachen und delegieren. “Handlanger” haben oft viel mehr Potential und sollten anspruchsvollere Aufgaben übertragen bekommen. Unstrukturierte Teams sind sehr problematisch und müssen prüfen, ob die Aufgaben jemandem eindeutig zugeordnet werden können.
- Durch Monitoring der Burn-out oder Bore-out Indikatoren kann der Krankenstand und die Fluktuation positiv beeinflusst werden.
- Für jeden Projekt-kritischen Mitarbeiter sollte einen Ersatz identifiziert oder entwickelt werden, damit bei einem Offboarding keine problematische Wissenslücke entsteht.
- Ein strukturierter Offboarding Prozess sollte aufzeigen, welches Wissen (siehe auch 4) beim Ausfall eines Mitarbeitenden zu ersetzen ist und welche potentiellen Risiken in dessen Arbeitsfeld zuallererst auftauchen könnten.