E086_Cinco tácticas de ingeniería de software de Matt Pocock para domar a la IA
Ep. 86

E086_Cinco tácticas de ingeniería de software de Matt Pocock para domar a la IA

Episode description

Descripción del Episodio

Exploramos cómo “domar” a la inteligencia artificial (IA) para convertirla en una herramienta efectiva en el desarrollo de software. Se presentan cinco tácticas clave para trabajar con la IA de manera eficiente, incluyendo el uso de comandos específicos para guiarla y evitar su “amnesia” y comportamientos ilógicos. También se discute la importancia de estructurar el trabajo de manera que la IA pueda procesar la información de manera efectiva, sin caer en la “zona tonta” donde su capacidad de razonamiento se ve limitada. Además, se aborda la necesidad de un enfoque de diseño compartido y la utilización de técnicas como el desarrollo guiado por pruebas (TDD) para asegurar la calidad y la robustez del código generado.

Download transcript (.srt)
0:10

Buenas, esto es BIMPRAXIS, el podcast donde el

0:15

BIM se encuentra con la inteligencia artificial.

0:20

Exploramos la ciencia, la tecnología y el futuro

0:23

desde el enfoque de la arquitectura, ingeniería y

0:26

construcción.

0:28

¡Empezamos!

0:37

Muy buenas.

0:38

Bienvenidas, bienvenidos a un nuevo episodio de BIMPRAXIS.

0:41

Hoy os traemos cómo domar a la IA,

0:43

cinco tácticas para convertir a tu agente en

0:45

un ingeniero de élite.

0:47

Hola a todos.

0:48

Qué ganas tenía de meterme en este tema.

0:49

Y tanto.

0:50

A ver, para arrancar este análisis a fondo,

0:53

imaginemos la siguiente escena por un momento.

0:55

Tienes a tu absoluta disposición un ejército infinito

0:58

de ingenieros de software.

0:59

O sea, el sueño de cualquier empresa.

1:01

Totalmente.

1:03

Son rápidos, trabajan de madrugada sin inmutarse y

1:05

encima jamás te van a pedir un aumento

1:07

de sueldo.

1:08

Suena al paraíso de cualquier desarrollador, desde luego.

1:11

Ya, pero hay una trampa monumental en todo

1:13

esto.

1:14

Estos trabajadores incansables resulta que tienen la memoria

1:17

de un pez.

1:17

Literalmente.

1:19

Y claro, si les das demasiada información de

1:21

golpe, se saturan y comienzan a sabotear tu

1:24

propio proyecto con decisiones que son completamente ilógicas.

1:27

Y fíjate, esa paradoja, la de tener un

1:29

trabajador brillante pero amnésico, es la barrera invisible

1:33

contra la que está chocando gran parte de

1:35

la industria tecnológica ahora mismo.

1:37

Claro, cuando intentamos desarrollar software asistido.

1:40

Eso es.

1:41

Por eso, hoy la misión de esta exploración

1:43

es desgranar el sistema que ha ideado Madpokok.

1:46

Que es un ingeniero que lleva ya una

1:48

década en este sector, ¿verdad?

1:49

Y tras lidiar con esto a diario, ha

1:52

estructurado unos flujos de trabajo muy estrictos, lo

1:56

que él llama skills, para guiar a la

1:58

inteligencia artificial.

1:59

O sea, no es solo aprenderse cuatro comandos

2:01

de teclado de memoria.

2:02

Qué va, qué va.

2:03

Es un cambio de mentalidad radical.

2:06

Tienes que entender por qué debes tratar a

2:08

la máquina casi como a un humano, pero

2:10

con unas restricciones cognitivas asombrosamente frágiles.

2:14

Vale, pues para entender esas restricciones de las

2:16

que hablas creo que tenemos que meternos un

2:18

poco en la psicología del modelo.

2:20

Sí, es que podemos llamarla así, claro.

2:22

Ya, bueno, tú me entiendes.

2:24

El caso es que dejar a estos agentes

2:25

sueltos a su libre albedrío es un desastre

2:28

asegurado.

2:29

Las fuentes mencionan un par de conceptos súper

