Durant anys hem repetit una idea gairebé com un mantra: la IA ajudarà els programadors a ser més productius. Primer van arribar els autocompletadors intel·ligents que suggerien fragments de codi. Després els assistents capaços de generar funcions senceres a partir d’un comentari. I finalment els xats d’IA que poden escriure scripts, refactoritzar aplicacions o explicar errors de compilació millor que molts fòrums tècnics o stackoverflows.
Però el que està començant a aparèixer ara és una cosa diferent. No és simplement una eina que escriu codi quan li ho demanes, sinó sistemes que poden desenvolupar software de manera gairebé autònoma. Agents que reben una descripció del problema, planifiquen una arquitectura, generen fitxers, executen proves, detecten errors i tornen a iterar sobre el resultat.
És un canvi subtil en la forma, però profund en les conseqüències. Fins ara, la intel·ligència artificial era un assistent dins del procés de desenvolupament. A partir d’ara comença a convertir-se en un actor més dins del procés. I això, inevitablement, ens obliga a fer-nos una pregunta incòmoda però fascinant: si els agents poden programar, què queda per als programadors humans?
Del copilot al desenvolupador artificial
Durant els últims anys la eina dominant ha estat la del copilot. La IA com a copilota que t’acompanya mentre programes. Tu segueixes pilotant l’avió, tu decideixes cap a on anar i com arribar-hi, i la IA simplement et dona suggeriments, t’ajuda amb parts repetitives o et recorda la part de la sintaxi que potser ja no tens tan fresca.
Aquest model ha funcionat força bé. Les eines d’assistència de codi han demostrat que una bona part del temps que un desenvolupador dedica a programar no és creatiu ni conceptual, sinó mecànic. Escriure estructures repetitives, adaptar fragments, traduir idees a sintaxi… Temps no gaire productiu, i la IA ha accelerat molt aquest procés.
Però els sistemes que estan apareixent ara ja no juguen exactament en aquesta lliga. No es limiten a completar línies de codi ni a generar funcions. Assumeixen el paper d’un desenvolupador sencer. Un agent pot rebre una instrucció com ara: “Construeix una API per gestionar reserves d’hotel amb autenticació, base de dades i tests automatitzats”, i a partir d’aquí començar a treballar de manera sorprenentment semblant a com ho faria un equip tècnic:
Analitza el problema, proposa una arquitectura, genera els primers fitxers, executa proves, detecta errors, corregeix el codi… Sense intervenció humana directa.
I aquí és on, personalment, crec que es produeix el veritable canvi de paradigma: la programació deixa de ser una activitat que fem nosaltres amb ajuda de la IA i comença a ser una activitat que la IA executa sota la nostra supervisió.
El desenvolupament com a sistema d’agents
Una de les idees més interessants que està emergint és la del desenvolupament de software com a sistema multiagent.
En lloc d’un únic model generant codi, es creen diversos agents amb rols diferents. Un agent que actua com a arquitecte i defineix l’estructura del sistema. Un altre que escriu el codi. Un tercer que genera proves automàtiques. Un quart que revisa vulnerabilitats o problemes de seguretat.
Quan ho mires amb una mica de perspectiva, és difícil no somriure: el sistema s’assembla molt a un equip de desenvolupament real, un pensa l’arquitectura, l’altre l’implementa, també hi ha qui ho prova i ho revisa, només que en aquest cas tots aquests rols poden estar interpretats per agents d’IA que treballen en paral·lel.
Això transforma la programació en una cosa més semblant a dirigir un procés que no pas executar-lo manualment, i sincerament, crec que és aquí on molts desenvolupadors encara no han acabat de processar el que està passant.
El precedent que ja hem viscut
Ara bé, també convé posar una mica de perspectiva històrica. No seria la primera vegada que una nova capa tecnològica redueix la quantitat de codi que cal escriure manualment.
Fa dècades, els programadors escrivien gairebé tot el software des de zero. Després van aparèixer les llibreries, els frameworks, els generadors de codi, els sistemes low-code i les plataformes cloud. Cada una d’aquestes innovacions va provocar el mateix debat: ara sí que els programadors desapareixeran.
I el que va passar, curiosament, va ser el contrari. Cada vegada que la productivitat augmentava, el món acabava construint més software. Aplicacions que abans eren massa cares o massa complexes passaven a ser viables. El resultat ha estat una demanda creixent de desenvolupadors durant dècades.
Per això, personalment, sóc bastant escèptic quan sento prediccions apocalíptiques sobre la desaparició dels programadors.La història de la tecnologia ens diu que les millores de productivitat rarament eliminen una professió; més aviat transformen el tipus de feina que es fa dins d’aquesta professió.
El veritable coll d’ampolla del software
El problema del software mai ha estat escriure codi, el difícil és entendre què s’ha de construir, definir requisits, entendre el negoci, dissenyar arquitectura, garantir que el sistema serà mantenible durant anys, integrar-lo amb altres sistemes…
El codi és només una capa visible d’un problema molt més complex.
Els agents d’IA poden accelerar molt la generació de software, però això no elimina la complexitat del sistema en què aquest software viu. Un programa pot funcionar perfectament en un entorn de proves i ser un desastre en producció. Pot complir tots els requisits tècnics i, alhora, no servir per res al negoci. Pot ser elegant des del punt de vista del codi i, al mateix temps, impossible de mantenir.
Aquest tipus de decisions continuen requerint context, experiència i criteri humà.
El desenvolupador del futur
Si els agents continuen evolucionant al ritme actual, és molt probable que el rol del desenvolupador canviï de manera significativa.
Estaran menys temps escrivint codi manualment però més temps definint sistemes, arquitectures, fent més revisió, més supervisió de processos automàtics.
En altres paraules, el desenvolupador podria evolucionar cap a una figura més semblant a la d’un arquitecte o director tècnic, encara que treballi en projectes relativament petits.
Els agents serien els executors i els humans, els responsables del disseny i del criteri.
El risc que no hauríem d’ignorar
Dit això, també crec que seria un error caure en un optimisme ingenu.
El software generat per IA pot semblar correcte i, tanmateix, contenir errors subtils, dependències problemàtiques o vulnerabilitats de seguretat. I com més automàtic sigui el procés de generació, més fàcil és que aquests problemes passin desapercebuts.
Hi ha també un risc cultural que em preocupa bastant: la pèrdua de comprensió profunda dels sistemes, si els desenvolupadors deleguen massa en els agents, podríem acabar treballant amb software que ningú entén completament, i això, en informàtica, acostuma a ser una recepta per al desastre.
Una nova capa d’abstracció
Si haguéssim de resumir el moment actual en una sola idea, diria que els agents representen una nova capa d’abstracció en la història del software.
Igual que els llenguatges d’alt nivell van substituir l’assemblador, i els frameworks van substituir gran part del codi manual, els agents poden substituir moltes tasques de programació.
Però cada capa nova també crea nous problemes, noves especialitzacions i noves professions.
No m’estranyaria gens que en pocs anys apareguin rols com ara arquitecte d’agents, supervisor de sistemes autònoms de desenvolupament o dissenyador de fluxos de programació automatitzada.
Serà un món diferent, però també, sospito, un món amb encara més software del que tenim avui.
La pregunta que queda oberta
La història de la tecnologia ens ensenya una cosa molt curiosa: quan una tasca es torna més fàcil, el que acostuma a passar no és que es deixi de fer, sinó que es fa molt més sovint.
Si crear software es torna deu vegades més ràpid, el més probable és que acabem construint deu vegades més software.
La qüestió, per tant, no és si la intel·ligència artificial escriurà codi, això ja està passant, sinó, quan construir software sigui gairebé trivial… Què decidirem construir?