• Home
  • Risorse
  • Vibe coding, generare codice non basta per sviluppare software 
Vibe coding, generare codice non basta per sviluppare software 

Il vibe coding sta modificando uno dei passaggi più consolidati dello sviluppo software: la trasformazione di un'idea in codice eseguibile.

Descrivere una funzionalità in linguaggio naturale può essere sufficiente per ottenere rapidamente componenti, interfacce o intere porzioni di un'applicazione.

L'intelligenza artificiale riduce così la distanza tra ciò che vogliamo realizzare e una prima implementazione funzionante.

Questa velocità introduce però una distinzione importante.

Generare codice e sviluppare software non sono la stessa attività.

Un'applicazione può funzionare durante un test e presentare comunque vulnerabilità, dipendenze problematiche o scelte architetturali difficili da sostenere nel tempo.

Può produrre il risultato atteso senza che chi l'ha realizzata comprenda pienamente il codice sottostante.

Il punto, quindi, non è stabilire se l'intelligenza artificiale possa scrivere codice. Lo sta già facendo.

La questione riguarda ciò che accade quando quel codice deve diventare un software affidabile.

Un nuovo livello di astrazione nello sviluppo software

Il termine vibe coding è stato introdotto nel 2025 da Andrej Karpathy, informatico ed ex ricercatore di OpenAI.

La sua formulazione descriveva un modo di programmare fortemente basato sull'interazione in linguaggio naturale con i modelli AI.

L'idea va oltre il semplice utilizzo di un assistente alla programmazione.

Nel vibe coding una parte significativa dell'implementazione viene affidata direttamente al modello.

Si descrive ciò che si vuole ottenere, si osserva il risultato e si chiedono modifiche successive.

L'interazione si sposta progressivamente dalla sintassi del linguaggio di programmazione alla descrizione dell'obiettivo.

È un cambiamento del livello di astrazione. Nel tempo, lo sviluppo software ha già attraversato trasformazioni simili.

Linguaggi di alto livello, framework e librerie hanno progressivamente nascosto parte della complessità necessaria per costruire applicazioni.

L'intelligenza artificiale compie un ulteriore passaggio.

Non astrae soltanto alcuni elementi tecnici, ma può intervenire direttamente nella produzione del codice necessario a realizzare una funzione.

Ridurre la distanza tra idea e prototipo

Il vantaggio più evidente del vibe coding riguarda la velocità con cui un'idea può assumere una forma concreta.

Un prototipo che avrebbe richiesto diverse ore di sviluppo può essere costruito attraverso una sequenza di richieste, verifiche e correzioni.

Diventa quindi più semplice sperimentare un'interfaccia, testare un flusso o valutare rapidamente una soluzione.

Per uno sviluppatore significa ridurre il tempo dedicato ad alcune attività ripetitive.

Per chi possiede competenze tecniche meno profonde significa poter esplorare idee che prima avrebbero richiesto necessariamente l'intervento di uno specialista.

Questa democratizzazione della produzione del codice rappresenta uno degli aspetti più interessanti del fenomeno.

Esiste però una differenza sostanziale tra ridurre la barriera necessaria per produrre codice e ridurre quella necessaria per produrre buon software.

La prima sta diminuendo rapidamente.

La seconda continua a richiedere competenze di progettazione, sicurezza, testing e conoscenza del contesto nel quale il sistema dovrà operare.

Un codice funzionante non è necessariamente di qualità

Il primo criterio con cui viene valutato il codice generato dall'intelligenza artificiale è spesso molto semplice: funziona oppure no?

Per un prototipo può essere sufficiente.

Quando il codice entra in produzione, il criterio cambia.

Un'applicazione apparentemente funzionante può utilizzare dipendenze vulnerabili, gestire male gli input o implementare controlli di autenticazione insufficienti.

Può contenere duplicazioni, eccezioni non gestite o logiche difficili da modificare.

Il problema non deriva necessariamente dalla scarsa qualità dei modelli. Deriva dalla natura stessa della generazione.

Un modello produce una soluzione sulla base del contesto disponibile.

Non possiede automaticamente la conoscenza completa dell'architettura, dei requisiti di sicurezza e delle dipendenze presenti nel sistema.

Nel vibe coding questa condizione introduce un ulteriore elemento.

La quantità di codice prodotta può crescere più rapidamente della capacità umana di comprenderla.

