Por qué el desarrollo guiado por especificaciones falla a gran escala y cómo resolverlo
(arcturus-labs.com)Este post sostiene que el desarrollo guiado por especificaciones (Spec-Driven Development), aunque es prometedor para tareas de programación con agentes de IA, fracasa al escalar en el contexto de productos globales debido a la ambigüedad de las especificaciones en lenguaje natural. Para resolverlo, el autor propone un sistema jerárquico y evolutivo de "especificaciones vivas" (living specifications) que integra código e IA conversacional; esto forma un ciclo de retroalimentación para las decisiones de producto, reduce las discrepancias y hace posible un desarrollo asistido por IA eficaz a gran escala.
Principales razones por las que el desarrollo guiado por especificaciones falla a gran escala
El desarrollo guiado por especificaciones tradicional presenta problemas en especificaciones de productos globales por las siguientes razones:
-
Ambigüedad de las especificaciones en lenguaje natural: las especificaciones a gran escala se escriben en lenguaje natural, por lo que son imprecisas y ambiguas. La IA puede generar código de forma consistente a partir de la especificación, pero aun así desviarse de la intención del desarrollador. Por ejemplo, si se redacta la especificación de producto de un sitio web completo y un agente de IA lo construye en dos días, el resultado puede ajustarse a la especificación pero no a la intención real. Si para resolverlo se siguen agregando secciones detalladas sin fin para aclarar la ambigüedad, el documento se vuelve excesivamente verboso, se pierde el beneficio de escribir una especificación y, al final, termina convirtiéndose en un lenguaje formalizado que no es muy distinto del código.
-
Falta de contexto compartido y comprensión del mundo: la IA tiene conocimiento amplio gracias a datos públicos, pero no entiende las prácticas particulares de una empresa, las reglas de un codebase ni la "forma de trabajar" interna. En cambio, los humanos acumulan eso mediante prueba y error, revisiones de PR, reuniones y conversaciones informales. Un solo documento de contexto no basta para capturarlo.
-
Ineficiencia al procesar aclaraciones: los humanos, gracias al contexto compartido, resuelven de forma eficiente solo las ambigüedades relevantes (por ejemplo, no preguntan por partes ya claras como la elección de una librería), mientras que la IA, al carecer de esos matices contextuales, hace preguntas innecesarias o todavía tiene capacidades muy incipientes para aclarar dudas. Esto hace que la IA se parezca a un "intern demasiado ambicioso" que necesita guía constante.
Por estos problemas, el desarrollo guiado por especificaciones para productos globales no es realista sin mecanismos adicionales y no logra igualar la fluidez de la colaboración humana.
Ejemplos concretos
- Escenario extremo guiado por especificaciones: un desarrollador redacta la especificación completa de un sitio web y la IA genera el producto terminado en dos días, pero por la ambigüedad el resultado difiere de la intención.
- Proceso de aprendizaje humano: un desarrollador aprende las normas de la empresa mediante cambios iniciales de código, revisiones de PR, reuniones y conversaciones de pasillo, mientras que la IA no logra acumular ese conocimiento implícito.
- Codebase envejecido: en flujos de trabajo tradicionales, como los desarrolladores leen y modifican código sin especificaciones, el resultado termina siendo una "colcha de retazos" (
patchwork quilt) inconsistente, y las decisiones de producto perdidas quedan "pisoteadas" (trammeling over).
Hace referencia a un post anterior (relacionado con roaming RAG) para señalar que la IA es hábil explorando estructuras jerárquicas enlazadas. No presenta estudios de caso formales; se apoya principalmente en ejemplos hipotéticos y explicativos.
Solución propuesta
El post propone una solución conectada centrada en el manejo de la ambigüedad, la construcción de contexto y la integración con el código:
Activar la aclaración mediante clarificación conversacional
- Implementar interacciones de ida y vuelta entre la IA y el desarrollador (por ejemplo, una experiencia de chat) para identificar y aclarar ambigüedades en la especificación. En tareas pequeñas, la IA puede generar varias versiones de implementación a partir de la especificación para hacer visibles las ambigüedades, y luego compararlas y discutirlas con el desarrollador.
Construir la visión del mundo del agente mediante especificaciones jerárquicas
- Usar una especificación global con estructura jerárquica para entender las normas de la empresa y del codebase. En lugar de un solo documento gigante, la especificación principal enlaza a documentos de subespecificaciones:
- Estrictamente acopladas a la estructura del código, como especificaciones por archivo (versiones de resumen por directorio).
- De estilo wiki en formato libre (aunque cuidando no caer en una complejidad excesiva).
- Aprovechar la capacidad de la IA para navegar enlaces (como se menciona en el post anterior).
El papel del código como especificación definitiva
- Tratar el código existente como una especificación clara de nivel hoja para supuestos de bajo nivel. En vez de apuntar a una regeneración completa desde una especificación maestra, orientar los cambios a partir del codebase actual. Se reconoce que el lenguaje natural no puede garantizar siempre la misma salida y se evita exigir un nivel de precisión imposible.
Especificaciones vivas: uso y evolución
- Convertir las especificaciones en "documentos vivos" que evolucionan junto con el codebase:
- La IA navega la especificación global para alinear la implementación y preservar las decisiones de producto mejor que un flujo de trabajo humano.
- El desarrollador extrae la información relevante de la especificación conversando con la IA (sin necesidad de leer todo); durante el scoping se marcan las discrepancias.
- Los cambios en el código disparan actualizaciones de la especificación: se comparan y editan frente a la especificación existente, e incluir cambios de especificación en el PR.
- Beneficios: facilita que el ingeniero entienda el impacto de los cambios, aumenta la participación de los product managers al poder editar especificaciones legibles y permite que la dirección consulte la evolución del producto. La IA automatiza el problema de que estos documentos, como ocurre con la documentación tradicional, no se mantengan actualizados.
Conclusión y recomendación
El futuro del desarrollo guiado por especificaciones no está en perfeccionar especificaciones en lenguaje natural, sino en sistemas que manejen la ambigüedad mediante conversación, contexto jerárquico y una base en el código. El verdadero avance serían especificaciones vivas mantenidas por IA, que formen un ciclo de retroalimentación para preservar decisiones de producto, mantener el contexto y eliminar la brecha entre especificación e implementación. Recomendación: adoptar especificaciones jerárquicas y evolutivas integradas con código e IA conversacional para lograr flujos de trabajo de IA escalables que superen al desarrollo humano tradicional.
1 comentarios
Se siente muchísimo como un post lanzado tras hacer correr GPT.