1
00:00:10,000 --> 00:00:15,800
Buenas, esto es BIMPRAXIS, el podcast donde el

2
00:00:15,800 --> 00:00:17,920
BIM se encuentra con la inteligencia artificial.

3
00:00:20,519 --> 00:00:23,620
Exploramos la ciencia, la tecnología y el futuro

4
00:00:23,620 --> 00:00:26,559
desde el enfoque de la arquitectura, ingeniería y

5
00:00:26,559 --> 00:00:27,179
construcción.

6
00:00:28,859 --> 00:00:29,519
¡Empezamos!

7
00:00:37,299 --> 00:00:40,640
Muy buenas, bienvenidas, bienvenidos a un nuevo episodio

8
00:00:40,640 --> 00:00:41,939
de BIMPRAXIS.

9
00:00:42,159 --> 00:00:44,719
Hoy os traemos cómo lograr que la IA

10
00:00:44,719 --> 00:00:47,320
hable tu mismo idioma, de Grill Me a

11
00:00:47,320 --> 00:00:48,000
Grill with Dogs.

12
00:00:48,539 --> 00:00:49,979
Y la verdad es que el análisis de

13
00:00:49,979 --> 00:00:51,759
hoy tiene miga, porque vamos a ver cómo

14
00:00:51,759 --> 00:00:54,500
un simple documento de texto plano ha logrado

15
00:00:54,500 --> 00:00:57,320
solucionar, bueno, el mayor cuello de botella de

16
00:00:57,320 --> 00:00:58,840
la inteligencia artificial moderna.

17
00:00:59,140 --> 00:00:59,979
Totalmente.

18
00:01:00,439 --> 00:01:02,380
porque para avanzar hacia el futuro de cómo

19
00:01:02,380 --> 00:01:05,219
interactuamos con las máquinas, resulta que tuvimos que

20
00:01:05,219 --> 00:01:08,719
desenterrar un manual de programación de hace más

21
00:01:08,719 --> 00:01:11,019
de 20 años, que se dice pronto.

22
00:01:11,400 --> 00:01:13,659
Ya, es fascinante y fíjate que la exploración

23
00:01:13,659 --> 00:01:15,180
de estas fuentes no es una clase de

24
00:01:15,180 --> 00:01:17,620
código puro y duro, aunque luego hablemos de

25
00:01:17,620 --> 00:01:19,260
bases de datos o repositorios y tal.

26
00:01:19,760 --> 00:01:21,260
Claro, no vamos a aburrir a nadie con

27
00:01:21,260 --> 00:01:23,099
líneas de código infinitas.

28
00:01:22,920 --> 00:01:23,439
Exacto.

29
00:01:23,439 --> 00:01:26,799
El material base que documenta todo el proceso

30
00:01:26,799 --> 00:01:29,099
de este ingeniero de quien vamos a hablar

31
00:01:29,099 --> 00:01:31,540
hoy en el fondo es un tratado sobre

32
00:01:31,540 --> 00:01:33,859
comunicación humana y artificial.

33
00:01:33,819 --> 00:01:34,379
Así es.

34
00:01:35,000 --> 00:01:37,680
Aborda cómo la falta de, digamos, un diccionario

35
00:01:37,680 --> 00:01:41,060
compartido puede arruinar por completo tanto el trabajo

36
00:01:41,060 --> 00:01:44,280
de equipos humanos enteros como nuestras sesiones diarias

37
00:01:44,280 --> 00:01:45,760
con modelos de lenguaje.

38
00:01:45,599 --> 00:01:48,159
O sea, la fricción pura y dura de

39
00:01:48,159 --> 00:01:48,879
no entenderse.

40
00:01:49,219 --> 00:01:50,140
Eso es.

41
00:01:50,140 --> 00:01:51,859
Pues a ver, el origen de toda esta

42
00:01:51,859 --> 00:01:53,879
evolución se reduce a cuatro frases.

43
00:01:54,700 --> 00:01:55,859
Literalmente.

44
00:01:55,379 --> 00:01:58,760
El protagonista de las fuentes cuenta que escribió

45
00:01:58,760 --> 00:02:02,280
una pequeña instrucción, un prompt de apenas un

46
00:02:02,280 --> 00:02:05,459
párrafo, que acabó siendo el texto más influyente

47
00:02:05,459 --> 00:02:06,659
de toda su carrera.

48
00:02:06,680 --> 00:02:08,620
¡Qué locura que algo tan corto tenga tanto

49
00:02:08,620 --> 00:02:09,379
impacto, ¿verdad?

50
00:02:09,520 --> 00:02:10,740
Es una pasada.

51
00:02:10,740 --> 00:02:13,199
Lo empaquetó bajo el nombre de la habilidad

52
00:02:13,199 --> 00:02:15,900
Grill Me, que traducido vendría a ser algo

53
00:02:15,900 --> 00:02:19,759
así como Interrógame o, no sé, Ponme contra

54
00:02:19,759 --> 00:02:20,939
las cuerdas.

55
00:02:20,620 --> 00:02:22,000
Me gusta mucho ese enfoque.

56
00:02:21,879 --> 00:02:24,379
Y la genialidad de esta aproximación, lo que

57
00:02:24,379 --> 00:02:27,580
lo hace diferente, es que invierte por completo

58
00:02:27,580 --> 00:02:29,340
la carga cognitiva.

59
00:02:29,340 --> 00:02:31,460
O sea, normalmente, quien se sienta frente a

60
00:02:31,460 --> 00:02:33,879
un modelo de lenguaje asume toda la presión,

61
00:02:33,879 --> 00:02:34,240
¿no?

62
00:02:34,240 --> 00:02:36,400
Claro, la presión de tener que formular la

63
00:02:36,400 --> 00:02:37,219
pregunta perfecta.

64
00:02:37,819 --> 00:02:38,599
Exacto.

65
00:02:38,599 --> 00:02:41,900
Estructurar el contexto sin fisuras, prever todos los

66
00:02:41,900 --> 00:02:44,060
ángulos ciegos, es agotador.

