Qué es y qué no es el vibe coding

Vibe coding es una forma de programar en la que usas un modelo de IA (LLM) para que genere código a partir de instrucciones en lenguaje natural, iterando por conversación ("haz esto", "corrige aquello", "añade un botón", etc.).

La idea central es que tu rol se desplaza de "escribir líneas de código" a definir el objetivo, probar lo generado y pedir cambios.

"Vibe coding puro"

Confiar mucho en la IA y no entender del todo el código.

  • Útil para: Prototipos rápidos o proyectos "desechables"
  • Riesgo: Arriesgado si se pretende algo estable
Desarrollo asistido responsable

La IA acelera, pero tú revisas, pruebas y asumes la responsabilidad del resultado.

Para un entorno sanitario, esta es la aproximación sensata.

Qué NO es el vibe coding

  • No es "magia" que garantice software correcto o seguro
  • No sustituye el control de calidad
  • La IA puede equivocarse, "alucinar" librerías o proponer soluciones inseguras

Objetivo del vibe coding

El objetivo práctico es acelerar la creación de pequeñas soluciones (sobre todo prototipos, utilidades internas y automatizaciones) reduciendo la fricción de aprender sintaxis y "boilerplate". Se busca llegar antes a algo que funcione para poder validar una idea.

Para profesionales sanitarios, el objetivo realista no suele ser "crear un gran sistema", sino:
  • Automatizar tareas repetitivas
  • Explorar datos
  • Prototipar herramientas internas
  • Mejorar documentación y trazabilidad

Casos de uso realistas

Ejemplos de bajo riesgo y alto valor docente (típicos "primeros proyectos"):

A) Datos y reporting (muy habitual)

  • Limpiar y transformar Excel/CSV Normalizar nombres de fármacos, agrupar consumos, detectar duplicados
  • Generar informes automáticos PDF/Word a partir de plantillas
  • Crear gráficos y cuadros de mando Indicadores internos sencillos (siempre con validación)

B) Utilidades internas

  • Calculadoras no clínicas Soporte logístico/gestión: conversores de unidades, estimaciones de stock, recordatorios operativos
  • Formularios internos Registrar incidencias o tareas (si el hospital lo permite y sin datos sensibles)

C) Automatización de flujos

  • Automatizar tareas entre herramientas (correo → hoja de cálculo → informe) con plataformas tipo "workflow", o scripts locales

D) Prototipos para "enseñar" una idea

  • Una web sencilla que demuestre un flujo (subo un CSV, obtengo un resumen)
  • Un prototipo de interfaz para discutir requisitos con el equipo (aunque luego lo implemente IT)
Límites importantes (realistas)
No deberías usar vibe coding "puro" para software que afecte a decisiones clínicas o que procese datos sensibles sin gobernanza, validación y controles. La rapidez aquí puede jugar en contra.

Fortalezas y debilidades

Puntos fuertes
  • Barrera de entrada menor: puedes empezar sin dominar un lenguaje desde el día 1, si aceptas que tendrás que aprender lo mínimo para ejecutar y verificar
  • Prototipado muy rápido (especialmente UIs simples, scripts de datos, automatizaciones pequeñas)
  • Menos trabajo mecánico (código repetitivo, estructuras estándar)
Puntos débiles (los que de verdad te pueden hacer daño)
  • Falsa sensación de corrección: que "ejecute" no significa que esté bien (lógica incorrecta, sesgos, errores silenciosos)
  • Seguridad y dependencias: el código generado puede introducir vulnerabilidades o usar paquetes inadecuados; si no revisas, se te cuela
  • Mantenibilidad: si nadie entiende el código, arreglarlo o ampliarlo se vuelve caro (y a veces imposible)
  • Cumplimiento y privacidad: puedes perder trazabilidad de cómo se tratan datos personales. En sanidad esto es crítico: los datos de salud son categoría especial en el RGPD (art. 9) y exigen base legal y salvaguardas
  • Riesgo de reidentificación: "anonimizado" no es un adjetivo mágico; es un proceso basado en riesgo y puede fallar si se hace mal

Buenas prácticas

Pensadas para un entorno sanitario:

1

Define el alcance y el criterio de aceptación

Especifica qué entra y qué no entra ("solo funciona con CSV con estas columnas", "no guarda datos", "no se conecta a internet").

