11·7 dbw | Data Governance: De la gestión de datos a la generación de insights | Inscribite Sin Cargo

CURSO: BUENAS PRÁCTICAS DE DESARROLLO 💻

Vibe coding con IA: 10 buenas prácticas para codear rápido (sin perder el control)

Seguramente ya hayas escuchado hablar del término vibe coding. Por si no lo hiciste, es un término que inventó Andrej Karpathy (una eminencia del mundo de datos, machine learning e IA) para referirse a la práctica de programar con asistencia de una LLM, “al ritmo de la IA” (es la traducción más cercana que se puede del término vibe).

Pongamos atención al término “asistencia”. La manera correcta de vibecodear, desde mi punto de vista, es codear siendo asistido por la IA, no delegar el 100% del desarrollo.

¿Quién no intentó desarrollar una app desde cero a partir de un sólo prompt? “Quiero una app para inmobiliarias que ayude al administrador a calcular actualizaciones en el precio de los alquileres, tiene que tiene que tener un look & feel moderno y minimalista y tiene que correr en todas las plataformas”. Seguramente la IA te contestó “Sí jefe, no hay ningún problema” y luego pasaste el resto de tu tarde resolviendo errores, o mejor dicho, pidiéndole a la IA que los resuelva (caso real).

Para evitar este tipo de situaciones que atentan contra la escalabilidad del proyecto (y tu salud mental), te recomendamos que sigas los consejos que te dejamos a continuación.

Meme en referencia a las buenas prácticas de usar la IA como pair programmer.
La filosofía “y si no’ matamo’ no’ matamo'” no debería aplicar al momento de trabajar con IA.

1. Arrancá con un documento técnico auditable

Antes de escribir el primer prompt, empezá por escribir el objetivo que tenés en lenguaje natural, en tu propio idioma. Si estás haciendo una aplicación (que es uno de los casos más usuales), empezá por decir de forma clara y taxativa qué es lo que tiene que hacer dicha aplicación, y guardalo en el readme del repo (más sobre eso en el próximo punto). Esto permite que cualquier ser humano audite el proyecto, darle un norte claro a la LLM sobre cuál es el propósito general y versionar todos los cambios a medida que van aconteciendo.

Cosas que sí o sí deberías dejar claras: el objetivo funcional, las columnas esperadas y tipos de datos, reglas de negocio y consideraciones especiales, fórmulas que hagan falta para calcular variables de negocio, etc.

Tip: Usá una IA para que genere este mismo documento. Podés pedirle que se ponga en rol de un Jefe de producto y que redacte el documento con especificaciones funcionales. Podés hacer lo mismo con requerimientos técnicos o de stack de tecnología.

2. Adoptá el desarrollo basado en tests (también escritos en lenguaje natural)

Ahora los modelos también te pueden ayudar con la generación de tests y usarlos como una herramienta fundamental del desarrollo. Decile explícitamente y en lenguaje natural qué es lo que debería hacer cada prueba que quieras hacer. Ejemplo: “Si el alquiler sale $300.000 y la actualización es del 15%, el precio actualizado debe ser $345.000”. Como ves, el test tiene que ser 100% interpretable y auditable por un ser humano.

A mi me resultó útil armar un documento aparte con el listado de todos los tests, en lenguaje natural, que quiero que eventualmente se traduzcan a tests de python. Nuevamente, podés usar la IA para que te sugiera tests.

Importante: Auditar que los cambios que hagas en funcionalidades no modifiquen los tests que ya tenés. Esto justamente el propósito de tener tests. A veces la IA “se pasa de viva” y nos modifica los tests para que su código corra pase los controles.

3. Aplicá cambios chicos e incrementales

En la introducción ya te conté cómo me fue intentando hacer una app desde cero a partir de un solo prompt. No es por ahí, amigo/a.

La clave es hacer de a una modificación por vez: esto reduce el contexto, mejora la precisión y minimiza la cantidad de alucinaciones que van a haber (o en todo caso, su potencial impacto en el proyecto).

De la mano con el punto anterior de testing, acompañá cada cambio incremental con un mini test que se sume a la batería de los que ya tenés, sin modificar los tests anteriores.

4. Cuando cambie el alcance de la tarea, reseteá el chat

La memoria de las LLM eventualmente se agota y cuando venís trabajando duro y parejo eventualmente empieza a arrastrar supuestos que fueron cambiando con las distintas iteraciones. Por eso lo recomendable es que cada tanto reinicies el chat: lo que venís conversando no se pierde, sino que se compacta (lo que te ahorra costo por reducir los tokens que usás) y pasa a formar parte de una memoria no tan a corto plazo. Y en línea con eso…

5. Readme también es “remember me”

En cada conversación que arranques deberías recordarle a la LLM el contexto de lo que está haciendo. La mejor forma de hacerlo es manteniendo un readme estructurado, asertivo y constantemente actualizado. Las rutas de las carpetas, cómo ejecutar el código, cómo correr los tests, etc: estos modelos son excelentes para escribir y generar documentación así que usalo a tu favor (la contracara es que se acabaron las excusas para no entregar código claro y prístino).

