To code, or not to code: questo è il dilemma.

Negli ultimi anni si parla continuamente di AI che scrive codice, sviluppatori che diventano “Prompt Engineers” e applicazioni costruite in poche ore semplicemente descrivendo quello che vogliamo ottenere.

Ed è tutto vero, almeno in parte. L’AI oggi è un aiuto concreto e, se utilizzata bene, può velocizzare enormemente lo sviluppo. Il problema secondo me nasce quando smettiamo di considerarla uno strumento e iniziamo a delegarle completamente quello che stiamo costruendo.

Scrivere codice non significa solamente ottenere qualcosa che funziona. Significa capire perché funziona, cosa succede quando qualcosa va storto, come vengono gestiti i dati, quali dipendenze abbiamo introdotto e soprattutto quali rischi di sicurezza ci sono dietro. Se un’AI genera centinaia o migliaia di righe di codice che nessuno nel team comprende realmente, abbiamo davvero sviluppato un’applicazione oppure abbiamo semplicemente ottenuto un risultato che, almeno per il momento, sembra funzionare?

Non penso assolutamente che sia sbagliato utilizzare l’AI per creare un MVP o trasformare velocemente un’idea in qualcosa di concreto. Anzi, probabilmente è uno degli utilizzi migliori che possiamo farne. Ma dovrebbe esserci sempre cognizione di causa. Bisogna continuare a leggere il codice, capire l’architettura, controllare autenticazione, permessi, database, API e gestione degli errori. L’AI può proporre una soluzione, ma la responsabilità di decidere se quella soluzione sia corretta dovrebbe rimanere nostra.

Lo stesso discorso vale per no-code e low-code. Oggi abbiamo strumenti incredibili che permettono di costruire applicazioni senza reinventare ogni volta autenticazione, database, UI o infrastruttura. E personalmente non vedo questo come qualcosa di negativo. Se una piattaforma risolve bene un problema già risolto migliaia di volte, perché dovrei necessariamente riscrivere tutto da zero? Il punto non è “codice contro no-code” o “sviluppatori contro AI”. Il punto è sapere cosa succede sotto quello che stiamo utilizzando e conoscere abbastanza il sistema da poter intervenire quando qualcosa non funziona.

C’è poi una domanda che secondo me vale la pena farsi: cosa succederebbe domani se quello strumento AI non fosse disponibile? Quanto tempo impiegheremmo a capire un progetto composto da codice che non abbiamo realmente scritto? E soprattutto, saremmo capaci di correggerlo senza chiedere nuovamente all’AI di correggere il codice che l’AI stessa ha generato?

Per me il futuro dello sviluppo non sarà certamente quello di ignorare l’AI. Sarebbe assurdo. Sarà invece imparare ad utilizzarla mantenendo il controllo. Farsi aiutare a scrivere codice è una cosa. Non sapere cosa quel codice stia facendo è qualcosa di completamente diverso. La velocità è importante, ma nel software la capacità di capire quello che abbiamo costruito lo è ancora di più.

Alessio

Technology consultant, software builder and problem solver, sharing practical thoughts on tech, operations and digital products.