Escribimos
Vibe coding: qué pasa con el primer cliente
Las aplicaciones generadas con IA no se caen a la vez. Se rompen en un orden predecible, y casi siempre por sitios que nadie decidió.
Qué pasa el primer día
Nada. El primer cliente entra, usa la aplicación y funciona, porque hace exactamente lo que hacía cuando la probaste tú. Lo que cambia ese día es que ya hay alguien que no puede esperar a mañana.
Las cosas empiezan a romperse a las pocas semanas. Se rompen porque hay decisiones que nadie tomó, ni tú ni el modelo, y que solo aparecen cuando hay dos personas dentro a la vez.
Esto no va de si generar código con IA está bien o mal. Nosotros lo usamos todos los días. Va de qué falta cuando lo único que has pedido es que funcione. Si buscas la definición del término, está en vibe coding.
El orden en que se rompe
Se rompe antes lo que solo falla con más de un usuario, y después lo que solo falla con dinero de por medio. Lo que falla con el tiempo tarda más, y lo último en aparecer es lo que solo se nota cuando alguien mira desde fuera.
1. La autenticación va para uno y no para muchos
Con un usuario, cualquier cosa parece una sesión. Con varios aparecen las preguntas que no se hicieron: cuánto dura la sesión, cómo se expulsa a alguien que se ha ido de la empresa, qué ve un usuario si escribe en la barra de direcciones el identificador de otro.
Ese último caso es habitual: la pantalla comprueba qué te enseña, pero la consulta a la base de datos no comprueba de quién son los datos. Con una sola cuenta es invisible.
2. Los datos se guardan dos veces
El cliente pulsa dos veces porque la primera tardó. Se crean dos pedidos. Nadie decidió qué debía pasar ahí.
La versión cara es cuando la duplicación no se ve: dos registros idénticos con identificadores distintos, que luego se suman en un informe y cuadran mal por una cifra que nadie sabe de dónde sale.
3. Los pagos cobran pero no registran
El cobro se hace fuera, en la pasarela, y funciona. Lo que falta es lo que pasa después: la pasarela avisa de que ha cobrado y ese aviso llega una vez, o llega tres veces, o llega cuando la aplicación estaba reiniciándose.
Sin nada que reconcilie las dos partes, la cuenta de la pasarela y la de tu base de datos se separan despacio. Se descubre cuadrando el mes, cuando ya hay que devolverle dinero a alguien.
4. El correo sale de una cuenta personal
Funciona hasta que el volumen sube y todos los envíos salen de la misma dirección personal. A partir de ahí, parte de los avisos acaba en spam sin que nadie lo vea, porque no se comprueba si el correo se entregó.
5. Las claves están en el código
Las contraseñas de la base de datos y las llaves de la pasarela de pago, escritas dentro de los ficheros. Aguanta mientras el repositorio sea privado y lo abras solo tú.
Deja de aguantar el día que entra una persona nueva, o que el repositorio deja de ser privado. Entonces hay que cambiarlas todas, y como nadie sabe cuántos sitios las usan, cambiarlas rompe cosas.
Y una sexta que llega más tarde
Nadie sabe qué había ayer. No hay copias de seguridad, o las hay y nunca se ha restaurado ninguna. Se descubre el día que hace falta.
Síntoma, causa y qué se hace
| Síntoma | Causa | Qué se hace |
|---|---|---|
| Un cliente ve datos de otro | La consulta filtra en la pantalla, no en la base de datos | Se mueve la comprobación de permisos al acceso a datos y se prueba con dos cuentas |
| Pedidos repetidos | Sin clave única ni control de reintentos | Clave única de negocio y operaciones que se pueden repetir sin duplicar |
| La pasarela y tu base de datos no cuadran | El aviso de cobro se procesa una vez, o ninguna, o tres | Registro de cada aviso recibido, reintentos y un cuadre que se ejecuta solo |
| El cliente dice que no le avisaste | Envío desde cuenta personal, sin registro de entregas | Dominio propio con su configuración de envío y registro de qué se entregó |
| Hay que cambiar una clave y da miedo | Credenciales escritas en el código | Claves fuera del código, rotables, y un inventario de dónde se usa cada una |
| Nadie sabe qué había ayer | Sin copias de seguridad probadas | Copias automáticas y una restauración hecha delante del cliente |
Por qué no es culpa de quien lo montó
Porque nadie le pidió eso. Lo que pediste fue una aplicación que hiciera algo, y la tienes. Ninguna de las seis cosas de arriba aparece en la conversación con un modelo salvo que las nombres tú, y para nombrarlas hay que haberlas sufrido antes.
La primera versión de un producto es hoy la parte barata. Lo caro sigue siendo el segundo año, cuando hay clientes que ya no se pueden perder.
Qué hacemos con eso
Leerlo primero. Antes de decir si sirve o no sirve, abrimos lo que hay: la aplicación, la base de datos, lo que alguien está arreglando a mano cada semana y lo que ya se rompió una vez.
Casi nunca hay que tirarlo. Lo que montaste tiene dentro las decisiones reales de tu negocio, y eso no está escrito en ningún otro sitio. Qué se conserva y qué se cambia está contado, con el orden en que se hace, en de prototipo a producción.
Y si todavía no tienes clientes, quédate donde estás.
Por dónde empezar mañana
Coge tu aplicación y prueba las tres primeras a mano. Entra con dos cuentas distintas y cambia el identificador en la dirección. Pulsa dos veces el botón de pagar. Busca las claves con un buscador de texto en el repositorio.
Si alguna te da un resultado que no te gusta, ya sabes por dónde va la conversación. Si prefieres que lo miremos con el sistema delante, eso es un diagnóstico.
Ver también
¿Te está pasando en tu propio sistema?
El diagnóstico le pone número y orden sobre tu propio código.