67
00:02:44,060 --> 00:02:46,259
Pero con Grill Me le ordenas a la

68
00:02:46,259 --> 00:02:49,479
máquina que sea ella quien te entreviste implacablemente

69
00:02:49,479 --> 00:02:51,719
hasta alcanzar un entendimiento mutuo.

70
00:02:51,439 --> 00:02:53,680
Y el mecanismo interno de esa instrucción es

71
00:02:53,680 --> 00:02:57,180
lo verdaderamente interesante de analizar, porque le exige

72
00:02:57,180 --> 00:02:59,580
el modelo de lenguaje que recorra cada rama

73
00:02:59,580 --> 00:03:01,419
del árbol de diseño de tu idea, ¿sabes?

74
00:03:01,759 --> 00:03:03,180
Que vaya paso a paso.

75
00:03:03,240 --> 00:03:05,520
Eso es, y que vaya resolviendo las dependencias

76
00:03:05,520 --> 00:03:07,439
lógicas una por una.

77
00:03:07,439 --> 00:03:09,539
La IA detecta de inmediato las amigüedades de

78
00:03:09,539 --> 00:03:12,139
tu planteamiento inicial y empieza a lanzar preguntas

79
00:03:12,139 --> 00:03:13,240
estructuradas.

80
00:03:13,180 --> 00:03:14,539
Te obliga a mojarte.

81
00:03:14,340 --> 00:03:15,060
Totalmente.

82
00:03:15,060 --> 00:03:17,939
Obliga a externalizar todas esas suposiciones que la

83
00:03:17,939 --> 00:03:20,240
persona tiene en la cabeza, pero que, bueno,

84
00:03:20,240 --> 00:03:21,400
no ha verbalizado.

85
00:03:21,639 --> 00:03:23,680
Y ojo porque las fuentes mencionan casos de

86
00:03:23,680 --> 00:03:26,340
uso de Grill.me que van muchísimo más allá

87
00:03:26,340 --> 00:03:28,159
de la ingeniería de software.

88
00:03:28,360 --> 00:03:30,360
Hay un ejemplo asombroso de verdad que me

89
00:03:30,360 --> 00:03:31,319
dejó de piedra.

90
00:03:31,759 --> 00:03:32,560
A ver, cuenta.

91
00:03:32,639 --> 00:03:35,120
Alguien utilizó esta dinámica de interrogatorio para que

92
00:03:35,120 --> 00:03:37,580
la IA le hiciera preguntas y así poder

93
00:03:37,580 --> 00:03:39,719
escribir el panegírico para el funeral de su

94
00:03:39,719 --> 00:03:40,479
madre.

95
00:03:40,479 --> 00:03:41,500
¡Ostras!

96
00:03:41,500 --> 00:03:42,780
¡Qué fuerte!

97
00:03:42,879 --> 00:03:43,539
Durísimo, sí.

98
00:03:44,060 --> 00:03:46,340
Pues la inteligencia artificial le fue haciendo preguntas

99
00:03:46,340 --> 00:03:48,979
tan específicas y tan bien hiladas que logró

100
00:03:48,979 --> 00:03:51,520
sacar a la luz historias familiares, anécdotas y

101
00:03:51,520 --> 00:03:54,259
emociones que esa persona tenía bloqueadas por el

102
00:03:54,259 --> 00:03:54,500
duelo.

103
00:03:54,960 --> 00:03:56,199
Madre mía.

104
00:03:56,199 --> 00:03:58,599
Demuestra una capacidad casi empática de la herramienta,

105
00:03:58,599 --> 00:03:58,659
¿no?

106
00:03:58,840 --> 00:03:59,840
Completamente.

107
00:03:59,840 --> 00:04:03,460
Demuestra cómo puede organizar el pensamiento humano cuando

108
00:04:03,460 --> 00:04:06,680
se le da la directriz de investigar en

109
00:04:06,680 --> 00:04:11,159
lugar de simplemente escupir una respuesta genérica.

110
00:04:11,020 --> 00:04:13,439
Sin embargo, y aquí viene el giro, el

111
00:04:13,439 --> 00:04:15,939
éxito desmesurado de Grill Me llevó a su

112
00:04:15,939 --> 00:04:18,040
propio creador a un callejón sin salida en

113
00:04:18,040 --> 00:04:19,500
su trabajo principal.

114
00:04:19,540 --> 00:04:22,959
Claro, el desarrollo de arquitecturas de código complejas.

115
00:04:22,480 --> 00:04:26,120
Justo eso, porque la inteligencia artificial generalista es

116
00:04:26,120 --> 00:04:28,860
brillante, sí, pero adolece de un punto ciego

117
00:04:28,860 --> 00:04:29,339
masivo.

118
00:04:29,800 --> 00:04:30,720
¿Cuál?

119
00:04:30,920 --> 00:04:34,300
Desconoce por completo la jerga específica, es decir,

120
00:04:34,300 --> 00:04:36,180
el dominio concreto del proyecto en el que

121
00:04:36,180 --> 00:04:38,639
trabaja cada persona de forma individual.

122
00:04:38,459 --> 00:04:41,459
Vale, vamos a desgranar esto, porque es vital

123
00:04:41,459 --> 00:04:43,959
entender de dónde nace la fricción.

124
00:04:44,060 --> 00:04:46,319
O sea, la fuente usa una analogía que

125
00:04:46,319 --> 00:04:47,680
me parece buenísima.

126
00:04:47,560 --> 00:04:48,379
La del becario, ¿no?

127
00:04:48,639 --> 00:04:49,639
Esa misma.

128
00:04:49,860 --> 00:04:53,079
Es muy fácil imaginar la enorme pérdida de

129
00:04:53,079 --> 00:04:56,120
tiempo que supone trabajar con un becario que

130
00:04:56,120 --> 00:05:00,620
tiene una capacidad de procesamiento infinita, pero que

131
00:05:00,620 --> 00:05:03,920
sufre de amnesia severa cada mañana al cruzar

