Software en tiempos de IA: Spec-driven development vs Parallel programming
Entre la precisión de las especificaciones y la velocidad del trabajo en paralelo.
Me mareo con tantas palabras nuevas.
¿Nuevos marcos de trabajo o humo fresco?
Soy Jorge Castaño y te comparto estrategias para mejorar tu carrera tech.
Hoy me pregunto:
¿Hacia dónde se dirige la programación a corto plazo?
Los commits de esta edición:
feat: sdd && pa + AI
chore: la fiesta pagana
fix: burbujas everywhere
¡Dale! (Zelda, dale)
El futuro inmediato del desarrollo de Software
Veamos dos conceptos distintos, pero que pueden (y deberían) coexistir.
.
¿Qué es Spec-Driven Development?
El SDD es un enfoque de trabajo donde el proceso de crear software comienza con la definición de especificaciones detalladas y verificables.
Es decir, que antes de escribir una sola línea de código, se define claramente el comportamiento esperado en lenguaje natural, ya sea en un Jira o tu herramienta de tickets favorita.
Ese ticket se convierte en la única fuente de verdad y en el mapa a seguir.
Después, a partir de esas specs se pueden generar automáticamente el código, las pruebas y la documentación.
Por favor, cuidado con las especificaciones generadas por IA, que nos conocemos. Luego hay tickets de 2000 palabras que lo único que hacen es marear developers.
Las specs tienen que ser muy específicas, pero ir al grano.
No vayamos a necesitar otra IA para reducir las 2000 palabras a 100.
La verdad que suena moderno por el nombre tan rimbombante que le han puesto, pero en la vida real las especificaciones cambian. Muy a menudo. Demasiado. Sería precioso que no, que todo fuera fijo y mágico, pero la realidad nos dice que los tickets cambian. Y con ello, el código.
Me parece demasiado rígido, funciona en serie (en vez de en paralelo) y penaliza la iteración. Huele un poco a consultora de los 90, a waterfall puro y duro. #hueleAViejo
.
¿Qué es Parallel Programming?
La programación en paralelo se refiere múltiples IAs o agentes trabajando en paralelo sobre distintas partes del proyecto.
No se trata de paralelismo computacional (hilos y núcleos), sino de paralelismo a nivel de desarrollo, ya que tú puedes hacer una tarea mientas la IA hace otra.
Y, claro, también puedes lanzar muchos agentes: un agente para el Front, otro para el Back, otro para los tests… todos los que se te ocurran (mientras tú repartes Democracia junto a tus hermanos Helldivers).
Todo a la vez en todas partes. #guiñoGuiño
Lo interesante de la programación en paralelo es que te conviertes en el manager de tu propio equipo de agentes. Ganas velocidad de desarrollo.
PERO
También aparece el peligro de añadir código basura infinito si no te encargas de revisar en profundidad todo lo que la IA haya generado o si no tienes ni idea de lo que estás haciendo.
Y el continuo cambio de contexto te puede destrozar el cerebro antes de tiempo. Pensar en algo, luego cambiar de tema, luego revisar código, luego mirar las specs de nuevo…
Eso le fríe el coco a cualquiera.
Por eso es interesante juntar ambos conceptos.
.
Cómo se complementan SDD y programación en paralelo
Supón que quieres montar una aplicación web con APIs y UI. Deberías seguir estos pasos:
Piensas y escribes la especificación inicial.
Se usa como única fuente de verdad y se lanzan varios agentes IA que trabajan en paralelo:
Agente A: convierte las specs en tareas técnicas que pueda seguir.
Agente B: genera el BackEnd según la API especificada.
Agente C: genera el FrontEnd y engancha los endpoints anteriores.
Agente D: escribe tests basados en especificaciones y el propio código.
Agente E: escribe la documentación.
Agente F: revisa que se cumplan las especificaciones o si hay cambios.
Todos trabajan en paralelo siempre que puedan, ya que el Front debería esperar al Back para conectar los servicios, la documentación tiene que esperar a saber los nombres de las funciones, las pruebas se lanzarán alguna vez con el código ya terminado…
Por último, un ser humano coordina y revisa el código. Esto por ahora no se puede delegar. Ni se debería delegar, creo yo. Que luego vienen las alucinaciones.
Ahí lo tienes: SDD + programación en paralelo con IA.
Las especificaciones son la partitura y las IAs son tu orquesta.
Pero si no pones tú el orden, tendrás ruido en vez de música.
.
Conclusión (si es que la hay)
Spec-Driven suena muy bonito, pero nadie se pone a actualizar el Jira con cada novedad hablada en reuniones o cuando negocio cambia de opinión. No es la panacea, por mucho que algunos lo griten en redes.
Como si fuera fácil decirla a la IA con un único prompt qué es lo que tiene que hacer…
Si a ti te sirve ahora mismo, genial.
Pero lo que yo he vivido con las especificaciones, las dudas y los debates infinitos sin llegar a una conclusión, frenarían el desarrollo del producto. SDD es demasiado estricto a día de hoy como para abandonar las metodologías ágiles.
El software es algo vivo.
Y sí, gracias a la IA no se perdería mucho tiempo en hacer los cambios cuando las necesidades cambien, pero seguiríamos dejando todo pendiente, abierto, a la espera del OK de negocio.
Parálisis por análisis.
En cambio, la programación en paralelo con IA es una realidad desde hace tiempo y hay que abrazarla. Todavía se necesitan humanos revisando código y sabiendo qué demonios hacer con las respuestas erróneas de la IA, pero puedes acelerar muchas cosas de manera automática. Especialmente si hay que hacer cosas de cero o cambios muy localizados.
Eso sí me gusta.
Delegar siempre está bien y más si son tareas sencillas, repetitivas y aburridas.
En cuanto a qué IA elegir, creo que será como los editores de código, es decir, que cada uno elegirá el que más le guste y habrá unos mejores para Front, otros para Back, para SRE... Yo ahora mismo uso Claude Code porque me gusta la integración que tiene con VS Code y para no cambiar de modelo cada vez que sale algo nuevo.
Eso sí, si me lleva mucho tiempo reajustar el prompt, actualizar Jira y specs, o modificar el código que escupe la IA, no me sirve ese agente. Se pierde mucho tiempo en leer a la IA, darle nuevas órdenes, tener que pensar cómo pedir las cosas y probar varias veces.
No, gracias.
Prefiero hacerlo a mano, sib. #viejuno
Lo importante al final es compartir lecciones aprendidas para que el equipo mejore su técnica trabajando con IA, que se impulse con cada descubrimiento, y actualizar el archivo AGENTS(.md), que es un estándar para todas las IAs, para que el agente que elijamos no tenga que investigar en todo el código con cada nueva tarea.
Los cambios de contexto seguirán estando presentes, por desgracia. Liberaremos algo de carga dejando que la IA revise las especificaciones y nos avise de incongruencias, pero estaremos a mil cosas a la vez.
Es algo que tendremos que trabajar y mejorar día a día, porque este parece el futuro inmediato de la programación.
.
¿Tú qué opinas: nuevos marcos de trabajo o humo fresco?
🪳 Otra semana sobreviviendo al Software
He comprado entradas para el concierto Kabrönes, antiguos miembros de Mägo de Oz que ahora tocan solo los temazos más clásicos y selectos. Son como la orquesta de las fiestas de tu pueblo, pero solo con canciones de Mägo.
Tremendos temardos, que se dice ahora.
Joder, estoy muy nervioso y quedan 2 meses para el concierto. Nostalgia de mis tiempos mozos #tiemposMejores
Izan y Petunia no saben quiénes son Mägo de Oz (pero conocen hasta el último detalle de la movida de La Oreja de van Gogh sin saberse una sola canción, solo porque sale en redes) y se ríen de que las personas puedan tener recuerdos, emociones y nostalgia.
No saben que les pasará lo mismo dentro de 20 años con… no sé… Aitana, por ejemplo.
La vida…
📰 Noticias (por si no te has enterado)
🫧 Miedo y sospechas de burbuja en la IA - Michael Burry, analista financiero que predijo la crisis del 2008, acaba de invertir los 1.100 millones de dólares de los fondos de inversión que controla, contra Palantir y Nvidia. El mundo IA está temblando y se empieza a hablar de burbuja. He visto muchos artículos por ahí, pero dejo el de Xataka, que está en español y cuentan cosas extra. (enlace aquí)
🤖 La IA ha roto las entrevistas en remoto - Interesante artículo sobre el estado de las entrevistas de trabajo y posibles soluciones para el futuro. Largo de leer, pero con ideas para aplicar en nuestros procesos. TL;DR - enfocarnos en el razonamiento humano, la resolución de problemas y entender/explicar código en vez de escribirlo. (enlace aquí)
🗺️ Tu URL es tu estado - Minitutorial para entender las partes de una URL y cómo recuperar el estado de la navegación sin tener que guardar información extra. Útil si lo usas con moderación; no quieras tener una URL de 700 caracteres (como ya implementó un excompi de curro en un proyecto antiguo). (enlace aquí)
🧬 Una nueva startup quiere editar embriones humanos - Respaldada por familias con problemas hereditarios, Manhattan Genomics quiere eliminar enfermedades de todos los bebés del futuro. Evitar problemas siempre suena bien, pero, si empezamos a retocar genomas, ¿dónde ponemos el freno? La delgada línea entre la salud y la estética. (enlace aquí)
Y también, Siri funcionará con Google Gemini, Musk quiere que sus satélites sean centros de datos, acuerdo de 38.000 millones de dólares entre OpenAI y Amazon y un nuevo Macbook por menos de mil dólares.
Y eso es todo.
Una semana más sobreviviendo al Software 💻 💻 💻 💻 💻 💻
Chao, pescao 🐠
* La promesa puede no ser cierta.






Buenas Jorge, interesante artículo.
Para mí SDD es un gran apoyo para las metodologías ágiles: permite incrementar la velocidad del equipo al disponer de especificaciones detalladas de las tareas que se han añadido al sprint que serán completadas (más o menos bien, todo hay que decirlo) por la IA.
Como yo lo veo, el foco está en definiciones lo más concretas posible (tickets de máximo dos o tres días de trabajo "humano”) que evitan que la IA empiece a alucinar. De nada sirve tener una especificación para una carga equivalente a varios meses de trabajo, ya que además de no alinearse muy bien con las metodologías ágiles al no entregar valor de forma frecuente, también facilita que la IA empiece a hacer lo que no debe.