1
00:00:09,679 --> 00:00:15,660
Buenas, esto es BIMPRAXIS, el podcast donde el

2
00:00:15,660 --> 00:00:17,739
BIM se encuentra con la inteligencia artificial.

3
00:00:20,260 --> 00:00:23,480
Exploramos la ciencia, la tecnología y el futuro

4
00:00:23,480 --> 00:00:26,440
desde el enfoque de la arquitectura, ingeniería y

5
00:00:26,440 --> 00:00:27,120
construcción.

6
00:00:28,719 --> 00:00:29,440
¡Empezamos!

7
00:00:36,799 --> 00:00:40,640
Muy buenas, bienvenidas, bienvenidos a un nuevo episodio

8
00:00:40,640 --> 00:00:41,920
de BIMPRAXIS.

9
00:00:41,920 --> 00:00:45,719
Hoy os traemos la anatomía de cómo integrar

10
00:00:45,719 --> 00:00:48,460
herramientas de IA en un código de hace

11
00:00:48,460 --> 00:00:51,159
15 años sin destruir el proyecto o en

12
00:00:51,159 --> 00:00:51,719
el intento.

13
00:00:51,840 --> 00:00:54,179
Y a ver, es un desafío que representa,

14
00:00:54,479 --> 00:00:56,820
o sea, el verdadero campo de batalla de

15
00:00:56,820 --> 00:00:57,600
la ingeniería actual.

16
00:00:58,420 --> 00:00:58,939
Totalmente.

17
00:00:59,240 --> 00:01:02,240
Porque, seamos sinceros, generar un bloque de código

18
00:01:02,240 --> 00:01:05,299
desde cero en un entorno aséptico es, bueno,

19
00:01:05,319 --> 00:01:07,359
un truquito que cualquier modelo de IA te

20
00:01:07,359 --> 00:01:08,920
hace hoy en día antes del desayuno.

21
00:01:09,219 --> 00:01:11,359
La fricción real, la de verdad.

22
00:01:11,920 --> 00:01:14,040
Ocurre cuando chocamos con el mundo real, ¿no?

23
00:01:14,120 --> 00:01:14,980
Claro, exacto.

24
00:01:14,980 --> 00:01:17,319
Y por eso nuestra inmersión profunda de hoy

25
00:01:17,319 --> 00:01:18,859
se centra en un caso real.

26
00:01:19,159 --> 00:01:23,239
El que documentó el desarrollador Dan Delimarski y

27
00:01:23,239 --> 00:01:25,780
el ecosistema donde él decide experimentar.

28
00:01:25,799 --> 00:01:28,780
Ojo, no es un lienzo en blanco, es

29
00:01:28,780 --> 00:01:30,000
su propio blog personal.

30
00:01:30,280 --> 00:01:33,079
Un proyecto que lleva vivo y funcionando nada

31
00:01:33,079 --> 00:01:34,180
menos que 15 años.

32
00:01:34,359 --> 00:01:34,980
Que se dice pronto.

33
00:01:35,260 --> 00:01:37,680
Ya te digo, 15 años en el mundo

34
00:01:37,680 --> 00:01:39,859
del desarrollo web no es que sea mucho

35
00:01:39,859 --> 00:01:40,239
tiempo.

36
00:01:40,379 --> 00:01:41,900
Es que es una era geográfica.

37
00:01:41,920 --> 00:01:42,920
Es una era geológica entera.

38
00:01:42,980 --> 00:01:45,859
Han nacido y muerto decenas de lenguajes ahí

39
00:01:45,859 --> 00:01:46,200
en medio.

40
00:01:46,439 --> 00:01:47,079
Sí, sí.

41
00:01:47,159 --> 00:01:49,799
Y la herramienta que utiliza para este experimento

42
00:01:49,799 --> 00:01:52,459
es la línea de comandos, la CLI de

43
00:01:52,459 --> 00:01:53,500
GitHub's PetKit.

44
00:01:53,659 --> 00:01:55,920
Su objetivo sobre el papel es, a ver,

45
00:01:56,040 --> 00:01:57,319
bastante mumbano.

46
00:01:57,560 --> 00:02:00,200
Quiere añadir una nueva funcionalidad a este blog

47
00:02:00,200 --> 00:02:00,680
milenario.

48
00:02:02,120 --> 00:02:05,219
Específicamente quiere una lista de lectura, rollo la

49
00:02:05,219 --> 00:02:07,239
página de libros de la escritora Molly White,

50
00:02:07,420 --> 00:02:09,479
para tener un registro visual de lo que

51
00:02:09,479 --> 00:02:10,039
va leyendo.

52
00:02:10,360 --> 00:02:11,900
Vale, vamos a desglosar.

53
00:02:11,919 --> 00:02:13,960
Vamos a desglosar esto, porque el contexto técnico

54
00:02:13,960 --> 00:02:15,479
aquí lo es absolutamente todo.

55
00:02:15,919 --> 00:02:18,360
El blog de Den usa un generador de

56
00:02:18,360 --> 00:02:21,900
sitios estáticos que es Hugo, emplea Tailwind CSS

57
00:02:21,900 --> 00:02:24,759
y además corre sobre un tema modificado.

58
00:02:24,939 --> 00:02:27,319
Tela, ¿no puedes entrar ahí de cualquier manera?

59
00:02:27,639 --> 00:02:30,099
Claro, para que una IA no entre ahí

60
00:02:30,099 --> 00:02:33,680
como un elefante en una cacharrería, primero necesita

