La IA no necesita solo buenos prompts... necesita disciplina.

Search for a command to run...

No comments yet. Be the first to comment.
Línea de apertura (opcional, para el feed): Claude Code empieza cada sesión desde cero. No recuerda qué archivos modificaste ayer. No recuerda el bug que arreglaste la semana pasada. No recuerda que m

Línea de apertura (opcional, para el feed): En cada sesión nueva, Claude abre el README, escanea el árbol de directorios, busca el pom.xml, encuentra src/main/java... 33 tool calls para orientarse. Co

Línea de apertura (opcional, para el feed): Llevas tres meses usando Claude en tu proyecto Java. Los mismos errores de hace tres meses siguen apareciendo. == para comparar BigDecimal. LocalDate.now()

Línea de apertura (opcional, para el feed): Tu equipo hizo commit directo a main porque "era un cambio pequeño". Dos horas después, toda la rama de producción estaba rota, tres desarrolladores bloquea

Línea de apertura (opcional, para el feed): Llevas seis meses usando Claude para tus decisiones de arquitectura Java. Eres más rápido. Pero ya no sabes si elegirías Spring Security + JWT o Keycloak si

La Inteligencia Artificial está transformando la forma en que desarrollamos software. Hoy podemos pedirle a un asistente que implemente una funcionalidad, escriba pruebas unitarias, genere documentación o incluso refactorice un módulo completo en cuestión de segundos.
Sin embargo, existe un error muy común: pensar que el objetivo de la IA es únicamente producir código.
En un equipo profesional, escribir código representa solo una parte del trabajo. Lo que realmente garantiza la calidad del software es el proceso de ingeniería.
La IA también debe aprender ese proceso.
Imaginemos que incorporamos un nuevo desarrollador al equipo.
¿Le diríamos simplemente:
"Aquí está el requerimiento. Programa."
Por supuesto que no.
Le explicaríamos cómo trabaja el equipo:
Cómo nombrar las ramas.
Cómo hacer commits.
Cuándo crear un Pull Request.
Qué pruebas ejecutar.
Qué estándares de calidad cumplir.
Cómo documentar los cambios.
Lo mismo debería ocurrir con una IA.
Si no le damos reglas claras, actuará como un excelente programador... pero un pésimo compañero de equipo.
En lugar de darle únicamente un requerimiento funcional, podemos establecer un flujo de trabajo que siempre debe respetar.
Por ejemplo:
Crear una rama feature/*
Implementar la funcionalidad
Ejecutar pruebas unitarias
Hacer commits pequeños y descriptivos
Crear un Pull Request
Esperar revisión
No hacer merge automáticamente
Estas instrucciones parecen simples, pero reducen enormemente los errores y mantienen la consistencia del proyecto.
Veamos un flujo típico de trabajo.
Nunca trabajar directamente sobre la rama principal.
git checkout -b feature/registro-clientes
Esto permite aislar los cambios y facilita las revisiones.
En lugar de un único commit enorme, es preferible registrar avances pequeños.
Un buen mensaje sería:
Agregar validación de correo electrónico
En lugar de:
Cambios
o
Fix
Los commits pequeños facilitan encontrar errores y entender la evolución del código.
Antes de integrar los cambios al repositorio principal, estos deben ser revisados.
El Pull Request permite:
Revisar el código.
Detectar problemas.
Discutir mejoras.
Ejecutar pipelines automáticos.
La IA también debería seguir este paso, en lugar de integrar cambios directamente.
Antes de aprobar un Pull Request conviene validar aspectos como:
Todas las pruebas pasan.
No existen errores de compilación.
Se respetan las convenciones del proyecto.
La cobertura de pruebas es suficiente.
No existen vulnerabilidades conocidas.
El objetivo es que el código llegue al repositorio principal con el menor riesgo posible.
Muchas veces pedimos:
"Genera los tests."
Pero pocas veces especificamos cómo deben ser esos tests.
Existen algunas reglas fundamentales.
Es mejor probar escenarios similares a producción.
Por ejemplo, en lugar de utilizar:
Usuario("A")
es preferible:
Usuario(
"José Díaz",
"Perú"
)
Esto permite detectar problemas que no aparecen con ejemplos demasiado simples.
Un buen conjunto de pruebas no valida únicamente el caso exitoso.
También debería contemplar:
Valores nulos.
Cadenas vacías.
Listas vacías.
Valores mínimos.
Valores máximos.
Un solo elemento.
Miles de elementos.
Muchos errores aparecen precisamente en esos escenarios.
Uno de los errores más comunes es validar cómo está implementada una clase.
Por ejemplo:
assertEquals(3, cache.size())
Ese tipo de prueba puede romperse después de una refactorización, aunque el comportamiento siga siendo correcto.
Lo recomendable es validar únicamente el resultado observable.
Es decir:
buscarCliente(id)
debe devolver el cliente esperado.
No importa cómo lo logró internamente.
Cada prueba debe preparar correctamente su entorno y dejarlo limpio al finalizar.
Si un test deja datos residuales en la base de datos o modifica archivos temporales, puede provocar fallos en otras pruebas.
Una buena prueba siempre es independiente de las demás.
Durante años enseñamos a los desarrolladores:
patrones de diseño,
buenas prácticas,
Git,
pruebas,
integración continua,
revisiones de código.
Ahora debemos hacer exactamente lo mismo con la IA.
No basta con darle un excelente prompt.
Hay que enseñarle cómo trabaja nuestro equipo.
Cuando una IA comprende el proceso completo, deja de ser un generador de código y se convierte en un colaborador confiable dentro del ciclo de desarrollo.
La calidad del software no depende únicamente de la inteligencia de quien escribe el código.
Depende de la disciplina con la que ese código es construido, probado, revisado e integrado.
La Inteligencia Artificial está acelerando el desarrollo como nunca antes, pero esa velocidad solo será una ventaja si viene acompañada de procesos sólidos.
En los próximos años veremos una diferencia muy clara entre los equipos que simplemente usan IA para programar y aquellos que enseñan a la IA a seguir su proceso de ingeniería.
Y probablemente esa diferencia será uno de los factores que definan qué organizaciones construyen software de calidad y cuáles solo generan código rápidamente.
¿En tu organización la IA ya sigue un proceso de desarrollo (Git, Pull Requests, revisiones, pruebas y estándares), o todavía se limita a generar código cuando se le solicita?
Déjalo en los comentarios. Será interesante conocer cómo están incorporando la IA en sus equipos de desarrollo.
Enjoy!