Pomona: Continuous Code Quality Improvement via Small, Automated Changes at Bloomberg
Questo articolo introduce Pomona, uno strumento agentico leggero ispirato al Kaizen che migliora continuamente la qualità del codice in Bloomberg automatizzando la scoperta e la riparazione incrementale del debito tecnico attraverso piccole pull request a basso rischio, ottenendo elevati tassi di successo nelle merge e una forte adozione da parte degli ingegneri in un deployment di un mese.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Immagina di gestire una biblioteca enorme e frenetica (il codice della tua azienda). Con il tempo, alcuni libri vengono riposti male sugli scaffali, alcune pagine presentano macchie di caffè e qualche nota viene scritta a matita e deve essere cancellata. Di solito, i bibliotecari (gli ingegneri del software) sono troppo impegnati a scrivere nuovi libri per sistemare questi piccoli, fastidiosi problemi. Sanno che la biblioteca ha bisogno di essere messa in ordine, ma non hanno il tempo di farlo tutto in una volta.
Entra in scena Pomona, un nuovo e utile assistente robotico progettato specificamente per occuparsi delle "piccole cose" che gli esseri umani tendono a rimandare.
Ecco come funziona Pomona, suddiviso in concetti semplici:
1. La danza in due fasi: Scansione e Riparazione
Pomona non è una bacchetta magica che risolve tutto in un colpo solo. Invece, lavora come un zelante custode con una routine specifica, utilizzando due "abilità" principali:
Lo Scanner (Gli Occhi): Questa parte di Pomona percorre la biblioteca cercando piccoli problemi. Controlla cose come:
- Libri lasciati sullo scaffale sbagliato (errori di linting).
- Post-it che dicono "Sistemare questo più tardi" ed sono lì da anni (TODO).
- Pagine vuote e inutili (codice morto).
- Capitoli mancanti nell'indice (lacune nei test).
Una volta trovati questi problemi, li annota in un Backlog (una lista di cose da fare), ordinandoli per importanza e facilità di risoluzione.
Il Riparatore (Le Mani): Questa parte sceglie l'elemento più semplice, facile e importante dalla lista delle cose da fare. Poi esegue una piccola, piccolissima riparazione — pensa di sistemare appena 10 righe di testo o di correggere un singolo errore di battitura. Non cerca di ricostruire l'intera biblioteca; sistema solo un piccolo scaffale.
2. La "Tiny Pull Request" (Il controllo umano)
Questa è la parte più importante: Pomona non cambia i libri da sola. Crea una Pull Request (PR).
Immagina una Pull Request come un post-it che Pomona lascia su un libro dicendo: "Ehi, ho notato che questa pagina era sottosopra. L'ho girata. Per favore, dai un'occhiata veloce e dimmi se ho fatto bene."
- Piccolo è Sicuro: Poiché le modifiche sono così piccole (circa 10 righe), un bibliotecario umano può esaminarle in pochi secondi.
- L'Umano nel Ciclo (Human in the Loop): L'umano deve dire "Sì" prima che la modifica venga apportata. Questo mantiene gli ingegneri in controllo e costruisce fiducia. Non hanno paura che il robot possa accidentalmente cancellare l'intera biblioteca.
3. La Filosofia Kaizen
Il documento confronta Pomona con il Kaizen, una filosofia giapponese di "miglioramento continuo". Invece di tentare un massiccio e spaventoso progetto di ristrutturazione una volta all'anno, Pomona suggerisce di apportare piccoli, costanti miglioramenti ogni giorno. È la differenza tra cercare di pulire tutta la casa in un fine settimana e passare 10 minuti al giorno a sistemare una singola stanza.
4. Cosa è successo quando l'hanno provata?
Il team di Bloomberg (una grande azienda finanziaria) ha lasciato che Pomona lavorasse per un mese. Ecco cosa hanno scoperto:
- Ha Funzionato: Su 17 piccole riparazioni suggerite da Pomona, 15 sono state accettate e integrate nel codice.
- È stata Veloce: La maggior parte di queste riparazioni è stata approvata e chiusa in meno di 2 ore.
- Alle Persone è Piaciuto: Quando agli ingegneri è stato chiesto se volevano usare Pomona, 8 su 10 hanno detto di sì. Amavano il fatto che le modifiche fossero piccole e facili da leggere.
- Il Collo di Bottiglia: L'unico caso in cui le cose si sono bloccate è stato quando Pomona si è fatta un po' troppo entusiasta e ha cercato di sistemare la stessa cosa due volte prima che un umano potesse controllare la prima. Il team ha risolto il problema istruendo Pomona a controllare se una riparazione fosse già in corso.
5. Perché questo è importante
Il documento conclude che, sebbene l'IA sia ottima nel scrivere codice grande e complesso, attualmente è migliore nell'essere un assistente utile per compiti piccoli e noiosi.
- Fiducia: Gli ingegneri sono scettici riguardo all'IA che compie grandi cambiamenti, ma si fidano di essa per piccole riparazioni ovvie.
- Focus: Lasciando che il robot gestisca la "raccolta dei rifiuti" (codice morto, vecchie note), gli umani possono concentrarsi sulla creazione di nuove funzionalità.
- Controllo: Il sistema funziona perché l'umano ha sempre l'ultima parola.
In breve, Pomona è uno strumento che aiuta i team a mantenere il loro codice pulito e sano effettuando piccoli miglioramenti automatizzati e facilmente approvabili, invece di aspettare che un umano trovi il tempo per farlo manualmente.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.