132
00:05:03,920 --> 00:05:05,459
la puerta de la oficina.

133
00:05:05,500 --> 00:05:07,945
Ya, ya, es que debe ser frustrante a

134
00:05:07,945 --> 00:05:08,925
más no poder.

135
00:05:09,265 --> 00:05:11,265
Pues el autor ilustra este problema con su

136
00:05:11,265 --> 00:05:12,605
propio día a día.

137
00:05:12,745 --> 00:05:16,205
Él está desarrollando una plataforma educativa y utiliza

138
00:05:16,205 --> 00:05:20,585
constantemente un concepto que denomina Standalone Video, o

139
00:05:20,585 --> 00:05:22,285
sea, un vídeo independiente.

140
00:05:22,465 --> 00:05:22,685
Vale.

141
00:05:23,385 --> 00:05:25,765
En su modelo mental está clarísimo que ese

142
00:05:25,765 --> 00:05:27,625
término se refiere a un vídeo que no

143
00:05:27,625 --> 00:05:29,945
está conectado a un curso ni pertenece a

144
00:05:29,945 --> 00:05:31,165
ninguna lección específica.

145
00:05:30,685 --> 00:05:31,745
específica.

146
00:05:31,745 --> 00:05:32,445
Para él es obvio.

147
00:05:32,445 --> 00:05:34,985
Claro, pero el modelo de lenguaje carece por

148
00:05:34,985 --> 00:05:38,145
completo del contexto para inferir ese significado.

149
00:05:38,145 --> 00:05:39,165
Cero contexto.

150
00:05:39,165 --> 00:05:41,785
Para la IA, Standalone Video es simplemente una

151
00:05:41,785 --> 00:05:43,945
cadena de texto ambigua.

152
00:05:43,945 --> 00:05:46,205
Entonces, al arrancar una nueva sesión con la

153
00:05:46,205 --> 00:05:49,205
instrucción de Grill Me, la máquina topaba con

154
00:05:49,205 --> 00:05:52,025
ese término y al intentar procesar su significado

155
00:05:52,025 --> 00:05:56,905
sin referencias, pues reaccionaba produciendo respuestas excesivamente largas.

156
00:05:56,905 --> 00:05:58,165
Empezaba a divagar.

157
00:05:58,165 --> 00:05:59,305
Literalmente.

158
00:05:59,305 --> 00:06:02,285
Intentaba cubrir todos los posibles significados genéricos de

159
00:06:02,285 --> 00:06:05,125
la palabra vidia y de la palabra independiente.

160
00:06:05,505 --> 00:06:08,245
Generaba una verborrea innecesaria que obligaba a detener

161
00:06:08,245 --> 00:06:09,785
el proceso productivo.

162
00:06:09,785 --> 00:06:12,445
Para tener que reexplicarle todo constantemente.

163
00:06:12,445 --> 00:06:15,645
Eso es, reexplicar la ontología básica del proyecto

164
00:06:15,645 --> 00:06:18,145
desde cero, sesión tras sesión.

165
00:06:18,145 --> 00:06:19,585
Llegaba a un punto en el que, antes

166
00:06:19,585 --> 00:06:21,885
de poder escribir una sola línea de código

167
00:06:21,885 --> 00:06:24,725
útil, tenía que impartir una clase magistral de

168
00:06:24,725 --> 00:06:26,725
media hora sobre el vocabulario de su propia

169
00:06:26,725 --> 00:06:27,425
aplicación.

170
00:06:27,425 --> 00:06:29,545
Una pérdida de tiempo brutal.

171
00:06:29,545 --> 00:06:32,365
Y a veces conseguían afinar un lenguaje compartido

172
00:06:31,865 --> 00:06:35,285
fantástico durante esa ventana de chat.

173
00:06:35,285 --> 00:06:37,945
Pero claro, al cerrar la pestaña, todo ese

174
00:06:37,945 --> 00:06:40,865
progreso semántico se desvanecía en el éter.

175
00:06:40,865 --> 00:06:43,745
La amnesia volvía a atacar al día siguiente.

176
00:06:43,745 --> 00:06:44,225
Exacto.

177
00:06:44,225 --> 00:06:46,625
Pero bueno, el problema de la falta de

178
00:06:46,625 --> 00:06:49,805
retención del vocabulario del dominio no es exclusivo

179
00:06:49,805 --> 00:06:51,765
de la inteligencia artificial.

180
00:06:51,765 --> 00:06:54,645
La ingeniería de software tradicional lleva lidiando con

181
00:06:54,645 --> 00:06:57,505
esta misma colisión semántica durante décadas.

182
00:06:57,325 --> 00:06:59,045
O sea que no es un problema nuevo.

183
00:06:58,865 --> 00:07:01,365
Que va, especialmente a medida que los proyectos

184
00:07:01,365 --> 00:07:03,565
escalan y los equipos se dividen.

185
00:07:03,785 --> 00:07:05,785
La solución que rescató este flujo de trabajo

186
00:07:05,785 --> 00:07:07,705
no proviene de un nuevo avance en redes

187
00:07:07,705 --> 00:07:10,405
neuronales, sino de un libro publicado en el

188
00:07:10,405 --> 00:07:11,565
año 2003.

189
00:07:11,545 --> 00:07:12,825
Ah, el famoso libro azul.

190
00:07:13,065 --> 00:07:15,545
El mismísimo, el libro azul de Eric Evans.

191
00:07:16,265 --> 00:07:19,085
El texto fundacional del Domain Driven Design, o

192
00:07:19,085 --> 00:07:21,165
diseño guiado por el dominio, que en la

193
00:07:21,165 --> 00:07:22,865
industria se conoce como DDD.

194
00:07:23,305 --> 00:07:26,645
Vale, ¿y qué propone este libro exactamente para

195
00:07:26,645 --> 00:07:28,005
solucionar el lío?

196
00:07:28,185 --> 00:07:30,565
Pues el pilar central de esta filosofía es

197
00:07:30,565 --> 00:07:33,705
lo que Evans bautizó como el lenguaje ubicuo.

