Neue Features erweitern und optimieren UX-Erlebnisse für Ihre Endbenutzer:innen. Gleichzeitig steckt in ihnen auch viel Herzblut Ihrer Entwickler:innen. Wenn es aber bei zu vielen von ihnen zu Release-Schwierigkeiten kommt, ist es womöglich an der Zeit, sich über ein Programm zur Verbesserung der Code-Qualität Gedanken zu machen. Endziele im großen Ganzen dabei stets: Innovation und Wachstum. Gestützt werden sie schließlich auch von wichtigen Erfolgsfaktoren für DevOps-Teams: der Release-Geschwindigkeit und der Fehlerrate neuer Features. Diese Wechselbeziehung legt auch der Observability Report 2022 nahe. Die in ihm erfassten Ergebnisse dokumentieren eine klare Korrelation zwischen Full-Stack Observability und weniger Ausfällen, rascherer Problemerkennung und -behebung.

Besserer Code in 4 Schritten.   

1. Tracking von Metrics zur Code-Qualität      

Quantitativ ausdrücken lässt sich Code-Qualität anhand von vier KPI-Kennzahlen. Diese Performance-Indikatoren bestimmen sowohl Fehler als auch Bereiche mit dem größten Aufwand für die Entwickler:innen.  

  • Erfolgreiche Builds: Hier gilt es, prozentual zu erfassen, wie häufig neuer Code erfolgreich kompiliert bzw. in die Gesamtanwendung integriert werden kann. Der Wert sollte dabei möglichst nahe an 100 % liegen.
  • Erfolgreiche Unit-Tests: Die Anzahl an Tests, die der Code erfolgreich abschließt, erneut prozentual ausgedrückt und mit einer möglichst hoch angesetzten Zielvorgabe.
  • Code-Abdeckung: Der Anteil am gesamten Anwendungscode, der mindestens einen Unit-Test durchläuft, idealerweise 100 %.
  • Fehlermenge: Mit dieser Kennzahl wird festgelegt, wie viele Fehler durch ein bestimmtes Code-Modul in einer Anwendung entstehen. Sie sollte möglichst niedrig sein.

2. Erfassung Ihrer Code Velocity      

Mit welcher Frequenz schreiben Ihre Teams Code und wie gestaltet sich im Anschluss der Commit im Repository? Durch inhaltliche Quantifizierung Ihrer Code Commits lässt sich ablesen, ob Ihre Code Velocity sich womöglich qualitativ negativ auswirkt. Dabei korrelieren Sie die Anzahl der Fehler mit dem Umfang Ihrer Commits und bestimmen so das optimale Gleichgewicht zwischen Geschwindigkeit und Stabilität.

3. Entwicklung von Dashboards zur qualitativen Visualisierung Ihres Dev-Frameworks      

Bei diesem Schritt identifizieren Sie die Technologie hinter Ihren Coding-Prozessen wie Repositories für Quellcode und Automatisierungsplattformen für Builds und Testing-Abläufe. Über die APIs Ihrer Development-Toolchain extrahieren Sie dann Daten zu Qualität und Velocity und übermitteln sie an New Relic über die API für Custom-Events. Beispiele für derartige DevQual-Dashboards finden Sie im New Relic Observability Maturity Architecture (OMA) Resource Center auf GitHub, so etwa auch dieses Dashboard für Analysen im unteren Funnel-Bereich.

4. Baselining: Optimieren. Validieren. Nachjustieren.  

Anhand der in Ihren Dashboards erfassten Daten zur Code-Qualität kann kurz- bis mittelfristig eine eigene Baseline definiert werden. Abhängig von Ihrer aktuellen Entwicklungsgeschwindigkeit sind hier zwei bis sechs Wochen an Datenpunkten durchaus realistisch und zielführend. Gut umsetzbar ist dieser Prozess auch durch Abstimmung von Baselining und Sprint-Evaluierungen. 

Nach erfolgtem Baselining gilt es nun, die Bereiche zu identifizieren, die besonders von einer Optimierung profitieren würden. Bei einer hohen Fehlerrate könnten die Ursachen neu hinzugekommener Fehler etwa wirkungsvoll durch Tracking von Attributen wie Timestamp, Anwendung und Code-Modul bestimmt werden. Ihr Engineering-Team kann sich nun präziser darauf konzentrieren, die Code-Module zu optimieren, von denen die meisten dieser Fehler ausgehen.