Was ist das Reifegradmodell für Engineering Excellence?
Entwicklerinnen und Entwickler wissen meist genau, wo die Codebasis Probleme macht. Schwieriger ist es, sich im Team darauf zu einigen, welche Probleme am wichtigsten sind und wie weit man mit ihrer Behebung schon ist. Beim Reifegradmodell für Engineering Excellence bewertet Ihr Team 12 Praktiken in vier Gruppen (Codequalität & Standards, Architektur & Skalierbarkeit, Management technischer Schulden sowie Zusammenarbeit & Befähigung im Engineering) auf einer fünfstufigen Skala von „Ad hoc“ bis „Optimiert“. Da jede Stufe beschrieben ist, werden aus vagen Eindrücken zur Qualität konkrete Aussagen: Code-Reviews, die zwar Fehler finden, aber kein Wissen verbreiten, oder technische Schulden, von denen alle wissen, die aber niemand nachverfolgt. Diese gemeinsame Sprache hilft Entwicklern und Führungskräften, sich darauf zu einigen, was zuerst verbessert werden sollte. Wenn Sie den Check regelmäßig durchführen, sehen Sie, ob Ihre Änderungen die Praktiken eine Stufe nach oben gebracht haben.
Abmessungen
Codequalität & Standards
Wie konsequent das Team sauberen, wartbaren und gut reviewten Code nach gemeinsamen Standards schreibt.
Einheitliche Coding-Standards
Wie konsequent das Team gemeinsame Coding-Richtlinien anwendet.
- Ad hocDie Coding-Praktiken unterscheiden sich stark; gemeinsame Standards werden nicht befolgt.
- Im AufbauEs gibt einige Standards, sie werden aber uneinheitlich angewendet.
- DefiniertStandards sind dokumentiert und werden in der Regel befolgt.
- GesteuertStandards werden konsequent angewendet und regelmäßig überprüft.
- OptimiertEs gibt eine starke Kultur der Codequalität; Standards entwickeln sich durch Zusammenarbeit und Best Practices weiter.
Wartbarkeit des Codes
Wie leicht sich Code lesen, verstehen, ändern und erweitern lässt.
- Ad hocDer Code ist schwer zu lesen, zu durchschauen oder wiederzuverwenden.
- Im AufbauEs gibt einige Verbesserungen, aber Probleme mit der Wartbarkeit bestehen fort.
- DefiniertDie Codebasis ist größtenteils verständlich und wartbar.
- GesteuertDer Code ist sauber, modular und berechenbar, gestützt durch etablierte Praktiken für Wartbarkeit.
- OptimiertWartbarkeit ist fester Bestandteil der Kultur; Teams verbessern und entwickeln Codestrukturen proaktiv weiter.
Qualität der Code-Reviews
Wie wirksam Code-Reviews die Qualität und das Lernen im Team verbessern.
- Ad hocReviews finden selten, überhastet oder nur oberflächlich statt.
- Im AufbauReviews finden statt, unterscheiden sich aber stark in Tiefe und Nutzen.
- DefiniertReviews decken Probleme zuverlässig auf und verbessern die Qualität.
- GesteuertReviews sind konstruktiv und einheitlich und verbessern sowohl die Qualität als auch die Fähigkeiten im Team.
- OptimiertReviews sind kollaborativ, vermitteln viel Wissen und sind ein fester Bestandteil von Engineering Excellence.
Architektur & Skalierbarkeit
Wie klar das System aufgebaut ist und wie gut es skaliert, performt und technische Risiken beherrscht.
Klarheit der Architektur
Wie gut die Systemarchitektur definiert, dokumentiert und verstanden ist.
- Ad hocDie Architektur ist unklar oder nicht dokumentiert.
- Im AufbauEs gibt etwas Dokumentation, sie ist aber unvollständig oder unklar.
- DefiniertDie Architektur ist dokumentiert und den meisten im Team bekannt.
- GesteuertDie Architektur leitet Entscheidungen und entwickelt sich durch strukturierte Zusammenarbeit weiter.
- OptimiertDie Architektur ist skalierbar und durchdacht und wird auf Basis von Erkenntnissen und Erfahrungen laufend verfeinert.
Skalierbarkeit & Robustheit
Fähigkeit des Systems, Wachstum, Performance-Anforderungen und Zuverlässigkeitsansprüche zu bewältigen.
- Ad hocDas System gerät unter Last in Schwierigkeiten; Skalierung erfolgt ungeplant.
- Im AufbauEinige Komponenten skalieren, es bleiben aber Einschränkungen.
- DefiniertDas System bewältigt die übliche Last mit akzeptabler Performance.
- GesteuertDas System skaliert zuverlässig; die Performance wird aktiv überwacht und optimiert.
- OptimiertSkalierbarkeit ist eine Stärke; das System verkraftet Wachstum reibungslos und berechenbar.
Management technischer Risiken
Wie wirksam technische Risiken erkannt, bewertet und gemindert werden.
- Ad hocRisiken zeigen sich spät und verursachen erhebliche Störungen.
- Im AufbauRisiken werden gelegentlich besprochen, aber nicht systematisch gemanagt.
- DefiniertRisiken werden bei der Planung erkannt und bei Bedarf angegangen.
- GesteuertEine strukturierte Risikobewertung ermöglicht proaktive Gegenmaßnahmen.
- OptimiertRisikomanagement ist in allen Engineering-Prozessen verankert und verhindert größere Probleme.
Management technischer Schulden
Wie sichtbar technische Schulden nachverfolgt und abgebaut werden und wie gut ihr Einfluss auf die Lieferung verstanden wird.
Sichtbarkeit der Schulden
Wie technische Schulden erkannt, nachverfolgt und kommuniziert werden.
- Ad hocTechnische Schulden sind verborgen und werden nicht gemanagt.
- Im AufbauEs gibt ein gewisses Bewusstsein für Schulden, sie werden aber selten dokumentiert.
- DefiniertSchulden werden nachverfolgt und regelmäßig überprüft.
- GesteuertDas Schulden-Backlog ist priorisiert und fließt in die Planung ein.
- OptimiertSichtbarkeit und Vermeidung von Schulden sind zentrale Engineering-Praktiken.
Abbau technischer Schulden
Wie wirksam das Team technische Schulden angeht und abbaut.
- Ad hocSchulden häufen sich an, ohne dass eingegriffen wird.
- Im AufbauSchulden werden besprochen, aber selten abgebaut.
- DefiniertSchulden werden angegangen, wenn es machbar ist.
- GesteuertSchulden werden proaktiv und als Teil der regulären Arbeit abgebaut.
- OptimiertDurch diszipliniertes Engineering und kontinuierliche Verbesserung hält das Team die Schulden minimal.
Bewusstsein für Auswirkungen
Verständnis dafür, wie technische Schulden Geschwindigkeit, Qualität und Risiko beeinflussen.
- Ad hocDas Team bringt technische Schulden nicht mit Problemen bei der Lieferung in Verbindung.
- Im AufbauEin gewisses Bewusstsein ist vorhanden, es folgen aber kaum Maßnahmen.
- DefiniertDie Auswirkungen von Schulden sind bekannt und beeinflussen manche Entscheidungen.
- GesteuertDie Auswirkungen von Schulden leiten Planung und Priorisierung durchgängig.
- OptimiertEine ausgeprägte Kultur im Umgang mit Schulden verhindert deren Anhäufung und sichert eine nachhaltige Geschwindigkeit.
Zusammenarbeit & Befähigung im Engineering
Wie wirksam das Team Wissen teilt, Fähigkeiten verbreitet und Entwickler mit den Werkzeugen für hervorragende Arbeit ausstattet.
Wissensaustausch
Wie wirksam Engineering-Wissen und Fachkenntnisse im Team geteilt werden.
- Ad hocWissen liegt in Silos; der Busfaktor ist hoch.
- Im AufbauWissen wird teilweise geteilt, aber uneinheitlich.
- DefiniertWissen wird über informelle oder strukturierte Kanäle geteilt.
- GesteuertWissen fließt reibungslos; das Onboarding ist effizient.
- OptimiertEine stark kollaborative Kultur mit kontinuierlichem Lernen und gemeinsamer Verantwortung.
Breite & Flexibilität der Fähigkeiten
Die Fähigkeit des Teams, in verschiedenen Bereichen des Systems zu arbeiten.
- Ad hocAusgeprägte Silos führen zu Engpässen durch Abhängigkeiten.
- Im AufbauGelegentlich findet bereichsübergreifender Kompetenzaufbau statt.
- DefiniertDie Teammitglieder können die meisten Kernbereiche abdecken.
- GesteuertHohe Flexibilität; das Team passt sich schnell an wechselnde Arbeitslast an.
- OptimiertTiefe und breite Expertise im gesamten Team ermöglicht schnelle, belastbare Lieferung.
Befähigung der Entwickler
Qualität der Werkzeuge, Prozesse und Umgebung, die die Produktivität der Entwickler unterstützen.
- Ad hocDie Werkzeuge sind veraltet oder uneinheitlich; es gibt viele Reibungsverluste.
- Im AufbauVerbesserungen laufen, es bestehen aber noch Lücken.
- DefiniertEntwickler haben zuverlässige Werkzeuge, die die grundlegenden Anforderungen erfüllen.
- GesteuertDie Werkzeuge sind schlank und effizient und werden laufend verbessert.
- OptimiertEine erstklassige Developer Experience ermöglicht schnelle und hochwertige Engineering-Arbeit.
Wann sollte dieser Gesundheitscheck durchgeführt werden?
- Um eine Ausgangsbasis für die technische Reife Ihres Engineering-Teams in den Bereichen Code, Architektur und Zusammenarbeit festzulegen.
- In quartalsweisen Retrospektiven oder Release-Retrospektiven, um zu verfolgen, wie sich die Engineering-Praktiken verändern.
- Wenn eine neue Engineering-Führungskraft dazukommt und einen ehrlichen Überblick über aktuelle Stärken und Lücken braucht.
- Bevor Sie in Werkzeuge, Refactoring oder Prozessänderungen investieren, um zu entscheiden, wo sich der Aufwand am meisten lohnt.
- Wenn das Team wächst und Standards, Wissensaustausch und Architektur Schritt halten sollen.
Tipps und Tricks
- Lassen Sie alle zuerst für sich bewerten und erst danach diskutieren, damit ehrliche Einschätzungen sichtbar werden, bevor sich Gruppendenken einstellt.
- Verwenden Sie die meiste Zeit auf Dimensionen mit der größten Streuung der Bewertungen. Uneinigkeit zeigt oft, wo das System unterschiedlich wahrgenommen wird.
- Verstehen Sie die Stufen als Entwicklungsschritte, nicht als Noten. Der Schritt von „Im Aufbau“ zu „Definiert“ ist echter Fortschritt, und das sollten Sie auch anerkennen.
- Wählen Sie bis zum nächsten Check ein oder zwei Dimensionen zur Verbesserung aus, statt alles auf einmal verändern zu wollen.
- Wiederholen Sie den Check in regelmäßigen Abständen, damit Fortschritte bei den Engineering-Praktiken sichtbar bleiben.