198
00:07:34,065 --> 00:07:36,325
Su tesis postula que el principal motivo por

199
00:07:36,325 --> 00:07:38,525
el que los proyectos de software fracasan no

200
00:07:38,525 --> 00:07:41,205
es la falta de destreza técnica, sino la

201
00:07:41,205 --> 00:07:43,105
torre de Babel que se forma entre los

202
00:07:43,105 --> 00:07:44,745
diferentes departamentos.

203
00:07:44,645 --> 00:07:46,765
O sea, un problema de comunicación puro y

204
00:07:46,765 --> 00:07:47,485
duro.

205
00:07:47,165 --> 00:07:48,285
Tal cual.

206
00:07:48,285 --> 00:07:50,005
Por ejemplo, el equipo de marketing habla de

207
00:07:50,005 --> 00:07:53,105
campañas, el desarrollador del servidor crea una tabla

208
00:07:53,105 --> 00:07:57,005
en la base de datos llamada eventos-promocionales, y

209
00:07:57,005 --> 00:07:58,865
el diseñador de la interfaz lo llama banners.

210
00:07:59,485 --> 00:08:01,025
Madre mía, el caos.

211
00:08:01,025 --> 00:08:02,865
Y cuando hay un error en una campaña,

212
00:08:02,865 --> 00:08:05,465
el programador pierde horas intentando descifrar a qué

213
00:08:05,465 --> 00:08:07,585
parte de su código se refieren, claro.

214
00:08:07,985 --> 00:08:09,285
Exactamente.

215
00:08:09,285 --> 00:08:11,925
Pues el lenguaje ubicuo busca erradicar esa fricción

216
00:08:11,925 --> 00:08:12,865
de raíz.

217
00:08:13,125 --> 00:08:15,765
Requiere crear un documento o un glosario innegociable

218
00:08:15,765 --> 00:08:17,885
que debe ser utilizado de forma estricta por

219
00:08:17,885 --> 00:08:18,485
tres grupos.

220
00:08:18,845 --> 00:08:19,325
¿Cuáles son?

221
00:08:20,165 --> 00:08:22,765
La base de código, los desarrolladores que la

222
00:08:22,765 --> 00:08:25,565
escriben y los expertos del dominio o negocio,

223
00:08:25,965 --> 00:08:27,345
que son los que saben qué se está

224
00:08:27,345 --> 00:08:29,885
construyendo, aunque no sepan cómo.

225
00:08:30,265 --> 00:08:32,645
O sea, alinear a todo el mundo.

226
00:08:32,705 --> 00:08:33,025
Eso es.

227
00:08:33,025 --> 00:08:35,725
Si esos tres pilares se alinean en torno

228
00:08:35,725 --> 00:08:37,085
a un único término, término.

229
00:08:37,085 --> 00:08:39,785
Cualquier error es inmediatamente rastreable.

230
00:08:39,785 --> 00:08:41,465
El nombre de la variable en el ordenador

231
00:08:41,465 --> 00:08:43,665
es exactamente el mismo que el término que

232
00:08:43,665 --> 00:08:44,945
usa el experto en ventas.

233
00:08:45,365 --> 00:08:47,465
Vale, pues aquí es donde se pone realmente

234
00:08:47,465 --> 00:08:48,645
interesante.

235
00:08:48,645 --> 00:08:51,545
Porque el protagonista de las fuentes, al darse

236
00:08:51,545 --> 00:08:54,845
cuenta del paralelismo, intentó aplicar este concepto de

237
00:08:54,845 --> 00:08:57,285
lenguaje ubicuo a sus sesiones de IA.

238
00:08:57,285 --> 00:08:59,145
Pero al principio lo hizo a lo bruto,

239
00:08:59,145 --> 00:08:59,705
¿no?

240
00:08:59,865 --> 00:09:02,005
Sí, sí, a la fuerza bruta total.

241
00:09:02,005 --> 00:09:04,265
Cuenta que, en mitad de un interrogatorio con

242
00:09:04,265 --> 00:09:07,085
la máquina, cuando notaba que los conceptos empezaban

243
00:09:07,085 --> 00:09:09,625
a difuminarse, interrumpía el flujo.

244
00:09:09,625 --> 00:09:12,005
Le pedía a la IA que generase ahí

245
00:09:12,005 --> 00:09:16,445
mismo un archivo llamado ubicuslanguage.mmd.

246
00:09:16,445 --> 00:09:19,625
Para registrar las definiciones acordadas en ese momento.

247
00:09:19,625 --> 00:09:20,765
Exacto.

248
00:09:20,765 --> 00:09:23,045
Funcionaba, pero era súper tosco.

249
00:09:23,085 --> 00:09:25,185
Claro, era una solución parcheada.

250
00:09:25,185 --> 00:09:28,185
Obligaba a documentar el consenso manualmente, lo cual

251
00:09:28,185 --> 00:09:31,165
es un avance, pero carecía de integración real.

252
00:09:31,165 --> 00:09:33,025
Rompía todo el ritmo de trabajo.

253
00:09:33,085 --> 00:09:34,365
Totalmente.

254
00:09:34,365 --> 00:09:36,665
Rompía el estado de flujo del desarrollador al

255
00:09:36,665 --> 00:09:39,745
exigirle constantes cambios de contexto mental para gestionar

256
00:09:39,745 --> 00:09:40,885
la documentación.

257
00:09:40,885 --> 00:09:43,705
Faltaba una automatización que permitiera a la IA

258
00:09:43,705 --> 00:09:46,325
ingerirse conocimiento desde el milisegundo cero.

259
00:09:46,445 --> 00:09:48,805
Sin tener que andar con recordatorios.

260
00:09:48,805 --> 00:09:52,225
Y de esa frustración nace la fusión definitiva.

261
00:09:52,225 --> 00:09:54,485
Nace la nueva herramienta Grill with Dogs.

262
00:09:54,785 --> 00:09:56,145
El salto evolutivo.