61
00:02:33,680 --> 00:02:35,039
límites absolutos.

62
00:02:35,060 --> 00:02:37,580
Es exactamente igual que invitar a un contratista

63
00:02:37,580 --> 00:02:39,979
a reformar una cocina en una casa centenaria.

64
00:02:40,199 --> 00:02:41,479
Muy buena analogía.

65
00:02:41,919 --> 00:02:43,539
Si antes de mirar a Zulejos, lo primero

66
00:02:43,539 --> 00:02:45,400
que tienes que hacer es sentarte con él

67
00:02:45,400 --> 00:02:47,520
y decirle, oye, estos son los muros de

68
00:02:47,520 --> 00:02:47,800
carga.

69
00:02:48,159 --> 00:02:51,840
Bajo ninguna circunstancia puedes tirar estas paredes, porque

70
00:02:51,840 --> 00:02:53,560
si lo haces, se nos cae el edificio

71
00:02:53,560 --> 00:02:54,080
entero encima.

72
00:02:54,439 --> 00:02:55,219
Es que es tal cual.

73
00:02:55,479 --> 00:02:57,580
Si dejas a un modelo de lenguaje actuar

74
00:02:57,580 --> 00:02:59,680
por libre, su instinto siempre va a ser

75
00:02:59,680 --> 00:03:02,120
añadir la tecnología más moderna con la que

76
00:03:02,120 --> 00:03:02,819
lo han entrenado.

77
00:03:03,099 --> 00:03:05,520
Por eso, el primer paso en SpecKit no

78
00:03:05,520 --> 00:03:07,939
es pedirle que programe, sino usar un comando

79
00:03:07,939 --> 00:03:09,419
que es la barra Constitution.

80
00:03:10,099 --> 00:03:10,539
¡Ostras!

81
00:03:10,780 --> 00:03:11,900
Ahí es donde redacta.

82
00:03:11,919 --> 00:03:13,360
Esta es la constitución del proyecto.

83
00:03:13,639 --> 00:03:16,620
Es un documento que marca esas restricciones inquebrantables.

84
00:03:16,879 --> 00:03:19,180
Y las reglas de DENZ fueron tajantes.

85
00:03:19,400 --> 00:03:22,759
O sea, primera regla, es un sitio estático

86
00:03:22,759 --> 00:03:23,460
puro.

87
00:03:23,479 --> 00:03:25,139
Solo se puede usar Hugo.

88
00:03:25,860 --> 00:03:28,939
Segunda regla, cualquier estilo visual tiene que usar

89
00:03:28,939 --> 00:03:30,580
las convenciones que ya existen.

90
00:03:31,000 --> 00:03:33,939
Pero la tercera regla es la que me

91
00:03:33,939 --> 00:03:34,599
parece clave.

92
00:03:34,819 --> 00:03:35,219
A ver.

93
00:03:35,659 --> 00:03:37,960
Cero dependencias externas.

94
00:03:38,860 --> 00:03:40,060
¿Absolutamente prohibido?

95
00:03:40,060 --> 00:03:43,180
Añadir un nuevo archivo Package .json.

96
00:03:43,319 --> 00:03:43,699
Claro.

97
00:03:43,879 --> 00:03:45,699
Y aquí me quiero detener, porque para la

98
00:03:45,699 --> 00:03:47,259
gente que no está todo el día picando

99
00:03:47,259 --> 00:03:50,020
código, ¿por qué añadir un simple gestor de

100
00:03:50,020 --> 00:03:53,460
paquetes es un pecado capital en este contexto?

101
00:03:53,860 --> 00:03:56,020
Pues porque meter un Package .json es abrir

102
00:03:56,020 --> 00:03:58,340
la caja de Pandora del ecosistema Node .js.

103
00:03:58,479 --> 00:04:01,020
Es invitar al proyecto a ese agujero negro

104
00:04:01,020 --> 00:04:02,500
que es la carpeta Node Models.

105
00:04:02,620 --> 00:04:04,580
Te llenas de archivos sin darte cuenta.

106
00:04:05,120 --> 00:04:05,639
Exacto.

107
00:04:05,960 --> 00:04:08,479
Instalas una tontería para formatear un texto y

108
00:04:08,479 --> 00:04:09,500
de repente ¡pum!

109
00:04:09,500 --> 00:04:12,539
Descargas cincuenta mil pequeños archivos de terceros que

110
00:04:12,539 --> 00:04:14,580
tienes que mantener y vigilar por temas de

111
00:04:14,580 --> 00:04:14,879
seguridad.

112
00:04:15,319 --> 00:04:16,100
Madre mía.

113
00:04:16,240 --> 00:04:17,839
Y el blog de Derm es estático.

114
00:04:18,019 --> 00:04:20,500
Eso significa que no procesa bases de datos

115
00:04:20,500 --> 00:04:21,819
ni lógicas complejas.

116
00:04:22,000 --> 00:04:24,759
Solo entrega un HTML casi a la velocidad

117
00:04:24,759 --> 00:04:25,379
de la luz.

118
00:04:25,560 --> 00:04:28,740
Si añades dependencias externas, te cargas esa pureza

119
00:04:28,740 --> 00:04:30,519
que lleva quince años protegiendo.

120
00:04:31,319 --> 00:04:31,839
Entendido.

121
00:04:31,860 --> 00:04:32,899
La pureza manda.

122
00:04:33,139 --> 00:04:35,579
Pero, revisando esto, hay un detalle que me

