ebEnrico Betti

Sviluppo software assistito dall'IA

Mantenere la memoria di progetto

Usare ORGANIZER.md come base di conoscenza esplicita e versionata per lo sviluppo software assistito dall'intelligenza artificiale.

Da diversi mesi uso assistenti basati sull'intelligenza artificiale, come ChatGPT e Codex, per lo sviluppo software. Sono diventati strumenti estremamente preziosi, ma ho notato anche un limite ricorrente.

Una nuova sessione inizia solitamente con una comprensione soltanto parziale del lavoro precedente. Anche quando il modello ha accesso ai file del progetto, spesso mancano decisioni architetturali importanti, approcci scartati e lezioni pratiche apprese nel tempo. Recuperare ogni volta queste informazioni costa tempo e attenzione.

Questa osservazione mi ha portato a sperimentare un approccio diverso.

Un organizer di progetto invece della cronologia delle conversazioni

Accanto al tradizionale file AGENTS.md, ho introdotto un file persistente chiamato ORGANIZER.md (“organizzatore del progetto”). All'inizio di ogni sessione di sviluppo, Codex legge questo file prima di iniziare il lavoro.

A differenza del registro di una conversazione, l'organizer contiene soltanto informazioni destinate a rimanere utili nel tempo:

Non intende sostituire la documentazione del progetto, né contiene la cronologia completa delle conversazioni. Agisce invece come una memoria ingegneristica compatta.

Una struttura gerarchica

L'organizer principale rimane intenzionalmente piccolo. Quando un progetto cresce, si limita a rimandare a organizer più specializzati, dedicati ai singoli componenti o sottosistemi.

In questo modo il contesto principale resta compatto, mentre le conoscenze dettagliate rimangono ordinate e facili da consultare.

Aggiornamenti controllati

L'organizer non viene aggiornato dopo ogni interazione. Le nuove annotazioni vengono aggiunte soltanto quando una sessione produce conoscenze che potranno migliorare il lavoro futuro:

Le informazioni personali e i dettagli non necessari delle conversazioni vengono esclusi intenzionalmente.

Essendo un normale file di testo, l'organizer è completamente trasparente, versionato insieme al progetto, modificabile dallo sviluppatore e facile da rivedere o riorganizzare in qualsiasi momento.

Manutenzione periodica

Un'aggiunta importante è un processo di revisione programmata. Attraverso un'attività cron periodica, Codex riesamina l'organizer e valuta se le annotazioni esistenti siano ancora coerenti con lo stato corrente del progetto.

La revisione non modifica mai automaticamente le decisioni architetturali. Individua invece le voci che sembrano obsolete, contraddette dagli sviluppi successivi o bisognose di conferma, lasciando la decisione finale interamente allo sviluppatore.

In questo modo l'organizer diventa più di una memoria persistente: diventa una memoria mantenuta.

Benefici pratici

Nel lavoro quotidiano questo approccio ha prodotto diversi vantaggi:

L'organizer evolve insieme al software, invece di limitarsi ad accumulare informazioni.

Una possibile direzione per gli strumenti di sviluppo basati sull'IA

Questa esperienza suggerisce che lo sviluppo assistito dall'intelligenza artificiale potrebbe beneficiare di un supporto ufficiale per una memoria esplicita del progetto.

Invece di affidarsi soltanto a un contesto conversazionale nascosto, gli ambienti di sviluppo potrebbero offrire strumenti dedicati a proporre nuove voci per l'organizer, revisionare gli aggiornamenti suggeriti, organizzare le conoscenze del progetto e validare periodicamente le informazioni esistenti.

Un sistema simile manterrebbe le conoscenze di lungo periodo trasparenti, versionabili e completamente sotto il controllo dello sviluppatore.

Nella mia esperienza, questo è stato uno dei miglioramenti più efficaci per mantenere continuità durante lo sviluppo software assistito dall'intelligenza artificiale.

Sorgenti e discussione

Il repository pubblico ORGANIZER.md contiene i file dimostrativi e gli esempi mantenuti. L'articolo è disponibile anche su LinkedIn per commenti e discussione.

← Torna ai progetti