263
00:09:55,845 --> 00:09:57,125
Justo.

264
00:09:57,125 --> 00:09:59,305
Es exactamente el mismo texto de la instrucción

265
00:09:59,305 --> 00:10:02,805
Gilmi, mantiene esa capacidad inquisitiva, pero se le

266
00:10:02,805 --> 00:10:04,625
añade una orden ineludible.

267
00:10:04,905 --> 00:10:07,125
Antes de hacer la primera pregunta, la IA

268
00:10:07,125 --> 00:10:10,305
debe buscar, leer y asimilar un archivo específico

269
00:10:10,305 --> 00:10:12,205
llamado context.md.

270
00:10:12,145 --> 00:10:13,585
Un archivo clave.

271
00:10:13,585 --> 00:10:17,790
Ese context.md actúa como la materialización de lo

272
00:10:17,790 --> 00:10:19,650
que el diseño guiado por el dominio denomina

273
00:10:19,650 --> 00:10:23,010
un bounded context o contexto delimitado.

274
00:10:22,810 --> 00:10:24,710
A ver, explícanos un poco más esto del

275
00:10:24,710 --> 00:10:26,230
contexto delimitado.

276
00:10:25,990 --> 00:10:28,350
Pues que alimenta directamente el mecanismo de atención

277
00:10:27,870 --> 00:10:29,910
del modelo de lenguaje.

278
00:10:29,970 --> 00:10:32,690
En lugar de calcular probabilidades estadísticas sobre qué

279
00:10:32,690 --> 00:10:35,230
podría significar una palabra basándose en todo el

280
00:10:35,230 --> 00:10:37,910
Internet, la IA ancla su red semántica a

281
00:10:37,910 --> 00:10:39,970
las definiciones estrictas de ese documento.

282
00:10:40,310 --> 00:10:42,090
O sea, que limita sus alucinaciones.

283
00:10:42,270 --> 00:10:43,410
Exactamente.

284
00:10:43,410 --> 00:10:45,470
Sus parámetros de actuación acaban de ser acotados

285
00:10:45,470 --> 00:10:47,010
por las reglas de negocio de quien está

286
00:10:47,010 --> 00:10:48,010
frente a la pantalla.

287
00:10:47,930 --> 00:10:50,050
¿Y las mecánicas prácticas de esta fusión son

288
00:10:50,050 --> 00:10:50,730
reveladoras?

289
00:10:50,750 --> 00:10:53,290
La máquina recibe instrucciones para afilar el lenguaje

290
00:10:53,290 --> 00:10:56,870
difuso, debatir escenarios concretos, cruzar referencias con el

291
00:10:56,870 --> 00:10:59,230
código existente y actualizar el glosario en tiempo

292
00:10:59,230 --> 00:11:01,190
real, sin que tengas que mover un dedo

293
00:11:01,190 --> 00:11:03,090
para mantener el documento.

294
00:11:02,810 --> 00:11:04,170
Eso es.

295
00:11:04,170 --> 00:11:06,350
Y el material detalla un ejemplo real que

296
00:11:06,350 --> 00:11:08,430
es perfecto para ilustrar esto.

297
00:11:08,430 --> 00:11:09,370
El estilo Mr.

298
00:11:09,370 --> 00:11:09,870
Beast.

299
00:11:09,910 --> 00:11:10,430
Ah, sí.

300
00:11:10,430 --> 00:11:12,490
El ejemplo del empaquetado de los vídeos.

301
00:11:12,490 --> 00:11:13,590
Es buenísimo.

302
00:11:13,610 --> 00:11:14,450
Sí, sí.

303
00:11:14,450 --> 00:11:16,450
El escenario es que quiere añadir una nueva

304
00:11:16,450 --> 00:11:18,770
entidad al ecosistema de la aplicación.

305
00:11:19,050 --> 00:11:22,050
Hasta ese momento, la plataforma manejaba cursos, lecciones

306
00:11:22,050 --> 00:11:23,230
y vídeos.

307
00:11:23,230 --> 00:11:25,610
Y decide introducir el concepto de pitch.

308
00:11:25,570 --> 00:11:26,630
El pitch, claro.

309
00:11:26,570 --> 00:11:28,810
En el argot de los creadores de contenido,

310
00:11:28,810 --> 00:11:31,010
un pitch engloba el empaquetado inicial de un

311
00:11:31,010 --> 00:11:31,750
vídeo.

312
00:11:31,270 --> 00:11:34,450
El título provisional, la idea de la miniatura,

313
00:11:34,450 --> 00:11:36,610
la premisa general antes de siquiera encender la

314
00:11:36,610 --> 00:11:36,890
cámara.

315
00:11:37,350 --> 00:11:39,290
¿Y quiere integrar esa estructura en su base

316
00:11:39,290 --> 00:11:39,730
de datos?

317
00:11:40,330 --> 00:11:43,390
Y claro, una inteligencia artificial normal, al recibir

318
00:11:43,390 --> 00:11:46,510
esta petición, simplemente habría escupido bloques de código

319
00:11:46,510 --> 00:11:49,250
genérico a lo loco para generar tablas llamadas

320
00:11:49,250 --> 00:11:52,070
pitch, asumiendo que es una función aislada.

321
00:11:51,750 --> 00:11:54,350
Pero Grill with Docs no hace eso.

322
00:11:54,970 --> 00:11:59,070
Analiza la petición contra el archivo context.md y

323
00:11:59,070 --> 00:12:01,250
frena la operación en seco.

324
00:12:01,150 --> 00:12:03,850
le lanza una advertencia de colisión terminológica.

325
00:12:04,170 --> 00:12:04,750
¡Qué maravilla!

326
00:12:04,750 --> 00:12:09,030
La IA detecta una incompatibilidad lógica fundamental.

327
00:12:09,310 --> 00:12:11,330
Le dice algo así como, oye, en tu

328
00:12:11,330 --> 00:12:15,030
glosario actual, un video independiente se define estrictamente

329
00:12:15,030 --> 00:12:18,150
como un video cuyo identificador de elecciones nulo.