123
00:04:35,579 --> 00:04:37,459
dejó, bueno, dándole vueltas.

124
00:04:37,860 --> 00:04:39,480
Durante esta fase de la Constitución, ¿qué es

125
00:04:39,480 --> 00:04:39,480
lo que se puede hacer?

126
00:04:39,480 --> 00:04:41,839
Durante la Constitución, Derm usó Cloud Sonnet 4

127
00:04:41,839 --> 00:04:45,139
y la IA sugerió por su cuenta una

128
00:04:45,139 --> 00:04:46,019
regla ética.

129
00:04:46,060 --> 00:04:47,180
Ah, sí, lo vi.

130
00:04:47,399 --> 00:04:50,420
Decía, en plan, todo el contenido debe estar

131
00:04:50,420 --> 00:04:52,560
escrito por humanos y ser genuino.

132
00:04:52,800 --> 00:04:54,980
Y a simple vista parece una regla fantástica,

133
00:04:54,980 --> 00:04:55,240
¿verdad?

134
00:04:55,420 --> 00:04:56,579
Sí, suena muy bien.

135
00:04:56,800 --> 00:04:59,220
Yo la habría dejado, pero Derm la eliminó

136
00:04:59,220 --> 00:04:59,779
inmediatamente.

137
00:05:00,100 --> 00:05:03,019
¿Por qué rechazar una buena práctica ética así?

138
00:05:03,379 --> 00:05:06,100
Pues porque en el ámbito puramente de ingeniería,

139
00:05:06,120 --> 00:05:09,019
la ética del contenido es ruido.

140
00:05:09,480 --> 00:05:10,060
Ruido puro.

141
00:05:10,519 --> 00:05:12,779
Derm la descartó porque es irrelevante para el

142
00:05:12,779 --> 00:05:13,019
código.

143
00:05:13,259 --> 00:05:15,819
La Constitución tiene que centrarse solo en la

144
00:05:15,819 --> 00:05:16,579
infraestructura.

145
00:05:16,959 --> 00:05:18,439
Zapatero a tus zapatos, vaya.

146
00:05:18,699 --> 00:05:19,180
Exacto.

147
00:05:19,199 --> 00:05:22,300
Si incluyes una directiva filosófica sobre quién escribe,

148
00:05:22,420 --> 00:05:23,740
estás distrayendo al modelo.

149
00:05:24,060 --> 00:05:26,639
La IA está ahí como arquitecto técnico para

150
00:05:26,639 --> 00:05:29,839
construir las estanterías, no para ser descensor literario

151
00:05:29,839 --> 00:05:31,259
de los libros que vas a poner en

152
00:05:31,259 --> 00:05:31,459
ellas.

153
00:05:31,720 --> 00:05:33,040
Vale, tiene todo el sentido.

154
00:05:33,480 --> 00:05:35,920
Mantener el enfoque en los ladrillos digitales.

155
00:05:36,459 --> 00:05:39,279
Entonces, una vez que la IA sabe perfectamente,

156
00:05:39,480 --> 00:05:42,040
lo que no puede hacer, llega el momento

157
00:05:42,040 --> 00:05:44,180
de decirle qué queremos construir.

158
00:05:44,459 --> 00:05:47,420
Y aquí, ¡buf!, la industria del software lleva

159
00:05:47,420 --> 00:05:49,860
décadas tropezando con la misma piedra.

160
00:05:50,040 --> 00:05:50,680
Ya te digo.

161
00:05:50,879 --> 00:05:54,100
Los humanos somos un desastre total detallando requisitos

162
00:05:54,100 --> 00:05:54,540
técnicos.

163
00:05:54,980 --> 00:05:55,500
Totalmente.

164
00:05:55,699 --> 00:05:57,899
Es un problema crónico con los documentos de

165
00:05:57,899 --> 00:05:59,839
requisitos del producto, los PRD.

166
00:06:00,019 --> 00:06:02,420
A nadie le gusta escribirlos, porque tienes que

167
00:06:02,420 --> 00:06:04,579
imaginar las 100 formas diferentes en las que

168
00:06:04,579 --> 00:06:06,079
un usuario podría romper el sistema.

169
00:06:06,420 --> 00:06:08,079
Y siempre nos dejamos algo.

170
00:06:08,259 --> 00:06:10,800
Y aquí es donde… El proceso con SPECIT

171
00:06:10,800 --> 00:06:12,939
da un giro, o sea, ¡brillante!

172
00:06:13,699 --> 00:06:17,120
DEN usa primero el comando SPECIFY para decirle

173
00:06:17,120 --> 00:06:18,699
a la IA, más o menos, que quiere

174
00:06:18,699 --> 00:06:21,379
una ruta alimentada por archivos TOMEL, que es

175
00:06:21,379 --> 00:06:22,680
un formato muy sencillo.

176
00:06:23,000 --> 00:06:26,040
Pero la verdadera magia ocurre cuando ejecuta el

177
00:06:26,040 --> 00:06:26,839
comando CLARIFY.

178
00:06:27,259 --> 00:06:28,019
¡Ostras, sí!

179
00:06:28,339 --> 00:06:30,939
El CLARIFY es brutal porque invierte a los

180
00:06:30,939 --> 00:06:31,220
roles.

181
00:06:31,500 --> 00:06:34,040
La IA deja de generar código a ciegas

182
00:06:34,040 --> 00:06:35,300
y analiza el borrador.

