Un vibe coder y un ingeniero de software no se distinguen por la herramienta que usan, sino por dónde empieza y dónde termina su responsabilidad. Este artículo de Yusuf Aytas parte de una analogía histórica: hace casi una década, muchos desarrolladores confundían su identidad profesional con Java y trataban cada problema a través de esa lente. Hoy ocurre algo similar con la IA generativa de código, con la diferencia de que la IA no es un lenguaje más: altera la economía de producir software.
La primera diferencia está en la métrica. El vibe coder mide el tiempo hasta la primera versión funcional, útil para prototipos. El ingeniero de software mide el tiempo hasta una fusión segura en una base de código compartida, un indicador que incluye coste de revisión, de pruebas, de despliegue, de rollback, de coordinación y de mantenimiento futuro. Si la IA abarata generar código pero encarece fusionarlo de forma segura, el equipo no ha ganado tanto como cree.
La segunda diferencia es la unidad de trabajo. La salida generada por un modelo puede ser voluminosa y desordenada; una gestión de cambios real exige cambios acotados, explicables y revisables. La tercera es la autoría: el vibe coder puede escudarse en que "lo generó el modelo"; el ingeniero asume la propiedad y convierte cada salida en una decisión consciente antes de pedir revisión.
La cuarta diferencia es el grado de prescripción. Un modelo no comprende el sistema: carece del contexto que reside en incidentes pasados, migraciones, comportamiento de clientes, convenciones de equipo o requisitos de cumplimiento. Por eso, el ingeniero experimentado no le da más libertad, sino menos: define la interfaz, el alcance y los límites de la tarea. La producción necesita restricciones; la libertad sin más sirve para proyectos de fin de semana.
