← Back to blog

La falsa velocitat dels Coding Agents

English Español Català

El món dels Coding Agents ens ha donat una eina tremendament potent.

A tots els que paguem una subscripció a alguna d’aquestes plataformes se’ns ofereix una promesa molt atractiva: desenvolupar més ràpid, resoldre tasques complexes en menys temps i recolzar-nos en un assistent que sembla capaç de produir codi a un ritme impossible per a una persona.

Però aquí és on crec que comença el problema.

Aquesta sensació de velocitat ens pot portar a donar per fet que allò que ens retorna un agent d’IA s’equipara automàticament al que faria un desenvolupador sènior amb anys d’experiència.

I, sincerament, crec que això queda força lluny de la realitat.


Quantes vegades us ha passat...?

L'altre dia vaig fer uns canvis en un dels meus side projects.

Li demanava que fes certs canvis en un dels mòduls que ja tenia coberts amb tests unitaris i amb tots els seus edge cases definits.

Doncs bé, els tests van començar a fallar i, quan li demanava que solucionés els tests, el que feia era modificar la implementació perquè, sense tocar els tests, aquests passessin en verd...

Aquest tipus de problemes són els que reforcen la meva idea que cal invertir una mica de temps a confeccionar un flux robust perquè aquests casos no es produeixin.


Generar codi ràpidament no és el mateix que desenvolupar software

Un Coding Agent pot generar codi molt ràpidament.

Pot proposar solucions.
Pot llegir part del nostre context.
Pot ajudar-nos a explorar alternatives.
Fins i tot pot executar tasques completes si li donem les eines adequades.

Però això no vol dir que entengui el producte com l’entén una persona.

No vol dir que conegui tots els compromisos tècnics del projecte.
No vol dir que tingui criteri arquitectònic real.
No vol dir que sàpiga quan una solució és mantenible a llarg termini.
I, evidentment, no vol dir que puguem deixar de pensar.


La IA necessita que no siguem mandrosos

Després d’utilitzar aquest tipus d’agents durant força temps, la meva sensació és que la IA necessita que no siguem mandrosos.

Necessita context.
Necessita restriccions.
Necessita bons prompts.
Necessita exemples.
Necessita límits.
Necessita que sapiguem exactament què volem aconseguir.

Demanar a un agent que “implementi una feature” sense més context és molt semblant a entrar en una biblioteca i demanar:

Vull un llibre interessant.

Potser et recomana alguna cosa útil.
Potser l’encerta parcialment.
Però també pot ser que la resposta no tingui res a veure amb el que realment necessitaves.

En canvi, si demanes:

Vull un llibre de ciència-ficció, basat en galàxies i naus espacials, en castellà, i que no hagi llegit abans tenint en compte aquesta llista de llibres llegits.

Les possibilitats d’obtenir una bona recomanació augmenten molt.

Amb els Coding Agents passa una cosa molt semblant.


Com millor defineixes el problema, millor et pot ajudar la IA

Com millor defineixes el problema, més opcions tens d’obtenir una resposta útil.

Però això implica feina.

Implica criteri.
Implica conèixer el teu projecte.
Implica saber quines restriccions són importants.
Implica entendre quines parts del resultat pots acceptar i quines hauries de qüestionar.

I aquí és on crec que estem començant a confondre velocitat amb productivitat.

Que una cosa es generi ràpidament no vol dir que estigui bé.
Que una cosa compili no vol dir que sigui correcta.
Que una cosa passi alguns tests no vol dir que sigui mantenible.
Que una solució sembli elegant no vol dir que encaixi amb l’arquitectura del teu producte.


La velocitat també pot amagar costos

La IA pot accelerar moltes parts del desenvolupament, però també pot traslladar el cost a altres fases:

  • Revisió.
  • Debugging.
  • Testing.
  • Refactorització.
  • Deute tècnic.
  • Reescriptura completa.

Per això crec que la conversa no hauria de ser simplement:

Quin agent d’IA fas servir?

Sinó més aviat:

Com estàs treballant amb aquest agent?
Quin context li dones?
Quines restriccions té?
Quines eines pot utilitzar?
Com valides el que genera?
On entra el criteri humà?
Quines parts del procés no estàs disposat a delegar?


Fer servir IA no és el mateix que fer enginyeria amb IA

Per a mi, aquesta és la diferència entre utilitzar la IA com una màquina d’escopir codi i utilitzar-la com una eina real d’enginyeria.

Un agent d’IA pot ser una ajuda brutal, però només si l’envoltem d’un bon sistema de treball:

  • Bones especificacions.
  • Bon context.
  • Restriccions clares.
  • Validacions automàtiques.
  • Tests.
  • Revisió humana.
  • Criteri tècnic.
  • Límits ben definits.

I aquí és on comença a tenir sentit parlar de Harness Engineering.


Conclusió

La pregunta important no és si fem servir o no Coding Agents.

La pregunta important és:

Estem utilitzant aquests agents per pensar millor, o per deixar de pensar?

Perquè si només busquem velocitat, probablement acabarem generant més codi.

Però no necessàriament millor software.