L’agentic coding puo aumentare la produttività individuale dei developer, ma la delivery software migliora davvero solo quando migliori anche deployment, attese, approvazioni e colli di bottiglia dell’intero flusso.
Siamo proprio sicuri che l’agentic coding acceleri davvero la produzione di software?
Da amante dei processi, e soprattutto quelli relativi al funzionamento di una intera software factory, sono sempre stato affascinato da tutto ciò che potesse migliorare la delivery software. Ottenere di più nello stesso tempo oppure lo stesso risultato ma con meno fatica o più qualità.
Come avevo già scritto parlando di produttività dei developer e di AI e TDD, migliorare l’efficacia del singolo è utile, ma non coincide automaticamente con il miglioramento del sistema.
Produttività individuale vs throughput del sistema
In un processo, il throughput è la quantità di lavoro che riesce a completare in un certo periodo di tempo e la sua quantità è esattamente uguale a quella della parte del processo più lenta.
Ipotizziamo una situazione dove la capacità produttiva sia di questo tipo:
| Fase | Throughput (unità / settimana) |
|---|---|
| Analisi | 10 |
| Sviluppo | 5 |
| Review | 8 |
| Deployment | 1 |
In questo caso, il throughput complessivo del processo è di 1 unità a settimana, perché è la fase di deployment quella più lenta. Se miglioriamo la fase di sviluppo portandola a 10 unità a settimana, il throughput complessivo rimane comunque di 1 unità a settimana, perché la fase di deployment è ancora il collo di bottiglia. Anzi, a livello sistemico, abbiamo peggiorato la situazione. Ora abbiamo lavoro dopo la fase di sviluppo che si accumula, creando code e aumentando i tempi di attesa per le fasi successive.
È lo stesso principio che sta dietro a concetti come il deployment lead time e il flusso del valore, che avevo approfondito anche ne La prima via di DevOps.
Dove l’agentic coding aiuta davvero
Ed è proprio qui che vorrei fare il punto sulla produttività generale dell’agentic coding. È verissimo e ormai dimostrato che migliora la produttività individuale del singolo developer, ma se non si interviene anche sulle fasi successive, il processo complessivo non migliora e anzi potrebbe addirittura peggiorare!
Ad esempio, se continuiamo a fare 1 deployment ogni tre settimane, la rischiosità di ogni singolo deployment aumenta, perché si accumulano più cambiamenti da rilasciare insieme, aumentando la probabilità di introdurre bug o problemi di performance e rendendo più difficile capire cosa è cambiato in caso di problemi. Per questo insisto spesso sull’importanza di standardizzare il ciclo di deployment.
Il vero problema sono le attese nel flusso
Nei team con cui lavoro noto che la maggior parte del tempo i work-item rimangono in attesa nelle varie fasi del processo. Un requisito da chiarire con qualcuno che non è disponibile o difficile da reperire, un test che è in attesa di dati da una terza parte esterna, una release che aspetta l’approvazione di un cliente e così via. E questo è un problema che non si risolve con l’agentic coding.
Nei processi “un sistema ottimo non è un sistema di ottimi”: guardare solo alla produttività individuale senza considerare l’intero processo è un errore comune. Se miglioriamo solo una parte del processo, rischiamo di creare sovraccarichi in altre fasi, peggiorando la situazione complessiva. È un tema molto vicino anche a ciò che in Kanban viene descritto come bilanciamento tra domanda e velocità e gestione del collo di bottiglia.
Come migliorare davvero la delivery software
Riassumendo… l’agentic coding è fantastico ma non è una bacchetta magica per migliorare la delivery software complessiva di una Software Factory. Per ottenere miglioramenti significativi, è necessario intervenire su tutte le fasi del processo, identificando e risolvendo i colli di bottiglia, migliorando la comunicazione tra i team e ottimizzando l’intero flusso di lavoro. Solo così potremo davvero accelerare la produzione di software in modo sostenibile e di qualità.
Se non sai da dove partire beh… ho scritto un libro al riguardo! Il Metodo Software Factory: così puoi davvero sfruttare l’accelerazione dell’agentic coding all’interno di una visione completa della tua software factory.