183
00:06:35,790 --> 00:06:38,420
Y usando su conocimiento, empieza a hacerle preguntas

184
00:06:38,420 --> 00:06:41,180
al desarrollador, para iluminar sus puntos ciegos.

185
00:06:41,360 --> 00:06:42,759
¡Es buenísimo!

186
00:06:42,899 --> 00:06:44,860
Leyendo el caso de estudio, de verdad, ¡es

187
00:06:44,860 --> 00:06:45,899
divertidísimo!

188
00:06:46,199 --> 00:06:48,160
La IA de repente se transforma en un

189
00:06:48,160 --> 00:06:51,199
gestor de proyectos súper exigente, interrogando a un

190
00:06:51,199 --> 00:06:54,339
desarrollador que, pobre, claramente no había pensado en

191
00:06:54,339 --> 00:06:54,899
los detalles.

192
00:06:55,319 --> 00:06:57,180
Seguro que le pilló sin tomarse el primer

193
00:06:57,180 --> 00:06:57,480
café.

194
00:06:57,860 --> 00:06:58,339
Seguro.

195
00:06:58,639 --> 00:07:01,100
Vamos a repasar el interrogatorio porque no tiene

196
00:07:01,100 --> 00:07:01,699
desperdicio.

197
00:07:02,019 --> 00:07:04,660
La primera pregunta de la máquina fue, ¿cómo

198
00:07:04,660 --> 00:07:05,920
se van a ordenar los libros?

199
00:07:06,019 --> 00:07:07,060
Una omisión clásica.

200
00:07:07,379 --> 00:07:09,040
Nosotros asumimos que hay un orden.

201
00:07:09,480 --> 00:07:11,540
Pero el ordenador necesita reglas matemáticas.

202
00:07:11,759 --> 00:07:13,759
Den tuvo que decidir ahí mismo que se

203
00:07:13,759 --> 00:07:15,500
ordenarían por fecha de finalización.

204
00:07:15,879 --> 00:07:17,420
Los más recientes, arriba.

205
00:07:18,699 --> 00:07:21,759
Luego, la IA le ataca con el diseño.

206
00:07:22,139 --> 00:07:25,959
Le suelta, ¿cuántos libros deben mostrarse por página?

207
00:07:26,139 --> 00:07:26,939
Claro, la paginación.

208
00:07:27,160 --> 00:07:29,639
Den, pensando rápido, dijo que 20 libros por

209
00:07:29,639 --> 00:07:30,480
página estaría bien.

210
00:07:30,680 --> 00:07:32,899
Y la tercera pregunta fue puramente visual.

211
00:07:33,240 --> 00:07:36,259
Le dijo, ¿cómo se mostrarán las calificaciones?

212
00:07:36,480 --> 00:07:39,420
¿Quieres dibujar estrellas, poner un número, o las

213
00:07:39,420 --> 00:07:39,980
dos cosas?

214
00:07:40,379 --> 00:07:43,339
Y Den optó por estrellas visuales y el

215
00:07:43,339 --> 00:07:45,319
número al lado para que fuera accesible.

216
00:07:46,139 --> 00:07:50,300
Pero la cuarta pregunta, esa es la que

217
00:07:50,300 --> 00:07:52,120
demuestra que estamos ante algo diferente.

218
00:07:52,920 --> 00:07:55,420
La IA le pregunta, ¿qué pasa con los

219
00:07:55,420 --> 00:07:57,540
libros que has empezado a leer pero aún

220
00:07:57,540 --> 00:07:59,699
no has terminado y no tienen fecha de

221
00:07:59,699 --> 00:08:00,339
finalización?

222
00:08:00,839 --> 00:08:01,279
Brutal.

223
00:08:01,360 --> 00:08:02,819
A mí me parece fascinante.

224
00:08:03,040 --> 00:08:05,319
O sea, ¿cómo Narizas sabe la IA que

225
00:08:05,319 --> 00:08:06,480
eso va a ser un problema?

226
00:08:06,480 --> 00:08:09,779
Lo detecta porque estos modelos analizan millones de

227
00:08:09,779 --> 00:08:10,839
repositorios de código.

228
00:08:11,199 --> 00:08:14,040
La IA sabe, estadísticamente, que en bases de

229
00:08:14,040 --> 00:08:16,639
datos con fechas, si dejas un valor vacío

230
00:08:16,639 --> 00:08:18,680
o nulo, el frontend explota.

231
00:08:18,759 --> 00:08:20,959
Te rompe el ordenamiento de la primera pregunta.

232
00:08:21,560 --> 00:08:23,019
Madre mía, qué fuerte.

233
00:08:23,680 --> 00:08:25,860
Y claro, ante eso Den decidió que los

234
00:08:25,860 --> 00:08:28,579
libros inconclusos se quedarían anclados arriba del todo

235
00:08:28,579 --> 00:08:30,980
en una sección de leyendo actualmente.

236
00:08:31,139 --> 00:08:32,740
Una salida muy elegante, la verdad.

237
00:08:32,960 --> 00:08:34,899
Y la quinta pregunta ya cerraba el círculo

238
00:08:34,899 --> 00:08:35,399
de la seguridad.

239
00:08:35,399 --> 00:08:38,740
¿Qué hacemos si el archivo TOM está corrupto

240
00:08:38,740 --> 00:08:39,519
o le faltan datos?

241
00:08:40,200 --> 00:08:41,139
Pragmatismo en vena.

