Datadog usa Codex per rivedere il codice a livello di sistema
Con Codex, Datadog porta il contesto a livello di sistema in ogni revisione del codice per prevenire incidenti e proteggere la fiducia dei clienti.
Datadog(si apre in una nuova finestra) gestisce una delle piattaforme di osservabilità più utilizzate al mondo, che aiuta le aziende a monitorare, risolvere problemi e proteggere sistemi distribuiti complessi. Quando qualcosa si rompe, i clienti si affidano a Datadog per individuare rapidamente i problemi, pertanto l'affidabilità deve essere integrata molto prima che il codice raggiunga la produzione.
Per i team di ingegneria di Datadog, ciò rende la revisione del codice un momento di particolare rilevanza. Non si tratta solo di individuare gli errori, ma di comprendere come le modifiche si propagano attraverso sistemi interconnessi, un ambito in cui l'analisi statica tradizionale e gli strumenti basati su regole spesso non sono all'altezza.
Per affrontare questa sfida, il team AI Development Experience (AI DevX) di Datadog si è rivolto a Codex, l'agente di codifica di OpenAI, che introduce il ragionamento a livello di sistema nella revisione del codice e mette in evidenza rischi che gli esseri umani non riescono facilmente a vedere su larga scala.
«I risparmi di tempo sono concreti e significativi», spiega Brad Carter, responsabile del team IA DevX di Datadog, «Ma considerata la portata del nostro lavoro è la prevenzione degli incidenti a far davvero la differenza.»
La revisione efficace del codice in Datadog era tradizionalmente basata in larga misura sugli ingegneri senior, coloro che comprendono il codice sorgente, la sua storia e i compromessi architetturali abbastanza bene da individuare i rischi sistemici.
Ma quel tipo di contesto approfondito è difficile da scalare e i primi strumenti di revisione del codice basati sull'IA non hanno risolto questo problema; molti si comportavano come linter avanzati, segnalando problemi superficiali ma trascurando le sfumature più ampie del sistema. Gli ingegneri di Datadog spesso trovavano i suggerimenti troppo superficiali o troppo confusi e li ignoravano.
Datadog ha iniziato a testare Codex, l'agente di coding di OpenAI, integrandolo nei flussi di lavoro di sviluppo dal vivo. In uno dei repository più grandi e più utilizzati dell'azienda, ogni pull request veniva automaticamente revisionata da Codex. Gli ingegneri hanno reagito ai commenti di Codex con un pollice in su o in giù e hanno condiviso feedback informali tra i team. Molti hanno notato che i feedback di Codex erano effettivamente utili, a differenza degli strumenti precedenti che producevano suggerimenti rumorosi o superficiali.
Per verificare se la revisione assistita dall'IA andasse effettivamente oltre la segnalazione dei problemi di stile, Datadog ha costruito un sistema di riproduzione degli incidenti.
Invece di utilizzare scenari ipotetici, il team ha utilizzato eventi storici. Ricostruendo le pull request che avevano contribuito agli incidenti, hanno eseguito Codex su ciascuna come se fosse parte della revisione originale, quindi hanno chiesto agli ingegneri responsabili di quegli incidenti se il feedback di Codex avrebbe fatto la differenza.
Il risultato: Codex ha rilevato più di 10 casi, ovvero circa 22% degli incidenti esaminati da Datadog, in cui gli ingegneri hanno confermato che il feedback fornito da Codex avrebbe fatto la differenza: più di qualsiasi altro strumento valutato.
Poiché queste pull request avevano già superato la revisione del codice, il test di replay ha mostrato che Codex è stato in grado di evidenziare rischi che i revisori non avevano visto all'epoca, integrando il giudizio umano anziché sostituirlo.
L'analisi di Datadog ha dimostrato che Codex individuava costantemente problemi che non sono evidenti dal solo diff immediato e che non possono essere rilevati da regole deterministiche.
Gli ingegneri hanno descritto i commenti di Codex come più di un semplice “rumore da bot“:
- Codex ha evidenziato interazioni con moduli non modificati nel diff.
- Ha individuato la copertura i test mancante nelle aree di accoppiamento tra servizi.
- Ha evidenziato le modifiche al contratto API che comportavano un rischio a valle.
«Leggendo un commento di Codex ho l'impressione di parlare con l'ingegnere più brillante con cui abbia mai lavorato e che ha tempo infinito da dedicare alla ricerca di bug. Crea collegamenti che il mio cervello non riesce a cogliere tutti insieme.»
Quella capacità di collegare il feedback della revisione a risultati concreti in termini di affidabilità è ciò che ha fatto risaltare Codex nella valutazione di Datadog. A differenza degli strumenti di analisi statica, Codex confronta l'intento della pull request con le modifiche al codice inviate, effettuando un ragionamento sull'intero codebase e sulle dipendenze per eseguire codice e test e convalidare il comportamento.
«È stato il primo che sembrava davvero considerare il diff nel contesto più ampio del programma», dice Carter, “Un evento nuovo e illuminante.”
Per molti ingegneri, quel cambiamento ha completamente trasformato il modo in cui interagivano con la revisione dell'IA. «Ho iniziato a trattare i commenti di Codex come un vero feedback sulla revisione del codice», afferma Ted Wexler, Senior Software Engineer presso Datadog, «Non un commento da leggere di sfuggita o ignorare, ma qualcosa a cui vale la pena prestare attenzione.»
Dopo la valutazione, Datadog ha implementato Codex in modo più ampio tra il personale ingegneristico. Oggi oltre 1.000 ingegneri lo usano regolarmente.
Il feedback emerge in modo organico e non attraverso metriche formali integrate nello strumento. Gli ingegneri pubblicano su Slack informazioni utili, commenti costruttivi e momenti in cui Codex li ha aiutati a pensare diversamente a un problema.
Sebbene il risparmio di tempo sia notevole, i team hanno costantemente sottolineato che il cambiamento più significativo è avvenuto nelle modalità di lavoro.
«Codex mi ha fatto cambiare idea su come dovrebbe essere la revisione del codice. L'intento non è replicare i nostri migliori revisori umani, ma individuare difetti critici e casi limite che gli esseri umani faticano a vedere quando esaminano le modifiche singolarmente.»
L'impatto più ampio per Datadog è stato un cambiamento nel modo in cui viene definita la revisione del codice stessa. Anziché considerare la revisione come un punto di controllo per individuare errori od ottimizzare il tempo di ciclo, per il team ora Codex è un sistema di affidabilità fondamentale che funge da partner:
- Mette in evidenza i rischi che vanno oltre ciò che i singoli revisori possono comprendere nel contesto.
- Evidenzia le interazioni tra moduli e servizi.
- Aumenta la fiducia nella consegna su larga scala.
- Consente ai revisori umani di concentrarsi sull'architettura e sul design.
Tale cambiamento riflette l'approccio dei leader di Datadog nella definizione delle priorità ingegneristiche, in cui affidabilità e fiducia hanno lo stesso peso, se non maggiore, della velocità.
«Siamo la piattaforma su cui le aziende fanno affidamento quando tutto il resto va in pezzi», afferma Carter, «La prevenzione degli incidenti rafforza la fiducia che i nostri clienti ripongono in noi.»


