Últimamente, sólo se oye hablar del vibe coding, donde desarrollas software charlando con un LLM “tuneado” para la programación. Le vas pidiendo lo que necesitas hasta que obtienes algo que (aparentemente) funciona. Y ese “aparentemente” es la clave aquí. Incluso Andrej Karpathy, quien inventó el término, dijo que era excelente para proyectos desechables de fin de semana donde toda persona, incluso sin experiencia en programación, podía explorar y construir rápidamente artefactos que más o menos funcionan.
A pesar de todo el “ruido”, el vibe coding nunca debería usarse para más que esto. Mejorar / refactorizar / depurar el resultado de una sesión de vibe coding para meterlo en producción requeriría:
- experiencia en programación y
- tanto tiempo para probar y corregir el código como si hubieras empezado el proyecto desde cero con un proceso “tradicional”.
Pero ¿y si pudiéramos mantener la magia del desarrollo asistido por IA sin la imprevisibilidad del código generado por LLM? Ahí es donde entra el vibe modeling.
¿Qué es el vibe modeling?
Vibe modeling es el proceso de construir software mediante la interacción conversacional con un LLM entrenado para modelado, no para la programación. Primero, con la ayuda del LLM, se crea el modelo, la especificación del sistema que quieres. Y luego pasas a un enfoque basado en modelos / low-code para generar código determinista a partir de esos “vibed models”. Piensa en el vibe modeling como un enfoque de vibe coding basado en modelos.
Repito, en el vibe modeling, el LLM no pretende generar código sino modelos. Y el paso de modelo a código se realiza con plantillas de generación de código “clásicas” (o cualquier otro tipo de técnicas semánticamente equivalentes de modelado ejecutable). Esto tiene dos ventajas principales sobre el vibe coding:
- Resultado comprensible. Un usuario puede validar la calidad del resultado (es decir la calidad del modelo generador por el LLM) incluso si no tiene experiencia en programación. Los modelos son más abstractos y cercanos al dominio del usuario y su “expertise” y, por lo tanto, un usuario debería poder entenderlos con un esfuerzo limitado. Es cierto que aún puede requerirse algún conocimiento básico de modelado, pero es mucho más fácil validar un modelo (por ejemplo, un diagrama de clases visual) que un montón de líneas de código textuales.
- Generación de código confiable. El proceso de generación es determinista. Si el modelo es bueno, sabemos que el código será también bueno y no habrá necesidad de verificarlo.
El vibe modeling es solo una de las posibles estrategias de low-modeling y podría combinarse con ellas. Por ejemplo, podrías dar al LLM (como contexto para el prompt) cualquier documento que ya describa el dominio que quieres modelar (entrevistas, manuales, tutoriales, …) y luego chatear con el LLM para mejorar / adaptar este primer modelo parcial.
¿Existe ya alguna herramienta de vibe modeling?
No exactamente. Las herramientas low-code (como BESSER o Mendix) ofrecen cada vez más funciones basadas en la IA. Pero en este momento, se centran principalmente en algún tipo de autocompletado inteligente para modelos. No tanto en ofrecer una especie de chatbot integrado que puedas usar para vibe modeling. En mi equipo hemos implementado un enfoque tree-of-thoughts para el modelado de dominios y ahora estamos trabajando en la integración de un chatbot en el editor online de modelado de BESSER para pasar de este modelo inicial a un modelo completo vía un proceso iterativo de refinamiento que sería basado en una aproximación vibe modeling. Pero tendrás que esperar un poco más para eso.
Mientras esperas, me encantaría saber de ti: 👉 ¿Qué características te gustaría tener en una experiencia ideal de vibe modeling?
Últimos comentarios