Pide a la IA que te devuelva un plan antes del código (pasos, ficheros, supuestos).

2

Trata el código de IA como "no confiable"

Mentalidad: "junior rápido": útil, pero requiere verificación.

Nunca pases a "producción" algo sin revisión y pruebas.

3

Pruebas mínimas obligatorias

  • Pide a la IA que genere tests (unitarios o de validación) y casos de prueba con datos sintéticos
  • Valida con un pequeño conjunto de "golden data" conocido por ti
4

Seguridad básica desde el inicio

  • Escanea dependencias y vulnerabilidades con herramientas específicas (idealmente distintas del asistente que genera el código)
  • "Higiene" de dependencias: usa librerías conocidas, fija versiones, evita paquetes raros
5

Privacidad y RGPD: regla simple

  • Nunca pegues datos identificables o clínicos en un chat o herramienta no aprobada
  • Si necesitas ejemplos, usa datos sintéticos o anonimizados correctamente (y recuerda que anonimizar es un proceso con riesgo y metodología)
6

Documenta lo mínimo

  • Un README de 1 página: qué hace, cómo se ejecuta, entradas/salidas, limitaciones, y cómo validar resultados
  • Guarda los prompts "buenos" (te sirven como SOP docente)

Errores a evitar (los más comunes)

  • Copiar/pegar y desplegar sin entender ni probar
  • Meter credenciales (API keys, contraseñas) en prompts o en el propio código
  • Aceptar librerías "inventadas" o enlaces dudosos sin verificar
  • Construir herramientas que afecten a decisiones clínicas sin validación formal, control de cambios y revisión por IT/Seguridad
  • Creer que "está anonimizado" porque quitaste el nombre: en sanidad, reidentificar a veces es sorprendentemente fácil si quedan combinaciones de variables

El prompting en vibe coding

En vibe coding el prompting cambia porque no estás pidiendo "una respuesta", sino una modificación verificable en un artefacto (código, archivos, dependencias, tests) dentro de un entorno concreto (IDE, repo, runtime, CI). Eso introduce particularidades que en un LLM "general" son opcionales, pero aquí marcan la diferencia.

1
Especificar el "contrato" de entrega (Definition of Done)

En un LLM general basta con "explícame X". En vibe coding conviene pedir criterios comprobables:

  • Qué debe hacer exactamente
  • Qué entradas/salidas
  • Qué casos límite
  • Cómo sabrás que está bien (tests, comandos, ejemplo de ejecución)
Ejemplo:
"Añade un script que lea dispensaciones.csv y genere kpi_mensual.xlsx. Debe: (1) validar columnas obligatorias, (2) fallar con mensaje claro si faltan, (3) incluir un test mínimo con datos sintéticos."
2
Describir el contexto técnico explícito (y sus límites)

El modelo no "adivina" tu stack real. Cuanto más concreto:

  • Lenguaje/versiones
  • Estructura de carpetas
  • Dependencias permitidas
  • Restricciones (sin internet, sin Docker, sin instalar nada, etc.)
Ejemplo:
"Proyecto Python 3.11. No uses pandas (solo estándar + openpyxl). Directorio actual: src/ y tests/. No se permite acceso a red."
3
Pedir primero plan y riesgos, luego cambios

En vibe coding es frecuente que el agente "se lance" y cambie muchas cosas. Para reducir deuda:

Ejemplo:
"Dame un plan de 5 pasos + lista de archivos a tocar + riesgos. Cuando lo tengas, aplica cambios."

Esto es especialmente útil con editores/agentes (Cursor/Windsurf/Claude Code/Aider).

4
Forzar incrementalidad: cambios pequeños + verificación por etapa

El prompting efectivo en vibe coding es iterativo y orientado a "diff":

Ejemplo:
"Primero crea el esqueleto (sin lógica). Después añadimos validaciones. Luego tests."

Pedir "hazme la app completa" suele producir:

  • Código grande
  • Errores silenciosos
  • Difícil de depurar
5
Pedir artefactos de control: tests, logs, y cómo ejecutar

En un LLM general, "explícalo". En vibe coding:

  • "Incluye tests unitarios / de regresión."
  • "Añade logging mínimo."
  • "Indica comandos exactos para ejecutar y validar."
