Metodologia di Sviluppo AI-Native
AI e Sviluppatore
La prospettiva dello sviluppatore sull'AI è complessa. Se da un lato l'AI ha consentito un aumento senza precedenti della produttività e dell'acquisizione di informazioni, dall'altro il ruolo dello sviluppatore sta subendo una trasformazione fondamentale. Alcuni prevedono che l'AI, evolvendosi in AGI, sostituirà la maggior parte degli sviluppatori, mentre altri la denigrano come uno strumento sopravvalutato, sostenendo che il valore intrinseco dello sviluppatore rimane invariato. Sebbene queste posizioni appaiano diametralmente opposte, sono sorprendentemente simili nel loro giudicare l'AI attraverso il prisma di un pensiero preesistente.
Tuttavia, il punto cruciale non è giudicare o valutare l'AI. La vera essenza risiede nel come deve evolvere la mentalità di sviluppo basata sull'AI e come i ruoli dello sviluppatore e dell'organizzazione debbano essere riconfigurati in risposta a tale cambiamento. A tal fine, abbiamo organizzato la metodologia di sviluppo AI attraverso l'analisi in 3 fasi riportata di seguito.
Sviluppo Dipendente dall'AI
Lo sviluppo dipendente dall'AI è la fase in cui l'AI è considerata l'agente di giudizio e i suoi risultati vengono accettati in modo acritico. In questa fase, lo sviluppatore percepisce l'AI come un'entità che organizza e implementa le proprie idee, e la accetta ulteriormente come un sostituto a cui delegare il giudizio e la responsabilità.
Questo approccio sembra aumentare la produttività in modo esplosivo in superficie. Tuttavia, in realtà, si accumula rapidamente codice inspiegabile e non responsabile. Quando sorgono problemi con il codice così generato, nessuno può prendere una decisione sicura sul perché la struttura sia così o quale scelta sia quella giusta.
In questa fase, l'AI produce solo risultati inaffidabili e lo sviluppatore si limita al ruolo di consumatore di tali risultati. Di conseguenza, sia l'AI che lo sviluppatore vengono utilizzati in modo dispendioso, e nessuna competenza effettiva viene accumulata.
Sviluppo che Utilizza l'AI
Lo sviluppo che utilizza l'AI è una fase che si osserva in sviluppatori più esperti. In questa fase, lo sviluppatore riconosce l'AI non come un sostituto del giudizio, ma come un potente strumento che aumenta la produttività. Lo sviluppatore in questa fase rimane l'agente del design e del giudizio finale, delegando all'AI compiti ripetitivi e costosi come la generazione di codice, il refactoring, il Debugging e la sintesi di documenti. Questo approccio riduce significativamente la proporzione di lavoro ripetitivo dello sviluppatore e può aumentare drasticamente la produttività mantenendo la fiducia.
Tuttavia, questo approccio presenta un limite strutturale in quanto il contesto di progettazione e il giudizio non sono ciclici. Poiché la direzione dello sviluppo e il processo di giudizio rimangono confinati al pensiero personale dello sviluppatore e non sono condivisi con l'AI, l'AI non accumula i cambiamenti e la crescita dello sviluppatore. Di conseguenza, il contesto di progettazione e la capacità di giudizio sono isolati nello sviluppatore.
Ciò impedisce la formazione di un ciclo di apprendimento tra sviluppatore e AI, e la capacità di utilizzare l'AI non si estende oltre le competenze esistenti dello sviluppatore. La crescita è attribuita all'individuo e, con il tempo, il divario di competenze tra gli sviluppatori si allarga. Inoltre, tali competenze rivelano un limite in quanto sono difficili da accumulare o riprodurre a livello organizzativo.
Sviluppo AI-Nativo
Lo sviluppo AI-Nativo va oltre la fase di affidarsi all'AI o di usarla come strumento, significando una struttura in cui l'AI è incorporata nel processo di sviluppo e di giudizio, e in cui l'AI e l'uomo interagiscono e crescono reciprocamente. In questa fase, l'AI funziona come un membro che interagisce, condividendo il giudizio e il contesto dello sviluppatore.
Il fulcro di questa struttura è che l'AI e lo sviluppatore operano in un ciclo bidirezionale, non unidirezionale. Lo sviluppatore condivide continuamente con l'AI le intenzioni di progettazione e le basi del giudizio, e l'AI, attraverso questo, accumula il pensiero dello sviluppatore e il contesto dell'organizzazione. Di conseguenza, l'AI si evolve da semplice strumento per l'elaborazione delle richieste a un'entità che propone opzioni personalizzate per l'organizzazione e che assiste e corregge il giudizio dello sviluppatore.
Lo sviluppo AI-Nativo non dipende dalla competenza o dall'abilità di un singolo individuo. Se il contesto dell'AI viene mantenuto anche se i membri cambiano, è possibile porre domande da una prospettiva simile su un problema identico e prendere decisioni migliori basandosi sulle scelte passate e sulle loro motivazioni. La competenza di sviluppo non è attribuita all'individuo, ma diventa accumulabile e riproducibile per l'intera organizzazione.
In definitiva, lo sviluppo AI-Nativo non mira a un'architettura o a una metodologia di sviluppo specifica, ma al processo di sviluppo stesso, in cui il giudizio e l'apprendimento dell'AI e dell'uomo vengono continuamente potenziati. In questa struttura, sviluppatore e AI non si sostituiscono a vicenda. Invece, condividono lo stesso spazio problematico, evolvendo in una relazione che crea insieme giudizi migliori e strutture più robuste.