2:31

curiosos, el síndrome de memento y la zona

2:34

tonta.

2:35

Sí, lo de la zona tonta es brutal.

2:37

Es un concepto de Dex High, un investigador

2:40

de la empresa Human Layer.

2:42

él divide el estado de la IA en

2:43

la zona inteligente y la zona tonta.

2:45

Vale, ¿y cómo pasas de una a otra?

2:48

Pues a ver, al iniciar una sesión nueva,

2:50

el contexto está limpísimo, no hay ruido.

2:53

Ahí el modelo te da su mejor razonamiento

2:55

lógico.

2:55

O sea, está fresco y opera en la

2:57

zona inteligente.

2:58

Eso es.

2:59

Pero claro, a medida que le vas metiendo

3:01

tokens, ya sea código, texto, documentos, lo que

3:05

sea, el declive empieza.

3:06

Porque las relaciones de atención matemática que calcula

3:09

la IA no escalan de forma lineal, ¿no?

3:12

Exacto.

3:12

Escalan de forma cuadrática.

3:14

O sea que el peso de lo que

3:15

le dices se multiplica.

3:17

A ver, leyendo las fuentes, esto me sonaba

3:19

muchísimo añadir equipos a una liga de fútbol.

3:22

Cuéntame.

3:23

Pues a ver, si una liga tiene 10

3:24

equipos, el calendario de partidos que tienes que

3:26

organizar es manejable.

3:28

Claro.

3:28

Pero si metes un equipo nuevo, no es

3:30

que añadas un partido más.

3:32

Es que ese equipo tiene que jugar contra

3:34

todos los otros 10.

3:36

Las relaciones se disparan por completo.

3:38

Tal cual.

3:39

Fíjate que cada palabra nueva obliga a la

3:41

red neuronal a recalcular su relación matemática con

3:45

absolutamente todo lo que le has escrito antes.

3:47

Madre mía.

3:48

Y llega un punto en que el cálculo

3:50

de probabilidades se vuelve un laberinto.

3:53

Históricamente, este límite de colapso está sobre el

3:56

40% del contexto, que vienen a ser unos

3:59

100.000 tokens.

4:01

Y ahí es cuando cruzas a la zona

4:02

tonta.

4:03

De lleno.

4:04

Y lo peor es que la IA no

4:06

se apaga, ni te da un error de

4:07

sistema rojo parpadeante.

4:09

Simplemente se vuelve torpe en silencio.

4:12

Eso es.

4:12

Empieza a olvidar lo que le dijiste al

4:14

principio, se inventa librerías que no existen y

4:17

te revienta la arquitectura entera.

4:19

Tela.

4:20

Y aquí es donde entra lo de la

4:21

película Memento, ¿no?

4:23

Claro.

4:23

Como el protagonista no tiene memoria a corto

4:26

plazo, la única forma de sacar a la

4:28

IA de la zona tonta es borrarle el

4:30

historial.

4:30

Pero al limpiarlo la dejas en un estado

4:33

amnésico otra vez.

4:34

Pierdes todo el contexto.

4:35

Pierdes todo.

4:36

Vuelve a cero.

4:37

A ver, espera, espera.

4:39

Yo aquí veo una contradicción enorme con lo

4:41

que nos vende el mercado.

4:42

Porque las tecnológicas enuncian cada dos por tres

4:44

ventanas de contexto de un millón o dos

4:46

millones de tokens.

4:48

Ya, te venden que el problema está solucionado.

4:51

Claro, te dicen que puedes volcar la enciclopedia

4:53

británica entera en el chat y que la

4:56

IA ni suda.

4:57

Pues siento decirte que es un espejismo técnico

5:00

bastante peligroso.

5:02

¿En serio?

5:03

Totalmente.

5:04

Darle un millón de tokens no significa que

5:06

su razonamiento lógico se multiplique.

5:10

Simplemente significa que te han dado una zona

5:11

tonta inmensa.

5:13

O sea, sirve para buscar cosas, pero no

5:15

para pensar.

5:16

Exacto.

5:17

Sirve para tareas de recuperación de datos.

5:20