242
00:08:41,340 --> 00:08:44,299
Porque Den le dijo que ignorara silenciosamente la

243
00:08:44,299 --> 00:08:46,860
entrada con errores y renderizará el resto para

244
00:08:46,860 --> 00:08:48,679
no asustar a la gente que visite la

245
00:08:48,679 --> 00:08:48,860
web.

246
00:08:49,059 --> 00:08:51,779
Y es que esta fase interactiva es revolucionaria.

247
00:08:51,940 --> 00:08:53,980
Cuando nos quejamos de que la IA da

248
00:08:53,980 --> 00:08:56,740
código basura, el 90 % de las veces

249
00:08:56,740 --> 00:08:59,399
es nuestra culpa por darle un contexto pésimo.

250
00:08:59,460 --> 00:09:01,620
Si obligas a la IA a preguntar primero,

251
00:09:01,799 --> 00:09:03,480
las reglas quedan perfectas.

252
00:09:03,659 --> 00:09:04,080
Vale.

253
00:09:04,080 --> 00:09:07,200
Con los vacíos lógicos rellenados ya sabemos qué

254
00:09:07,200 --> 00:09:07,580
construir.

255
00:09:07,820 --> 00:09:10,019
Pero saber el qué no es saber el

256
00:09:10,019 --> 00:09:12,120
cómo sin dinamitar el proyecto.

257
00:09:12,480 --> 00:09:15,120
Por eso pasan al comando plan, donde la

258
00:09:15,120 --> 00:09:17,940
IA toma las respuestas y diseña las tareas.

259
00:09:18,059 --> 00:09:19,480
Y aquí te tengo que preguntar.

260
00:09:19,799 --> 00:09:22,899
La IA propuso crear un sistema completo de

261
00:09:22,899 --> 00:09:25,440
tests automatizados, pruebas de código.

262
00:09:25,779 --> 00:09:29,000
Y Den literalmente intervino y se los cargó

263
00:09:29,000 --> 00:09:29,259
todos.

264
00:09:29,600 --> 00:09:30,740
Los borró de un plumazo.

265
00:09:30,740 --> 00:09:33,879
A ver, perdóname, pero como principio de ingeniería,

266
00:09:33,899 --> 00:09:35,779
quitar los tests no es una negligencia.

267
00:09:35,919 --> 00:09:38,080
¿Qué pasa si una actualización le rompe la

268
00:09:38,080 --> 00:09:38,659
lista mañana?

269
00:09:39,080 --> 00:09:41,419
Es una reacción súper normal la tuya.

270
00:09:41,600 --> 00:09:44,559
Desde un punto de vista académico, tendrías toda

271
00:09:44,559 --> 00:09:45,000
la razón.

272
00:09:45,539 --> 00:09:47,960
Pero lo fascinante de esto es que ilustra

273
00:09:47,960 --> 00:09:49,919
por qué necesitamos al humano en el bucle.

274
00:09:50,360 --> 00:09:52,960
La IA no entiende de presupuestos ni de

275
00:09:52,960 --> 00:09:53,740
contexto social.

276
00:09:54,100 --> 00:09:55,019
Claro, va con todo.

277
00:09:55,259 --> 00:09:55,740
Exacto.

278
00:09:55,899 --> 00:09:58,179
Aplica el rigor de una empresa enorme a

279
00:09:58,179 --> 00:09:58,980
todo lo que hace.

280
00:09:58,980 --> 00:10:01,220
Se cree que está diseñando el sistema de

281
00:10:01,220 --> 00:10:02,399
frenado de un tren bala.

282
00:10:02,679 --> 00:10:04,539
Pero Den es un tío manteniendo su blog

283
00:10:04,539 --> 00:10:05,720
personal en su tiempo libre.

284
00:10:05,960 --> 00:10:08,840
¿El contexto empresarial frente al pragmatismo personal?

285
00:10:09,120 --> 00:10:09,500
Eso es.

286
00:10:09,740 --> 00:10:12,899
En un blog estático, montar integración continua y

287
00:10:12,899 --> 00:10:14,879
tests añade una complejidad monumental.

288
00:10:15,799 --> 00:10:17,879
Ralentiza todo para una función que, si se

289
00:10:17,879 --> 00:10:19,820
rompe, bueno, pues no se ve la portada

290
00:10:19,820 --> 00:10:20,820
de un libro, ya está.

291
00:10:21,220 --> 00:10:24,220
Den actuó como freno humano ante la sobreingeniería.

292
00:10:24,320 --> 00:10:25,740
Tiene todo el sentido del mundo.

293
00:10:26,320 --> 00:10:27,860
Agilidad por encima del dogma.

294
00:10:27,860 --> 00:10:30,480
Y esta colaboración se afina aún más en

295
00:10:30,480 --> 00:10:32,600
el siguiente paso, con el comando Analyze.

296
00:10:33,360 --> 00:10:35,840
Spekit revisa el plan contra la Constitución.

297
00:10:35,960 --> 00:10:39,340
Y la IA ahí brilla, porque detecta un

298
00:10:39,340 --> 00:10:41,019
error tremendo de arquitectura.

299
00:10:41,200 --> 00:10:43,659
El plan inicial decía de guardar los datos

300
00:10:43,659 --> 00:10:44,740
en la carpeta config.

301
00:10:45,200 --> 00:10:47,639
Pero la IA salta y dice, oye, las

302
00:10:47,639 --> 00:10:49,980
convenciones de Hugo dicen que los datos van