Ejemplo:
"Incluye pytest con 3 casos: normal, falta columna, csv vacío. Dime pip install ... y pytest -q."
6
Limitar el espacio de decisión del modelo

Para evitar soluciones raras:

  • Restringe librerías
  • Define patrón arquitectónico
  • Define estilo y convenciones
Ejemplo:
"No uses frameworks. Solo una función pura compute_kpis(df) y una capa de IO separada."
7
Instrucciones de seguridad y privacidad más estrictas

En sanidad, esto es diferencial:

  • "No incluyas datos reales en ejemplos."
  • "No pidas credenciales."
  • "No escribas a servicios externos."
  • "Usa datos sintéticos."

Y pide explícitamente:

"Si detectas que te he dado datos sensibles, dímelo y trabaja solo con datos sintéticos."
8
Pedir explicaciones "operativas", no solo conceptuales

En vibe coding interesa:

  • Por qué cambiaste X archivo
  • Qué trade-offs
  • Qué quedó pendiente
Ejemplo:
"Tras el cambio, resume: archivos tocados, motivo, riesgos, y cómo revertir."

Plantilla de prompt "bueno" para vibe coding (copia/pega)

Objetivo: qué debe conseguir
Contexto: stack, versiones, estructura, limitaciones
Criterios de aceptación: comportamiento comprobable
Restricciones: librerías permitidas, estilo, performance, seguridad
Plan y ejecución: "primero plan, luego cambios", incremental
Verificación: tests + comandos
Ejemplo compacto
"Quiero un script en Python 3.11 que lea dispensaciones.csv y genere kpi_mensual.xlsx. Sin pandas, solo stdlib + openpyxl. Debe validar columnas fecha, principio_activo, cantidad y fallar con error claro si faltan. Añade pytest con 3 casos (normal, falta columna, csv vacío). Primero dame plan (pasos + archivos a tocar), luego aplica cambios y dime cómo ejecutar."

Errores típicos cuando se usa prompting "de LLM general" en vibe coding

  • Pedir "haz todo" sin criterios de aceptación → deuda técnica
  • No dar contexto (versiones/estructura) → código que "parece" correcto pero no encaja
  • No exigir tests/comandos de verificación → errores silenciosos
  • Permitir dependencias libres → soluciones difíciles de mantener o auditar
  • Usar datos reales → riesgo innecesario

Herramientas de vibe coding

Explora las diferentes herramientas disponibles para vibe coding. Haz clic en cualquier tarjeta para ver información detallada.

Filtrar herramientas

Glosario de términos

Definiciones de los términos técnicos y abreviaturas utilizados en esta guía, ordenados alfabéticamente. Usa el buscador para encontrar rápidamente lo que necesitas.