Una imagen hecha por IA de cómo se siente trabajar en programación.
“Hacé una imagen de cómo se siente trabajar conmigo todos los días. Sé honesto y brutal”

6. No demores mucho en modularizar el código (y asistite con la LLM)

Decile chau al app.py de 500 líneas lo más pronto que puedas. Un buen punto para hacerlo es cuando veas que el MVP (la mínima idea que tenías en mente) es funcional aunque sea a grandes rasgos. En ese momento, pedile a la LLM que proponga una estructura y un plan de migración para dividir la lógica en carpetas (models/, data/, tests/, etc).

Y este punto aplica en todo momento pero acá especialmente: que siempre te explique la lógica antes de que corra cualquier cambio en el código. En línea también con el punto sobre los cambios incrementales, intentá que este plan de migración sea un conjunto de pasos chiquitos y auditables, no encares un refactor de un solo tirón.

7. Elegí la IA que mejor resuelva tu problema

Este punto sí es un poco más confuso por momentos: ¿qué conviene elegir entre las alternativas del mercado? No hay una respuesta estándar, pero nuestra recomendación sería que vayas probando varias y te quedes con la que resuelva mejor tu problema.

En deployr mis compañeros son fans de Cursor y Windsurf, mientras que yo soy fan de Copilot (estoy escribiendo mi tesis de maestría con dicha herramienta, para que te des una idea).

En síntesis: andá probando varios y fijate cuál resulta mejor.

8. Usá la IA para aprender, no para responder en automático

Cuando la LLM logre finalmente dar en el clavo y resolver ese punto complejo que no sabías por dónde encarar, no te quedes sólo con la respuesta, también pedile una explicación. Pedile que te haga un code review explicativo y detallado, así entendés la lógica y vas aprendiendo en el proceso, línea por línea, e inclusive animate a pedirle recursos adicionales. Y para puntos bonus: podés almacenar esos documentos también en una carpeta del proyecto e ir usándolo a modo de soporte de la LLM misma.

A mi también me gusta leer cómo razona la IA a medida que resuelve la instrucción que le dí, dónde encuentra inconsistencias, qué parte del código va atacando. En lo personal me resulta entretenido y siento que aprendo. Y en el medio me armo unos mates.

9. El control de versiones, más importante que nunca

Esto no es exclusivo del vibe-coding, pero no está de más recordarlo. Todo lo que venimos charlando sobre tests, documentos funcionales, código modular, cambios incrementales, etc, todo esto debe ser versionado. Cada cambio, cada tests, cada funcionalidad que sumamos al README, debe estar commiteada y subida al repo una vez hayamos constatado que las cosas andan bien.

Con un viejo y confiable repositorio de git estás más que bien para poder evitar que la cosa se desmadre si la LLM empieza a alucinar (o mejor dicho, cuando empiece a alucinar). Recordemos que es común que la IA empiece a hacer de las suyas, asi que cuando esto ocurra simplemente tenés que resetear el chat, volver a la versión anterior y listo.

10. Transparencia ante todo

Si alguien te pregunta, vos poné tu mejor cara de póker y decí que usaste IA. ¿Por qué no habrías de hacerlo? Hizo que aceleraras tus tiempos de entrega, te ayudó a armar un código decente y documentado y hasta inclusive aprendiste en el camino. La confianza se construye mostrando el proceso de forma transparente y no deberías tener miedo en mostrar cómo llegaste a lo que llegaste.

Eso sí: sólo vos sos responsable del código. Por eso es súper crítico que siempre entiendas qué es lo que te dice la LLM: si lo entendés, lo justificás y sabés explicar por qué es la mejor opción para resolver un problema determinado, nadie te puede decir nada.

En resumen…

Tu trabajo como dev no desapareció, pero sí va a evolucionar. Vas a pasar de “picar piedra” a diseñar soluciones, auditar y enseñar (y aprender) gracias a una IA.

Por eso hay que tener mucho cuidado: vibe codear no es hacer magia, es usar IA con sentido. Es súper importante que uses estas herramientas con responsabilidad y un propósito claro. Al combinar documentación y criterio humana, tests y buenas prácticas, la IA se convierte en una máquina de eficiencia y no en una fábrica de bugs.

¡Compartilo! 🚀
LinkedIn
WhatsApp
Email
Picture of Darío Abadie

Darío Abadie

También te puede interesar 👇

Compartimos lo que aprendemos descubrimos enseñamos creamos

👉 Categorías

📌 Temáticas

☕ Últimos posts

▶️ Dale Play

Del laboratorio a la implementación

Contactanos

Podemos ayudarte a que tus modelos de machine learning lleven a tu organización a un nuevo nivel. Completá el formulario y a la brevedad te contactaremos.

enfoques deployr

Foundations

Para construir una torre, primero hay que colocar los cimientos más sólidos.

Para aquellas empresas que necesitan diseñar y consolidar una arquitectura de datos.

Lo más importante es que tu organización pueda apropiarse de los datos y que éstos estén a tu disposición, y no al revés.

deployr foundations se centra en la construcción de un data lake / data warehouse y en la capacitación en su uso y explotación mediante herramientas de BI.