303
00:10:49,980 --> 00:10:52,080
en la carpeta data, no en config.

304
00:10:52,399 --> 00:10:53,480
Qué nivel de detalle.

305
00:10:53,700 --> 00:10:56,440
Es que ese nivel idiomático del ecosistema es

306
00:10:56,440 --> 00:10:57,159
alucinante.

307
00:10:57,159 --> 00:10:58,039
Sí, sí.

308
00:10:58,700 --> 00:11:01,159
Demuestra que no es un simple lorito repitiendo

309
00:11:01,159 --> 00:11:01,480
texto.

310
00:11:01,980 --> 00:11:04,240
Entiende la semántica de las carpetas de los

311
00:11:04,240 --> 00:11:05,259
frameworks modernos.

312
00:11:05,379 --> 00:11:07,620
Y bueno, con el plan ya pulido, llega

313
00:11:07,620 --> 00:11:08,820
el momento de ejecutar.

314
00:11:08,860 --> 00:11:10,159
El comando Implement.

315
00:11:10,419 --> 00:11:12,340
El choque de realidad, madre mía.

316
00:11:12,500 --> 00:11:12,980
Siempre.

317
00:11:13,200 --> 00:11:15,580
Siempre la teoría es perfecta hasta que abres

318
00:11:15,580 --> 00:11:16,320
el navegador web.

319
00:11:16,480 --> 00:11:17,019
Ya te digo.

320
00:11:17,259 --> 00:11:19,620
Según cuenta Den, ejecuta el comando.

321
00:11:19,620 --> 00:11:21,159
El backend funciona perfecto.

322
00:11:21,179 --> 00:11:22,059
Los datos cargan.

323
00:11:22,340 --> 00:11:24,860
Pero el frontend, la parte visual, es un

324
00:11:24,860 --> 00:11:26,259
desastre absoluto.

325
00:11:26,259 --> 00:11:28,700
En vez de una cuadrícula elegante, le sale

326
00:11:28,700 --> 00:11:30,019
una lista plana y aburrida.

327
00:11:30,139 --> 00:11:30,639
Típico.

328
00:11:30,720 --> 00:11:32,440
Pero a ver, no lo entiendo.

329
00:11:32,720 --> 00:11:35,159
Hablamos de IA que te programa algoritmos de

330
00:11:35,159 --> 00:11:36,480
cifrado en segundos.

331
00:11:36,740 --> 00:11:38,820
¿Y me estás diciendo que no sabe alinear

332
00:11:38,820 --> 00:11:40,980
cuatro cajas en una pantalla con CSS?

333
00:11:41,500 --> 00:11:44,279
Es que es una debilidad estructural gigantesca de

334
00:11:44,279 --> 00:11:45,320
los modelos actuales.

335
00:11:45,460 --> 00:11:48,320
Un LLM es ciego, fundamentalmente.

336
00:11:48,320 --> 00:11:49,539
No ve la pantalla.

337
00:11:49,740 --> 00:11:51,379
No tiene razonamiento espacial.

338
00:11:51,519 --> 00:11:52,139
Ah, claro.

339
00:11:52,340 --> 00:11:53,460
Solo predice texto.

340
00:11:53,759 --> 00:11:54,279
Exacto.

341
00:11:54,659 --> 00:11:57,200
Escribir Python es… … lógica secuencial.

342
00:11:57,399 --> 00:12:00,620
Pero el CSS, especialmente una cuadrícula o flexbox,

343
00:12:00,759 --> 00:12:02,980
es contextual y en dos dimensiones.

344
00:12:03,279 --> 00:12:05,879
La IA puede adivinar qué clases de Tailwind

345
00:12:05,879 --> 00:12:06,820
suelen ir juntas.

346
00:12:06,879 --> 00:12:09,000
Pero no sabe cómo van a colisionar esos

347
00:12:09,000 --> 00:12:10,600
píxeles en la pantalla del usuario.

348
00:12:11,019 --> 00:12:13,299
Siempre hace falta iteración visual humana.

349
00:12:13,419 --> 00:12:14,740
Es como si te hace los planos de

350
00:12:14,740 --> 00:12:16,840
la casa perfectos, pero le tienes que decir

351
00:12:16,840 --> 00:12:18,259
tú si el sofá va a caber por

352
00:12:18,259 --> 00:12:19,200
la puerta del salón.

353
00:12:19,279 --> 00:12:19,620
Tal cual.

354
00:12:19,820 --> 00:12:23,320
Por eso, Den combina Cloud Sonnet 4 y

355
00:12:23,320 --> 00:12:26,000
GPT -5 para ir refinando el diseño.

356
00:12:26,259 --> 00:12:29,159
Le meten unas pastillas visuales muy chulas para

357
00:12:29,159 --> 00:12:29,779
las fechas.

358
00:12:30,159 --> 00:12:32,580
La etiqueta de lectura obligatoria.

359
00:12:32,600 --> 00:12:33,639
Un contador.

360
00:12:33,799 --> 00:12:34,879
Se empieza a ver genial.

361
00:12:35,200 --> 00:12:37,600
Pero ojo que aquí ocurre un pivote técnico

362
00:12:37,600 --> 00:12:37,919
brutal.

363
00:12:38,159 --> 00:12:41,440
¿Te acuerdas de que habían exigido paginación de

364
00:12:41,440 --> 00:12:43,259
20 libros en la fase de clarificación?

365
00:12:43,580 --> 00:12:43,919
Sí, sí.