Tú le pasas guerra y paz entero y

5:22

le pides que busque en qué página un

5:23

soldado se toma un té.

5:25

Y te lo saca al instante.

5:26

Te lo saca rápido, sí.

5:29

Pero buscar un dato inerte no requiere el

5:30

mismo esfuerzo cognitivo que programar la lógica de

5:33

una base de datos.

5:34

O sea, que el límite para el razonamiento

5:35

puro siguen siendo esos 100.000 tokens.

5:38

De ahí no pasamos por ahora.

5:40

Si le pides que evalúe medio millón de

5:42

líneas de código y tome decisiones arquitectónicas, su

5:45

lógica colapsa.

5:47

Vamos, que nos han montado el archivo más

5:48

grande del mundo, pero el pobre archivista tiene

5:51

un déficit de atención tremendo.

5:53

Mejor no lo podrías haber resumido.

5:55

Vale, pues sabiendo esto, ¿cómo empezamos un proyecto?

5:58

Porque el instinto normal es coger, escribir un

6:01

pliego de requerimientos gigantesco, dárselo a la máquina

6:04

y sentarse a tomar un café.

6:06

Pues según Pocock, hacer eso es pegarse un

6:07

tiro en el pe directamente.

6:09

¿Por qué?

6:10

Porque estás cayendo en lo que llaman vibe

6:11

coding.

6:12

Básicamente delegas todo, ignoras el código que se

6:15

genera y si la aplicación parece que funciona

6:17

por encima, pues genial.

6:19

Ya, pero las fuentes dicen que eso es

6:21

la muerte de pasar de especificaciones a código.

6:24

Exacto.

6:25

Pierdes por completo el control de tu campo

6:27

de batalla, que en el desarrollo de software

6:29

siempre es y será el código fuente.

6:31

Si no sabes cómo están los cimientos a

6:33

la mínima que algo falle, se te cae

6:34

la casa entera.

6:35

Tal cual.

6:36

Y por eso la táctica estrella de Pocock

6:38

es otra historia.

6:40

Tiene un skill en su repositorio con más

6:41

de 58,000 descargas.

6:43

¿Y cuál es?

6:44

Un comando supersimple barra grill me.

6:48

Interrógame.

6:49

Literal.

6:49

En lugar de que la IA te escupa

6:51

un plan prematuro, ¿tú le ordenas que se

6:53

ponga el sombrero de entrevistador implacable?

6:56

O sea, ¿quién epila la ironía de esto,

6:58

eh?

6:59

Nos gastamos millones en crear inteligencias artificiales para

7:02

que nos den respuestas rápidas Y la mejor

7:04

técnica es rogarle que nos fría a preguntas.

7:08

Es un baño de humildad tremendo.

7:10

Es que debe ser agotador de verdad, como

7:12

tener al típico jefe de proyecto fiscalizando cada

7:15

coma que quieres poner.

7:16

Ya, pero es que obliga a la máquina

7:18

a desconfiar de tu idea inicial.

7:20

Y el objetivo aquí es llegar a lo

7:22

que Frederick P.

7:23

Brooks llama un concepto de diseño compartido, en

7:26

su libro El diseño del diseño.

7:28

Que básicamente dice que la arquitectura de software

7:31

no es una línea recta, sino un árbol

7:33

lleno de ramas.

7:34

Eso es.

7:34

Si no exploras todas esas ramas antes de

7:37

teclear, el proyecto va al pozo.

7:39

Vale, entiendo.

7:40

La IA te empieza a sacar escenarios en

7:42

los que tú ni habías pensado.

7:43

Claro.

7:44

Te dice, oye, ¿qué pasa si falla la

7:46

pasarela de pago a la mitad?

7:47

¿O si le das puntos a un usuario

7:49

en la app?

7:50

¿Son retroactivos?

7:51

Y Pocock decía que se pasaba media hora

7:53

respondiendo 80 preguntas seguidas para funciones que parecían

7:56

súper simples.

7:58

Sí, sí.

7:59

Pero es que es interrogatorio meter a lo

8:01

humano en el bucle desde el principio.

8:04

Es lo único que evita que la IA