330
00:12:18,270 --> 00:12:18,770
¡Exacto!

331
00:12:19,070 --> 00:12:20,370
Y le plantea el dilema.

332
00:12:20,550 --> 00:12:23,610
Si introducimos los pitches, ¿un video independiente sigue

333
00:12:23,610 --> 00:12:27,010
manteniendo esa categoría si tiene un pitch asociado?

334
00:12:27,170 --> 00:12:29,190
¿O la introducción de este concepto nos obliga

335
00:12:29,190 --> 00:12:31,130
a redefinir la frontera de lo que significa

336
00:12:31,130 --> 00:12:33,610
ser independiente en todo el sistema.

337
00:12:33,610 --> 00:12:36,090
A mí me parece fascinante cómo detenerse a

338
00:12:36,090 --> 00:12:39,610
aclarar la semántica de una simple palabra desencadena

339
00:12:39,610 --> 00:12:42,410
una revisión de la interfaz visual y de

340
00:12:42,410 --> 00:12:44,650
la arquitectura de la base de datos completa.

341
00:12:44,650 --> 00:12:46,530
La IA asume el rol de un arquitecto

342
00:12:46,530 --> 00:12:49,390
de sistemas implacable y todo por defender la

343
00:12:49,390 --> 00:12:51,450
integridad del diccionario.

344
00:12:51,450 --> 00:12:51,750
Literal.

345
00:12:51,750 --> 00:12:54,030
Y a partir de ahí la máquina empieza

346
00:12:54,030 --> 00:12:57,130
a lanzarle detalles técnicos que tiene que decidir

347
00:12:57,130 --> 00:12:58,270
sí o sí.

348
00:12:58,270 --> 00:13:01,130
Le pregunta por la cardinalidad de los datos.

349
00:13:01,130 --> 00:13:03,610
Oye, ¿un mismo pitch puede tener múltiples vídeos

350
00:13:03,610 --> 00:13:04,890
de pruebas asociados?

351
00:13:04,890 --> 00:13:07,510
Y le confirma que sí, estableciendo una relación

352
00:13:07,510 --> 00:13:08,710
de uno a muchos.

353
00:13:08,750 --> 00:13:11,470
Y luego profundiza aún más, exigiendo que se

354
00:13:11,470 --> 00:13:13,790
definan las semánticas de estado de esa nueva

355
00:13:13,310 --> 00:13:14,690
entidad.

356
00:13:14,690 --> 00:13:17,150
Le pregunta en qué estados lógicos puede existir

357
00:13:17,150 --> 00:13:21,050
un pitch, inactivo, programado, enviado… O sea, obliga

358
00:13:21,050 --> 00:13:22,690
a definir el ciclo de vida del dato

359
00:13:22,690 --> 00:13:24,650
antes de programar una sola línea.

360
00:13:24,690 --> 00:13:26,830
Y llega hasta la gestión de qué pasa

361
00:13:26,830 --> 00:13:27,950
si se borra.

362
00:13:27,950 --> 00:13:29,590
La IA le pregunta qué debe hacer el

363
00:13:29,590 --> 00:13:32,230
sistema si alguien decide borrar un pitch que

364
00:13:32,230 --> 00:13:34,330
ya tiene vídeos vinculados.

365
00:13:34,330 --> 00:13:35,830
Y él estipula que la base de datos

366
00:13:35,830 --> 00:13:39,830
debe rechazar la acción eligiendo la restricción onDeleteRestrict.

367
00:13:40,150 --> 00:13:42,910
Claro, porque la filosofía de la plataforma prefiere

368
00:13:42,910 --> 00:13:45,190
archivar a borrar cosas, ¿no?

369
00:13:45,410 --> 00:13:46,090
Eso es.

370
00:13:46,090 --> 00:13:48,730
Y lo realmente pragmático de todo esto es

371
00:13:48,730 --> 00:13:52,170
que estas decisiones críticas no se pierden en

372
00:13:52,170 --> 00:13:54,350
un historial de chat infinito.

373
00:13:54,350 --> 00:13:57,410
La IA sintetiza todo este debate y actualiza

374
00:13:57,410 --> 00:14:01,830
el archivo contexto.md automáticamente con las nuevas reglas.

375
00:14:01,670 --> 00:14:03,230
Es una maravilla.

376
00:14:03,230 --> 00:14:06,550
Ahora bien, estandarizar el vocabulario mediante ese contexto

377
00:14:06,550 --> 00:14:08,790
delimitado está muy bien.

378
00:14:08,790 --> 00:14:10,710
Resuelve el problema de la identidad de las

379
00:14:10,710 --> 00:14:11,750
entidades.

380
00:14:11,750 --> 00:14:13,970
Pero claro, en un proyecto hay decisiones que

381
00:14:13,970 --> 00:14:15,930
van más allá del vocabulario.

382
00:14:16,110 --> 00:14:17,090
Totalmente.

383
00:14:17,010 --> 00:14:19,670
¿Qué pasa con las decisiones lógicas y estructurales

384
00:14:19,670 --> 00:14:22,230
que justifican la forma del código?

385
00:14:22,230 --> 00:14:24,490
Cuando el equipo descarta una tecnología en favor

386
00:14:24,490 --> 00:14:26,650
de otra, el glosario no te sirve para

387
00:14:26,650 --> 00:14:29,150
explicar el por qué a un compañero nuevo.

388
00:14:28,850 --> 00:14:30,510
Claro, se queda cojo.

389
00:14:30,270 --> 00:14:31,390
Exacto.

390
00:14:31,390 --> 00:14:33,570
Por eso, el flujo de trabajo incorpora una

391
00:14:33,570 --> 00:14:36,830
última pieza del rompecabezas, una última capa de

392
00:14:36,830 --> 00:14:39,430
blindaje, los famosos ADRs.

393
00:14:39,750 --> 00:14:42,050
Los Architectural Decision Records.

394
00:14:42,630 --> 00:14:45,090
Registros de decisiones arquitectónicas.