Il software continua a funzionare, ma aumenta progressivamente la distanza tra chi lo utilizza e ciò che realmente accade al suo interno.

Il debito tecnico può nascere più velocemente

La velocità di generazione non riguarda soltanto il codice utile. Può riguardare anche il debito tecnico.

Allo stato attuale, i modelli AI tendono spesso a risolvere problemi circoscritti intervenendo localmente sul codice con dei patchwork, senza considerare pienamente l'architettura nel suo insieme.

Correzioni successive, workaround e modifiche puntuali possono così accumularsi fino ad alterare progressivamente la struttura originaria del software.

Questo fenomeno viene definito architectural drift: il sistema continua a funzionare, ma si allontana gradualmente dall'architettura progettata, aumentando complessità, debito tecnico e difficoltà di manutenzione.

Si crea così un paradosso: il tempo necessario per produrre software diminuisce, mentre quello necessario per comprenderlo e mantenerlo può aumentare.

Test, documentazione, versionamento e code review assumono quindi un significato ancora maggiore.

La velocità della generazione rende necessario rafforzare i meccanismi che consentono di verificarne il risultato.

Possiamo immaginare il vibe coding come Waze o Google Maps: una volta inserita la destinazione, il percorso viene avviato, ma se il tool si spegne prima dell'arrivo, non abbiamo idea di dove ci troviamo.

Dalla generazione alla responsabilità sul codice

L'intelligenza artificiale può produrre una funzione in pochi secondi.

Non può però assumersi la responsabilità delle conseguenze derivanti dalla sua esecuzione.

Quella responsabilità rimane umana.

Un modello non decide quale livello di rischio sia accettabile per un'azienda.

Non stabilisce autonomamente quali requisiti normativi debbano essere rispettati o quali informazioni possano essere elaborate.

Può suggerire una soluzione tecnicamente plausibile senza conoscere completamente il sistema nel quale quella soluzione verrà inserita.

Per questo motivo l'introduzione dell'AI nello sviluppo non riduce necessariamente il valore delle competenze tecniche.

Ne modifica piuttosto la distribuzione all'interno del processo.

Una parte del lavoro si sposta dalla produzione manuale alla capacità di progettare, verificare, integrare e correggere ciò che viene generato.

Saper chiedere all'AI di produrre codice diventa una competenza.

Saper valutare quel codice rimane una responsabilità professionale.

Vibe coding e software engineering non sono la stessa cosa

La distinzione diventa ancora più evidente quando il prototipo deve trasformarsi in un sistema destinato alla produzione.

Il codice rappresenta soltanto una componente del software.

Attorno esistono architettura, gestione dei dati, sicurezza, testing, performance, osservabilità, integrazioni e processi di deployment.

Esiste soprattutto la necessità di far evolvere il sistema senza comprometterne stabilità e comprensibilità.

Il vibe coding interviene con grande efficacia sulla velocità con cui alcune parti possono essere realizzate.

Non elimina il lavoro necessario per trasformarle in un sistema affidabile.

Questa distinzione permette di osservare il fenomeno senza contrapporre intelligenza artificiale e sviluppatori.

L'AI modifica il processo di sviluppo proprio come altre astrazioni tecnologiche hanno fatto in passato.

La differenza riguarda la profondità dell'intervento e la rapidità con cui sta avvenendo.

La competenza si sposta progressivamente dal semplice scrivere codice al comprenderne struttura, comportamento e conseguenze.

L'AI nel processo di sviluppo di Devhive

È all'interno di questa evoluzione che Devhive, la business unit dedicata allo sviluppo software di BearIT, osserva e integra le possibilità offerte dall'intelligenza artificiale nello sviluppo software.

L'AI può accelerare prototipazione, generazione di componenti e alcune attività operative.

Il codice prodotto deve però attraversare gli stessi criteri di valutazione applicati al software sviluppato attraverso metodologie tradizionali.

Architettura, code review, testing, sicurezza e manutenibilità non diventano meno rilevanti perché una parte del codice è stata generata automaticamente.

Al contrario, la maggiore velocità di produzione rende ancora più importante mantenerne il controllo.

Il valore di questo approccio non si misura allora nella quantità di codice che permette di generare.

Si misura nella capacità di integrare quella velocità all'interno di un processo di sviluppo controllato, comprensibile e progettato per evolvere.