8:05

y tú vayáis por caminos distintos.

8:08

¿Te asegura la alineación mental?

8:10

Vale.

8:11

Pongamos que sobrevivimos al tercer grado de la

8:13

IA y ya estamos alineados.

8:15

¿Qué hacemos para no volver a caer en

8:17

el síndrome de memento?

8:18

Pues cristalizar ese consenso.

8:20

Y ahí usa otro comando.

8:22

Barra top PRD.

8:25

Para generar un documento de requisitos de producto.

8:28

Exacto.

8:30

La IA te resume toda la charla en

8:31

un documento formal con el problema, la solución

8:34

y todo detallado.

8:35

Aunque leí en las notas que Pocock confiesa

8:37

que casi nunca lee ese documento que acaba

8:39

de generar.

8:41

Y tiene sentido, fíjate.

8:42

Ah, sí.

8:43

A mí me parecía absurdo generar algo para

8:45

ignorarlo.

8:46

Piensa que tú ya tienes la idea clara

8:48

porque acabas de sufrir el interrogatorio.

8:51

Ese documento no es para ti.

8:53

Es el disco duro externo de la IA.

8:55

Ah, claro.

8:56

Es un punto de guardado para cuando necesites

8:58

recargarle el contexto y sacarla de la zona

9:00

tonta.

9:00

Eso es.

9:01

Y el siguiente paso es transformar ese texto

9:04

en tareas con el comando barra to issues.

9:07

Para montar el típico tablero Kanban visual.

9:10

Correcto.

9:10

Pero ojo aquí, porque al dividir el trabajo

9:13

sale a la luz el peor instinto de

9:15

la IA.

9:16

Le encanta programar de forma horizontal.

9:18

Como en una cadena de montaje.

9:20

Primero hacemos todos los cimientos, luego todas las

9:23

paredes y luego todos los tejados.

9:25

Traducido a software quiere montarte todas las tablas

9:27

de la base de datos de golpe, luego

9:30

programar toda la lógica del servidor y al

9:32

final la interfaz visual.

9:34

¿Y cuál es el riesgo de hacer eso?

9:35

El feedback.

9:36

O más bien, la falta de él.

9:39

Si la IA mete un error conceptual en

9:41

la base de datos el primer día, no

9:43

te vas a dar cuenta hasta semanas después

9:45

cuando intentes conectar la pantalla.

9:47

Y para entonces arreglar el desastre te cuesta

9:49

la vida.

9:50

Totalmente.

9:51

Pues para anular ese riesgo, las fuentes mencionan

9:53

el concepto de balas trazadoras, del libro El

9:56

programador pragmático.

9:57

Y la analogía que usan es brutal.

9:59

Sí, la del artillero de noche.

10:00

Esa es.

10:01

Si tú estás disparando munición normal en plena

10:03

noche, no ves a dónde van las balas,

10:05

estás a ciegas.

10:07

Pero las balas trazadoras llevan fósforo, así que

10:09

brillan en la oscuridad y te dan feedback

10:11

visual inmediato para corregir el tiro.

10:13

Pues en el código es lo mismo.

10:15

Nada de desarrollos horizontales ciegos, hay que hacer

10:18

cortes verticales súper finos.

10:20

O sea, hacer una tabla de datos, conectarla

10:22

a su lógica y ponerle un botón en

10:23

la pantalla.

10:24

Todo de arriba a abajo.

10:25

Verlo funciona rápido.

10:27

Y al hacer esto en el Kanban, consigues

10:29

otra ventaja gigante.

10:31

Puedes usar grafos acíclicos dirigidos.

10:35

Uf, madre mía, qué término.

10:37

Suena a ciencia ficción pura.

10:39

Suena fatal, sí, pero es súper lógico.

10:41

Básicamente es definir exactamente qué tarea bloquea a

10:45

otra.

10:45

O sea, un mapa unidireccional.

10:48

La tarea B depende de la A, pero

10:50

la C va por libre.

10:51

Y nunca entras en bucles infinitos.

10:53

Eso es.

10:53

Y al tener esas tareas aisladas, puedes paralelizar

10:56