395
00:14:45,090 --> 00:14:47,850
Son archivos Markdown muy escuetos que viven ahí,

396
00:14:47,850 --> 00:14:49,710
en el repositorio, junto al código.

397
00:14:49,730 --> 00:14:52,510
Y su único propósito es documentar las decisiones

398
00:14:52,510 --> 00:14:53,690
no obvias.

399
00:14:53,510 --> 00:14:56,190
Entonces, ¿qué significa todo esto?

400
00:14:56,190 --> 00:14:58,570
Porque, a ver, yo me pongo en la

401
00:14:58,570 --> 00:15:00,090
piel de quienes nos escuchan, que a lo

402
00:15:00,090 --> 00:15:02,690
mejor lideran un equipo, y surge una duda

403
00:15:02,690 --> 00:15:03,690
crítica.

404
00:15:03,530 --> 00:15:04,190
Dispara.

405
00:15:04,250 --> 00:15:07,630
¿De verdad tenemos que documentar cada pequeña cosa?

406
00:15:07,630 --> 00:15:09,950
O sea, ¿vamos a hacer un registro notarial

407
00:15:09,950 --> 00:15:12,470
porque hoy elegimos poner el botón rojo en

408
00:15:12,470 --> 00:15:13,550
vez del azul?

409
00:15:13,550 --> 00:15:17,510
Eso suena a una burocracia paralizante brutal.

410
00:15:17,330 --> 00:15:20,210
Ya, es una reticencia muy lógica, pero las

411
00:15:20,210 --> 00:15:22,495
fuentes son súper categóricas en esto para evitar

412
00:15:22,495 --> 00:15:25,155
precisamente esa parálisis que comentas.

413
00:15:25,155 --> 00:15:28,275
Los ADRs solo, y repito, solo, se usan

414
00:15:28,275 --> 00:15:31,795
cuando una decisión cumple unos requisitos muy estrictos.

415
00:15:31,795 --> 00:15:32,655
¿Cuáles?

416
00:15:32,655 --> 00:15:36,075
Es decir, cuando hay un trade-off, un compromiso

417
00:15:36,075 --> 00:15:38,275
donde se sacrifica una cosa por otra.

418
00:15:38,275 --> 00:15:39,515
Vale, entiendo.

419
00:15:39,515 --> 00:15:41,475
Si se trata de elegir entre dos librerías

420
00:15:41,475 --> 00:15:44,375
que son completamente intercambiables y que tardas media

421
00:15:44,395 --> 00:15:47,475
ahora en sustituir, no se documenta absolutamente nada.

422
00:15:47,475 --> 00:15:50,035
O sea, solo se registra lo que, digamos,

423
00:15:50,115 --> 00:15:53,015
sorprendería a otro desarrollador si no tuviera el

424
00:15:53,015 --> 00:15:54,155
contexto histórico.

425
00:15:54,155 --> 00:15:55,015
Exactamente eso.

426
00:15:55,015 --> 00:15:56,875
Si al leer el código alguien va a

427
00:15:56,875 --> 00:15:58,815
pensar, pero bueno, ¿por qué diseñaron esto de

428
00:15:58,815 --> 00:16:00,035
una manera tan raba?

429
00:16:00,035 --> 00:16:02,475
Ahí es donde necesitas el ADR que explique

430
00:16:02,475 --> 00:16:04,615
que, oye, en aquel momento era la única

431
00:16:04,615 --> 00:16:06,175
forma de esquivar un problema.

432
00:16:06,175 --> 00:16:08,155
Claro, tiene todo el sentido.

433
00:16:08,155 --> 00:16:11,715
Ahora bien, toda esta ceremonia inicial, lo de

434
00:16:11,715 --> 00:16:15,315
pulir el lenguaje, crear los archivos, redactar los

435
00:16:15,315 --> 00:16:18,555
registros, tiene que tener una recompensa enorme que

436
00:16:18,555 --> 00:16:20,355
justifique semejante esfuerzo, ¿no?

437
00:16:20,355 --> 00:16:24,095
Los beneficios tangibles son apabullantes, de verdad, y

438
00:16:24,095 --> 00:16:26,435
alteran por completo cómo los modelos de lenguaje

439
00:16:26,435 --> 00:16:27,935
consumen recursos.

440
00:16:27,935 --> 00:16:30,495
Sí, las fuentes destacan que uno de los

441
00:16:30,495 --> 00:16:34,395
beneficios mágicos es que la IA da respuestas

442
00:16:34,395 --> 00:16:37,895
muchísimo más concisas, usa muchos menos tokens.

443
00:16:37,895 --> 00:16:41,095
Claro, al tener un lenguaje compartido precargado, la

444
00:16:41,095 --> 00:16:43,615
IA ya no necesita generar párrafos y párrafos

445
00:16:43,615 --> 00:16:45,355
para confirmar que ha entendido lo que le

446
00:16:45,355 --> 00:16:45,835
pides.

447
00:16:45,835 --> 00:16:46,935
Va directa al grano.

448
00:16:46,935 --> 00:16:49,315
Y al tener ese lenguaje compartido, la máquina

449
00:16:49,315 --> 00:16:53,055
también usa menos tokens para, entre comillas, pensar

450
00:16:53,055 --> 00:16:54,035
internamente.

451
00:16:54,135 --> 00:16:56,835
Optimiza sus procesos porque no pierde tiempo intentando

452
00:16:56,835 --> 00:16:58,375
desentrañar ambigüedades.

453
00:16:58,395 --> 00:17:01,095
Se alinea mágicamente con las intenciones de la

454
00:17:01,095 --> 00:17:03,515
persona que escribe, a veces antes de que

455
00:17:03,035 --> 00:17:05,795
siquiera termine de formular la petición.

456
00:17:05,795 --> 00:17:07,675
Y el resultado es que el código final

457
00:17:07,675 --> 00:17:10,255
es muchísimo más fácil de navegar, porque las

458
00:17:10,255 --> 00:17:12,895
carpetas y las variables se llaman exactamente igual