Agente / Agéntico
Tipo de sistema de IA que no solo responde preguntas, sino que puede ejecutar acciones de forma autónoma: leer archivos, escribir código, ejecutar comandos, etc. Un enfoque "agéntico" significa que la IA toma iniciativa y realiza tareas complejas por sí misma.
Aider
Herramienta de código abierto que permite usar modelos de IA para editar código directamente desde la terminal, con integración nativa con Git para mantener un historial de cambios.
API (Application Programming Interface)
Interfaz que permite que diferentes programas se comuniquen entre sí. En vibe coding, se usa frecuentemente para conectar con servicios de IA. Una API key es una "contraseña" que te identifica al usar un servicio.
AWS (Amazon Web Services)
Plataforma de servicios en la nube de Amazon. Ofrece servidores, almacenamiento, bases de datos y herramientas de IA, entre otros servicios.
Backend
La parte "invisible" de una aplicación: servidores, bases de datos, lógica de negocio. Es lo que procesa los datos y responde a las peticiones del usuario. Contrasta con el frontend.
Boilerplate
Código repetitivo y estándar que se necesita escribir en casi todos los proyectos pero que no aporta lógica específica. La IA es muy útil para generar este tipo de código automáticamente.
CI/CD (Continuous Integration / Continuous Deployment)
Prácticas de desarrollo que automatizan las pruebas y el despliegue del código. CI verifica automáticamente que el código nuevo no rompa nada; CD lo publica automáticamente.
Claude Code
Herramienta de Anthropic que permite usar Claude como agente de terminal para modificar proyectos de código existentes, ejecutar comandos y hacer cambios en múltiples archivos.
Commit
En Git, un "guardado" del estado del código en un momento dado. Cada commit tiene un mensaje descriptivo y permite volver atrás si algo sale mal.
Completions
Las respuestas o sugerencias que genera un modelo de IA. En herramientas de código, se refiere a las sugerencias de autocompletado que ofrece la IA mientras escribes.
Créditos
Sistema de pago por uso en algunas herramientas de IA. Cada acción consume créditos, y cuando se agotan debes esperar a que se renueven o pagar más.
CSV (Comma-Separated Values)
Formato de archivo de texto simple para almacenar datos tabulares (como una hoja de cálculo). Cada línea es una fila y los valores se separan por comas. Muy común para exportar/importar datos.
Cursor
Editor de código con IA integrada que permite iterar rápidamente sobre proyectos. Puede hacer cambios en múltiples archivos simultáneamente siguiendo instrucciones en lenguaje natural.
Datos sintéticos
Datos ficticios generados artificialmente que imitan las características de datos reales pero no contienen información de personas reales. Esenciales para probar código sin comprometer la privacidad.
Dependencias
Librerías o paquetes externos que tu código necesita para funcionar. Si tu proyecto usa una librería para leer Excel, esa librería es una dependencia.
Deploy / Desplegar
Publicar una aplicación para que esté disponible para los usuarios. Implica subir el código a un servidor y configurarlo para que funcione correctamente.
Deuda técnica
Problemas acumulados en el código por tomar "atajos" o no hacer las cosas bien desde el principio. Como una deuda financiera, hay que "pagarla" eventualmente con tiempo y esfuerzo para arreglar los problemas.
Diff
Comparación que muestra las diferencias entre dos versiones de un archivo o código. Permite ver exactamente qué líneas se añadieron, eliminaron o modificaron.
Docker
Tecnología de contenedores que permite empaquetar una aplicación con todas sus dependencias para que funcione igual en cualquier ordenador. Como una "caja" que contiene todo lo necesario.
Frontend
La parte visible de una aplicación: botones, formularios, diseño, lo que el usuario ve e interactúa. Se ejecuta en el navegador del usuario. Contrasta con el backend.
Git
Sistema de control de versiones que guarda el historial de cambios de tu código. Permite volver a versiones anteriores, trabajar en equipo sin pisarse, y mantener un registro de quién cambió qué y cuándo.
GitHub
Plataforma web para almacenar y colaborar en proyectos de código usando Git. También ofrece herramientas como GitHub Copilot para asistencia con IA.
Golden data
Conjunto de datos de referencia cuyo resultado correcto ya conoces. Se usa para validar que el código produce los resultados esperados comparando con estos datos "de oro".
Hosting
Servicio de alojamiento web que permite que tu aplicación esté disponible en internet. El servidor donde "vive" tu aplicación.
IDE (Integrated Development Environment)
Programa completo para escribir código que incluye editor, herramientas de depuración, terminal y más. Ejemplos: VS Code, IntelliJ, PyCharm. Es como un "Word para programadores" pero con muchas más funciones.
IntelliJ / PyCharm
IDEs profesionales desarrollados por JetBrains. IntelliJ está orientado a Java; PyCharm a Python. Son potentes pero tienen una curva de aprendizaje elevada.
JetBrains
Empresa checa que desarrolla herramientas de programación profesionales, incluyendo IntelliJ, PyCharm, y su propio asistente de IA.
Librería / Paquete
Código reutilizable creado por otros que puedes incorporar a tu proyecto para no "reinventar la rueda". Por ejemplo, una librería para leer archivos Excel o para hacer gráficos.
LLM (Large Language Model)
Modelo de inteligencia artificial entrenado con grandes cantidades de texto que puede entender y generar lenguaje natural. Ejemplos: GPT, Claude, Gemini. Son la base del vibe coding.
Logging
Práctica de registrar eventos y mensajes mientras el código se ejecuta. Útil para depurar problemas: "el código llegó hasta aquí", "el valor de X es 5", etc.
Open-source (Código abierto)
Software cuyo código fuente está disponible públicamente para que cualquiera pueda verlo, usarlo, modificarlo y distribuirlo. Ejemplos: Linux, Python, Aider.
PHI (Protected Health Information)
Información de salud protegida. Cualquier dato que pueda identificar a un paciente y esté relacionado con su salud, tratamiento o pago de servicios sanitarios. Requiere protección especial por ley.
Prompt / Prompting
Las instrucciones o preguntas que das a una IA. El "prompting" es el arte de escribir prompts efectivos para obtener los resultados deseados. En vibe coding, un buen prompt marca la diferencia.
Prototipo
Versión inicial y simplificada de una aplicación, creada para probar una idea o mostrar un concepto. No está pensada para uso real, sino para validar y aprender antes de invertir más esfuerzo.
Pull Request (PR)
En GitHub/Git, una solicitud para incorporar cambios de código. Permite que otros revisen los cambios antes de aceptarlos. Es una práctica estándar de control de calidad.
pytest
Framework popular de Python para escribir y ejecutar tests automáticos. Permite verificar que el código funciona correctamente con comandos simples.
React
Librería de JavaScript creada por Facebook para construir interfaces de usuario. Muy popular para crear aplicaciones web modernas e interactivas.
Refactorización
Proceso de mejorar la estructura interna del código sin cambiar su comportamiento externo. Como "ordenar la casa": funciona igual, pero está más limpio y es más fácil de mantener.
Repo / Repositorio
Carpeta de proyecto gestionada con Git que contiene todo el código, historial de cambios y configuración. Puede estar en tu ordenador (local) o en plataformas como GitHub (remoto).
RGPD (Reglamento General de Protección de Datos)
Normativa europea que regula el tratamiento de datos personales. En sanidad es especialmente relevante porque los datos de salud tienen protección reforzada (art. 9). Incumplirlo puede suponer multas graves.
Runtime
El entorno donde se ejecuta el código. Incluye el intérprete del lenguaje, las librerías instaladas y la configuración del sistema. "En runtime" significa "mientras el programa está funcionando".
Script
Programa pequeño, generalmente en un solo archivo, que automatiza una tarea específica. Por ejemplo, un script que lee un CSV y genera un informe.
Stack (tecnológico)
Conjunto de tecnologías, lenguajes y herramientas que se usan en un proyecto. Por ejemplo: "Python + Flask + PostgreSQL" o "React + Node.js + MongoDB".
Terminal / Línea de comandos
Interfaz de texto para interactuar con el ordenador escribiendo comandos. Más potente que la interfaz gráfica pero requiere conocer los comandos. También llamada consola, shell o CLI.
Tests unitarios
Pruebas automáticas que verifican que partes específicas del código (funciones, métodos) funcionan correctamente. Se ejecutan automáticamente y avisan si algo se rompe.
Tokens
Unidades en que los modelos de IA dividen el texto para procesarlo. Aproximadamente, 1 token ≈ 4 caracteres en inglés o ≈ 1 palabra corta. Los servicios de IA suelen cobrar por tokens consumidos.
UI (User Interface)
Interfaz de usuario: todo lo que el usuario ve y con lo que interactúa (botones, menús, formularios, etc.). Un buen diseño de UI hace que la aplicación sea fácil y agradable de usar.
Vibe coding
Forma de programar usando IA donde describes lo que quieres en lenguaje natural y la IA genera el código. Tu rol pasa de "escribir código" a "definir objetivos, probar y pedir cambios".
VS Code (Visual Studio Code)
Editor de código gratuito y muy popular desarrollado por Microsoft. Extensible mediante plugins, incluyendo asistentes de IA como GitHub Copilot o Continue.
Windsurf
Editor de código con IA integrada (antes Codeium). Tiene un enfoque "agéntico" con su sistema Cascade, que permite iterar rápidamente sobre proyectos.
Workflow
Flujo de trabajo automatizado que conecta varias acciones o herramientas. Por ejemplo: "cuando llegue un email con datos, extraerlos y añadirlos a una hoja de cálculo automáticamente".

Fuentes

Referencias y recursos utilizados para elaborar esta guía:

🚀💉🔥

IMPORTANTE

El vibe coding puede generar adicción y, una vez empiezas a ver resultados, no hay vuelta atrás.

Estás avisado/a... 😏