366
00:12:43,960 --> 00:12:44,940
Parecía inamovible.

367
00:12:45,179 --> 00:12:46,519
Pues desaparece por completo.

368
00:12:46,740 --> 00:12:47,460
Se la cargan.

369
00:12:47,759 --> 00:12:50,120
¿Qué provocó un cambio tan drástico a mitad

370
00:12:50,120 --> 00:12:50,519
de camino?

371
00:12:50,820 --> 00:12:52,139
Pues fue puro pragmatismo.

372
00:12:52,220 --> 00:12:54,779
Lo que podríamos llamar esencialismo de software.

373
00:12:54,779 --> 00:12:57,919
Se dieron cuenta de un conflicto arquitectónico de

374
00:12:57,919 --> 00:12:58,179
fondo.

375
00:12:58,399 --> 00:13:01,559
Si querían paginación real, sin recargar la web

376
00:13:01,559 --> 00:13:03,840
entera, tenían que inyectar código JavaScript.

377
00:13:04,419 --> 00:13:06,480
Y el JavaScript rompe la regla de la

378
00:13:06,480 --> 00:13:08,299
pureza estática que vimos al principio.

379
00:13:08,879 --> 00:13:09,519
Exactamente.

380
00:13:09,639 --> 00:13:12,580
Añadir JavaScript para un triste botón de siguiente

381
00:13:12,580 --> 00:13:15,279
iba en contra de 15 años de rendimiento

382
00:13:15,279 --> 00:13:15,919
extremo.

383
00:13:16,000 --> 00:13:18,399
Así que Den hizo algo dificilísimo.

384
00:13:18,879 --> 00:13:22,600
Priorizó la simplicidad arquitectónica sobre un capricho estético.

385
00:13:22,600 --> 00:13:25,919
Prefirió una sola página larga y súper rápida.

386
00:13:26,340 --> 00:13:26,919
Brillante.

387
00:13:27,200 --> 00:13:29,539
Saber decir no a tu propia idea para

388
00:13:29,539 --> 00:13:31,059
no romper los cimientos.

389
00:13:31,740 --> 00:13:33,480
Bueno, llegamos al éxito.

390
00:13:33,559 --> 00:13:34,600
El código funciona.

391
00:13:34,879 --> 00:13:35,600
Es rápido.

392
00:13:35,759 --> 00:13:37,460
No hay JavaScript ni necesario.

393
00:13:37,919 --> 00:13:38,820
Misión cumplida.

394
00:13:38,840 --> 00:13:39,460
En teoría.

395
00:13:39,559 --> 00:13:40,080
Claro.

396
00:13:40,200 --> 00:13:43,120
El 99 % de la gente guardaría el

397
00:13:43,120 --> 00:13:45,299
código, cerraría el ordenador y a otra cosa.

398
00:13:45,539 --> 00:13:47,399
Pero Den da un último paso.

399
00:13:47,600 --> 00:13:50,840
Y esto transforma un simple experimento en una

400
00:13:50,840 --> 00:13:52,580
lección maestra de ingeniería.

401
00:13:52,580 --> 00:13:55,019
Sí, porque la innovación no acaba cuando la

402
00:13:55,019 --> 00:13:56,059
pantalla se ve bonita.

403
00:13:56,519 --> 00:13:58,440
Durante la iteración, aprendieron cosas.

404
00:13:58,700 --> 00:14:00,519
Por ejemplo, que si no le daban un

405
00:14:00,519 --> 00:14:02,899
ancho fijo a las tarjetas, rebotaban por culpa

406
00:14:02,899 --> 00:14:03,940
del tamaño de los títulos.

407
00:14:04,259 --> 00:14:07,000
O usar emojis específicos para cada estado, claro.

408
00:14:07,220 --> 00:14:07,720
Eso es.

409
00:14:08,059 --> 00:14:10,460
Y Den le ordena a la IA que

410
00:14:10,460 --> 00:14:14,100
coja todos esos descubrimientos empíricos y los escriba

411
00:14:14,100 --> 00:14:16,799
de vuelta en el archivo original de especificaciones,

412
00:14:16,960 --> 00:14:18,820
en el spec .md.

413
00:14:18,960 --> 00:14:21,740
O sea, actualiza el texto con lo aprendido.

414
00:14:21,740 --> 00:14:23,860
Pero, ¿qué significa esto en realidad?

415
00:14:24,100 --> 00:14:25,659
¿Por qué es tan vital hacer esto si

416
00:14:25,659 --> 00:14:27,519
el código ya funciona perfectamente?

417
00:14:27,759 --> 00:14:30,120
Pues porque cambia la perspectiva por completo.

418
00:14:31,220 --> 00:14:34,080
Históricamente, un documento de requisitos era una servilleta

419
00:14:34,080 --> 00:14:36,360
glorificada que tirabas a la basura en cuanto

420
00:14:36,360 --> 00:14:38,080
escribías la primera línea de código.

421
00:14:38,960 --> 00:14:41,919
Ahora, ese documento se convierte en un artefacto

422
00:14:41,919 --> 00:14:43,039
independiente y vivo.

423
00:14:43,200 --> 00:14:44,860
Es la única fuente de verdad.

424
00:14:45,120 --> 00:14:45,600
Exacto.

425
00:14:45,600 --> 00:14:47,840
Es como, a ver, como si extrajera el

426
00:14:47,840 --> 00:14:50,360
ADN de la aplicación para separarlo del cuerpo