459
00:17:12,895 --> 00:17:14,675
que los conceptos que tú tienes en la

460
00:17:14,675 --> 00:17:15,355
cabeza.

461
00:17:15,355 --> 00:17:17,736
Es una sincronización perfecta.

462
00:17:17,736 --> 00:17:20,675
Por eso, tras todas estas iteraciones, las fuentes

463
00:17:20,675 --> 00:17:23,115
establecen una regla de oro definitiva que es

464
00:17:23,115 --> 00:17:24,775
súper fácil de recordar.

465
00:17:24,775 --> 00:17:25,435
A ver.

466
00:17:25,435 --> 00:17:27,875
Si tienes un repositorio de código, una code

467
00:17:27,875 --> 00:17:30,055
base en la que trabajar, usa Grill with

468
00:17:30,055 --> 00:17:30,695
Docs.

469
00:17:30,695 --> 00:17:33,295
Está especialmente recomendado al inicio de un proyecto

470
00:17:33,295 --> 00:17:35,395
para cimentar bien el lenguaje.

471
00:17:35,395 --> 00:17:37,115
¿Y si no tienes repositorio?

472
00:17:37,115 --> 00:17:39,555
Si no tienes un repositorio de código, porque

473
00:17:39,555 --> 00:17:42,555
a lo mejor estás explorando ideas generales, definiendo

474
00:17:42,555 --> 00:17:44,915
un modelo de negocio o, como decíamos al

475
00:17:44,915 --> 00:17:47,275
principio, escribiendo un panejírico.

476
00:17:47,275 --> 00:17:48,895
Que vaya tela con el ejemplo.

477
00:17:48,895 --> 00:17:51,135
Pues en esos casos de uso generales, usa

478
00:17:51,135 --> 00:17:51,835
Grillme.

479
00:17:51,835 --> 00:17:55,275
La instrucción original sigue siendo imbatible para eso.

480
00:17:55,275 --> 00:17:57,935
Me parece un resumen súper práctico.

481
00:17:57,935 --> 00:18:00,495
Y además hay un detalle extra de mucho

482
00:18:00,495 --> 00:18:01,795
valor en las fuentes.

483
00:18:01,795 --> 00:18:04,195
Y es que este ingeniero Matt actualiza estas

484
00:18:04,195 --> 00:18:06,915
habilidades constantemente en su newsletter.

485
00:18:07,055 --> 00:18:09,236
Se llama AI Skills for Real Engineers.

486
00:18:09,675 --> 00:18:11,236
Boletín muy recomendable.

487
00:18:11,236 --> 00:18:13,575
Sí, y prometen que es un boletín sin

488
00:18:13,575 --> 00:18:17,075
nada de spam, pensado puramente para mantenerse al

489
00:18:17,075 --> 00:18:19,015
día con los registros de cambios de estas

490
00:18:19,015 --> 00:18:21,555
herramientas que ya sabemos que avanzan a la

491
00:18:21,555 --> 00:18:22,935
velocidad de la luz.

492
00:18:22,815 --> 00:18:24,915
Totalmente imprescindible hoy en día.

493
00:18:24,875 --> 00:18:26,835
Bueno, pues analizar toda la evolución de estas

494
00:18:26,835 --> 00:18:30,415
técnicas deja una evidencia incontestable, ¿no crees?

495
00:18:30,615 --> 00:18:31,575
Desde luego.

496
00:18:41,575 --> 00:18:44,236
Y fíjate, antes de leer la despedida formal,

497
00:18:44,255 --> 00:18:45,935
creo que esto nos deja una reflexión final

498
00:18:45,935 --> 00:18:47,895
muy provocadora para que la gente le dé

499
00:18:47,895 --> 00:18:48,835
una vuelta en casa.

500
00:18:48,935 --> 00:18:49,375
Adelante.

501
00:18:49,895 --> 00:18:53,635
Si crear un simple documento context.md solo para

502
00:18:53,635 --> 00:18:56,955
alinear las definiciones exactas logra una sinergia tan

503
00:18:56,955 --> 00:18:59,236
sumamente perfecta entre un humano y una máquina,

504
00:18:59,055 --> 00:19:02,855
¿No crees que deberíamos empezar a escribir pequeños

505
00:19:02,855 --> 00:19:06,435
archivos con text.md en nuestros trabajos?

506
00:19:06,855 --> 00:19:09,515
Ya sabes, para arreglar los malentendidos diarios que

507
00:19:09,515 --> 00:19:11,455
tenemos entre nosotros, los humanos.

508
00:19:11,815 --> 00:19:12,675
¡Ostras!

509
00:19:12,675 --> 00:19:15,115
Pues sería la solución a muchísimos problemas de

510
00:19:15,115 --> 00:19:17,015
oficina, estoy convencida.

511
00:19:17,375 --> 00:19:18,935
Ojalá lo apliquemos más.

512
00:19:19,435 --> 00:19:21,915
Antes de despedirnos, hasta el próximo programa, os

513
00:19:21,915 --> 00:19:23,875
informamos de que las voces que oyes han

514
00:19:23,875 --> 00:19:26,135
sido generadas por la IA de Notebook LM

515
00:19:26,955 --> 00:19:28,935
y que dirigiendo el podcast se encuentra Julio

516
00:19:28,935 --> 00:19:31,755
Pablo Vázquez, un humano que te envía saludos.

517
00:19:31,855 --> 00:19:34,875
En caso de error, probablemente sean errores humanos.

518
00:19:34,855 --> 00:19:35,596
Nos escuchamos.

519
00:19:46,995 --> 00:19:48,755
Y hasta aquí el episodio de hoy.

520
00:19:48,755 --> 00:19:50,715
Muchas gracias por tu atención.

521
00:20:00,555 --> 00:20:02,735
Esto es BIMPRAXIS.

522
00:20:02,735 --> 00:20:04,835
Nos escuchamos en el próximo episodio.

523
00:20:26,295 --> 00:20:26,855
Gracias.