el trabajo.

10:57

Puedes poner a varios agentes de IA a

10:58

currar a la vez.

10:59

Exacto.

11:00

Cinco agentes en cinco tareas libres, sin pisarse

11:03

el código unos a otros.

11:05

Imagínate la velocidad de eso.

11:06

De locos, claro.

11:07

Y ahí es cuando llegamos a lo que

11:09

llaman el turno de noche.

11:10

El momento en el que el humano se

11:12

levanta de la silla y deja a los

11:14

agentes tecleando en la oscuridad.

11:16

Vale.

11:16

Pero seríamos teniendo el problema de la amnesia

11:18

y de que la IA a veces alucina,

11:20

dejarla sola modificando cosas parece súper arriesgado.

11:24

Es que, si no le pones límites, lo

11:26

es.

11:27

Como programan a ciegas y no pueden ver

11:29

si el sistema compila o explota, la solución

11:32

de Pocock es obligarles a usar el comando

11:34

barra TDD.

11:36

Test Driven Development, el desarrollo guiado por pruebas.

11:39

El ciclo de hierro, escribes un test que

11:42

falla en rojo, escribes el código mínimo para

11:44

que pase a verde y refactorizas.

11:47

A ver, espera un segundo.

11:48

El TDD es algo que los programadores humanos

11:51

odiamos históricamente.

11:52

Odiar es poco.

11:53

Es aburridísimo, frena la creatividad y exige muchísima

11:56

disciplina.

11:58

Casi nadie aguanta usándolo meses.

11:59

Ya, es tedioso.

12:01

O sea, me estás diciendo que la gran

12:02

revolución de la inteligencia artificial es que por

12:04

fin hemos encontrado a un pringado digital al

12:07

que endosarle las tareas que nos dan más

12:09

pereza.

12:09

Pues siendo sinceros, sí.

12:11

Y funciona de maravilla.

12:13

Porque si dejas que la máquina escriba el

12:15

código primero y luego el test… Hace trampa.

12:18

Muchísima.

12:19

Mira el código espantoso que acaba de escribir

12:21

y se inventa un test específico que valide

12:24

ese desastre.

12:25

Valida su propia basura.

12:27

Fíjate, rompe la cerradura y luego fabrica una

12:30

llave rota que casualmente la abre.

12:32

Exacto.

12:32

Pero si le forzas a hacer el test

12:34

primero, basándose solo en los requisitos documentados, ahí

12:37

pones un muro de contención.

12:39

El test manda.

12:40

Y claro, la IA tiene esa paciencia infinita

12:43

que a nosotros nos falta.

12:44

Va a repetir el ciclo cientos de veces

12:46

y hace falta sin resoplar.

12:48

Vale, me convence.

12:49

Tenemos un sistema robusto.

12:50

Pero claro, todo esto asume que estamos en

12:53

un proyecto nuevo y limpito.

12:54

Ah, amigo, el mundo real.

12:57

Claro.

12:57

¿Qué pasa si metes a estos agentes en

12:59

un proyecto antiguo de una empresa, lleno de

13:02

parches y código enredado de hace años?

13:04

Pues que la red neuronal entra en pánico,

13:06

lógicamente.

13:07

Pocock tiene una regla de oro, si tienes

13:09

una base de código basura, la IA solo

13:11

va a producir basura más rápido.

13:13

Y aquí citaban a John Oosterhout en su

13:16

libro Una filosofía del diseño de software.

13:18

Sí, la diferencia vital entre módulos superficiales y

13:22

módulos profundos.

13:23

Entiendo que los superficiales son el problema, ¿no?

13:25

Ese código espagueti.

13:27

Son veneno puro para la IA.

13:30

Un módulo superficial es un archivo enano que

13:33

hace una tontería, pero depende de otros 50

13:35

archivos regados por todo el sistema.

13:37

Y navegar por 50 archivos se come la

13:39

ventana de tokens rapidísimo.

13:41

Y te lleva directo a la zona tonta.

13:43

Además, al intentar hacer los tests que hablábamos

13:45

antes, la IA no puede aislar esa función.

13:48