427
00:14:50,360 --> 00:14:51,059
físico, ¿no?

428
00:14:51,059 --> 00:14:52,779
Me encanta esa forma de verlo.

429
00:14:53,120 --> 00:14:55,340
Imagina que dentro de cinco años Den se

430
00:14:55,340 --> 00:14:57,299
harta de Hugo y quiere reescribir su blog

431
00:14:57,299 --> 00:14:58,980
en otro lenguaje que aún ni existe.

432
00:14:59,379 --> 00:15:01,519
Si no tuviera el documento, tendría que hacer

433
00:15:01,519 --> 00:15:02,740
ingeniería inversa.

434
00:15:03,139 --> 00:15:06,200
Leer código superviejo y volvería a cometer los

435
00:15:06,200 --> 00:15:08,539
mismos errores con los anchos de las tarjetas.

436
00:15:08,740 --> 00:15:09,139
Claro.

437
00:15:09,200 --> 00:15:11,700
Pero con este sistema, no empieza de cero

438
00:15:11,700 --> 00:15:13,320
ni se pone a discutir la lógica con

439
00:15:13,320 --> 00:15:14,120
la IA del futuro.

440
00:15:14,480 --> 00:15:16,759
Solo le da ese archivo superdetallado y le

441
00:15:16,759 --> 00:15:19,279
dice, esta es la filosofía inmutable de mi

442
00:15:19,279 --> 00:15:19,879
aplicación.

443
00:15:20,480 --> 00:15:22,100
Reconstrúyela con la tecnología de hoy.

444
00:15:22,259 --> 00:15:23,940
Es un cambio de paradigma total.

445
00:15:24,399 --> 00:15:27,019
Pasamos de venerar el código fuente a venerar

446
00:15:27,019 --> 00:15:27,759
el concepto.

447
00:15:27,820 --> 00:15:29,879
O sea, la magia de la IA no

448
00:15:29,879 --> 00:15:33,320
es escupir líneas de código desechable, sino obligarnos

449
00:15:33,320 --> 00:15:36,220
a pensar y documentar con precisión de cirujano.

450
00:15:36,419 --> 00:15:38,580
Y esto nos lleva a una reflexión final

451
00:15:38,580 --> 00:15:40,179
que es, vamos, provocadora.

452
00:15:40,480 --> 00:15:43,399
Si un documento vivo puede preservar la esencia

453
00:15:43,399 --> 00:15:45,419
exacta de un programa sin importar en qué

454
00:15:45,419 --> 00:15:48,299
esté escrito, ¿estamos ante el principio del fin

455
00:15:48,299 --> 00:15:49,379
del código heredado?

456
00:15:49,879 --> 00:15:52,059
El famoso código viejo intocable.

457
00:15:52,279 --> 00:15:53,740
Ese que todo el mundo tiene miedo de

458
00:15:53,740 --> 00:15:54,240
tocar, sí.

459
00:15:54,320 --> 00:15:57,000
Ya no tienes que parchear código frágil de

460
00:15:57,000 --> 00:15:57,799
hace quince años.

461
00:15:58,000 --> 00:16:00,159
Le pides a la máquina que lo regenere

462
00:16:00,159 --> 00:16:02,500
enterito con las librerías de esta semana.

463
00:16:03,139 --> 00:16:03,659
Exacto.

464
00:16:04,059 --> 00:16:06,500
Quizás en el futuro nuestro trabajo no sea

465
00:16:06,500 --> 00:16:09,720
leer código viejo, sino simplemente conversar con la

466
00:16:09,720 --> 00:16:13,299
IA para auditar esa constitución y esas especificaciones.

467
00:16:13,580 --> 00:16:16,539
Las máquinas ya tejerán y destejerán el código

468
00:16:16,539 --> 00:16:18,220
por debajo cada pocos meses.

469
00:16:18,500 --> 00:16:19,860
El código pasa a ser un código.

470
00:16:19,879 --> 00:16:21,139
Es un subproducto efímero.

471
00:16:21,139 --> 00:16:23,019
Y la idea es lo eterno.

472
00:16:23,059 --> 00:16:25,700
Una reflexión alucinante sobre cómo nos vamos a

473
00:16:25,700 --> 00:16:27,240
relacionar con lo que creamos.

474
00:16:27,519 --> 00:16:29,399
Merece la pena darle una vuelta cuando nos

475
00:16:29,399 --> 00:16:31,159
frustremos con un sistema antiguo.

476
00:16:31,320 --> 00:16:34,139
Antes de despedirnos, hasta el próximo programa os

477
00:16:34,139 --> 00:16:36,000
informamos de que las voces que oyes han

478
00:16:36,000 --> 00:16:38,200
sido generadas por la IA de Notebook LM

479
00:16:38,200 --> 00:16:40,879
y que dirigiendo el podcast se encuentra Julio

480
00:16:40,879 --> 00:16:43,379
Pablo Vázquez, un humano que te envía saludos.

481
00:16:43,419 --> 00:16:46,200
En caso de error, probablemente sean errores humanos.

482
00:16:46,519 --> 00:16:47,559
Nos escuchamos.

483
00:17:00,340 --> 00:17:00,659
Hasta el próximo episodio de hoy.

484
00:17:00,759 --> 00:17:02,600
Muchas gracias por tu atención.

485
00:17:11,950 --> 00:17:14,049
Esto es BIM Praxis.

486
00:17:14,289 --> 00:17:16,829
Nos escuchamos en el próximo episodio.