Tiene que inventarse tantas simulaciones de otras partes

13:51

del programa que el test deja de tener

13:53

sentido.

13:53

Vale.

13:54

¿Y los módulos profundos son lo contrario?

13:56

Totalmente.

13:57

Un módulo profundo que en una interfaz externa,

14:00

súper sencilla, pero por dentro esconde un montón

14:03

de complejidad y funciones.

14:05

A ver, como la mecánica de un coche

14:07

manual.

14:08

Tú tienes una palanca de cambios súper simple.

14:11

Primera, segunda, tercera.

14:13

Eso es el exterior del módulo profundo.

14:15

Claro.

14:15

Pero por dentro hay cientos de engranajes sincronizados.

14:19

Si cada vez que cambias de marcha tuvieras

14:21

que alinear 10 engranajes a mano, que sería

14:24

un módulo superficial, no podrías conducir.

14:26

Pues a la IA le pasa igual.

14:28

Necesita ver solo la palanca, para hacer los

14:31

test, sin tener que calcular la fricción de

14:33

todo el motor interno.

14:34

Entonces, si tu proyecto es un lío de

14:36

módulos superficiales, ¿cómo lo arreglas?

14:38

Con otro comando más, barra, improve code base

14:41

architecture.

14:42

Y ojo, no analiza todo de golpe.

14:45

procesa el código por secciones pequeñas buscando oportunidades

14:48

para unificar todas esas funcioncillas sueltas en un

14:52

buen módulo profundo.

14:53

Fíjate qué paradoja.

14:55

Durante años pensábamos que la IA nos iba

14:57

a permitir ser peores programadores, que ella arreglaría

15:01

nuestros fallos.

15:02

¿Y es justo al revés?

15:02

Es que nos obliga a ser unos arquitectos

15:05

de software impecables para que ya no se

15:07

pierda.

15:08

Es como si hubiésemos sido albañiles poniendo ladrillos

15:11

toda la vida, y de repente la IA

15:13

nos obliga a ser urbanistas para planificar toda

15:16

la ciudad.

15:17

¡Qué buena analogía!

15:18

Y ese es el presente del sector, ¿eh?

15:20

Al final de todo este proceso hiperautomatizado, hay

15:24

una fase inevitable de control de calidad manual.

15:27

Donde entra el humano de verdad.

15:29

Claro, ahí es donde pones tu gusto, tu

15:31

criterio.

15:32

Si automatizas el 100%, vas a tener un

15:35

producto que funciona, sí, pero sin alma.

15:38

Ese toque final no te lo da la

15:40

estadística.

15:41

Me encanta.

15:42

Al final la máquina levanta los muros rapidísimo.

15:45

Pero nosotros decidimos si la casa tiene buena

15:47

luz o si es agradable vivir ahí.

15:49

Esa es la reflexión final que yo creo

15:52

que nos queda.

15:53

A medida que le delegamos la ejecución pura

15:55

a las máquinas, máquinas, nuestro valor profesional cambia

15:59

de sitio irremediablemente.

16:01

Ya no importa cuántas líneas por minuto picas.

16:04

Importa tu capacidad para hacerle las preguntas correctas

16:07

a la IA y el buen gusto que

16:09

tengas para evaluar si el ensamblaje final merece

16:11

la pena.

16:12

O cultivamos ese criterio o nos quedamos fuera

16:14

del juego, así de claro.

16:16

Así de claro, sí.

16:17

Pues nos quedamos con esa provocación en la

16:19

cabeza para darle vueltas.

16:20

Antes de despedirnos hasta el próximo programa, os

16:23

informamos de que las voces que oyes han

16:25

sido generadas por la IA de Notebook LM

16:27

y que dirigiendo el podcast se encuentra Julio

16:29

Pablo Vásquez, un humano que te envía saludos.

16:32

En caso de error, probablemente sean errores humanos.

16:35

Nos escuchamos.

16:47

Y hasta aquí el episodio de hoy.

16:49

Muchas gracias por tu atención.

17:01

Esto es BIMPRAXIS.

17:03

Nos escuchamos en el próximo episodio.

17:26

¡Suscríbete al canal!