# Manifiesto AIDD

El desarrollo de software está experimentando una transformación radical con la llegada de los modelos de IA. Como toda disrupción genera **incertidumbres y preocupaciones**. En este caso se ha identificado dos muy claras:

> La IA **destruye empleos** al reemplazar el rol del desarrollador.
    
>  La IA genera **soluciones incorrectas**, incompletas, o in-mantenibles.
    

Este manifiesto establece dos principios fundamentales para **generar confianza en el uso de la IA** en el desarrollo de software, que nos lleve a cumplir con los siguientes objetivos:

* El **humano** es estratega, colaborador y responsable.
    
* El **desarrollo** es productivo, mantenible y de calidad.
    

## ♻️ Human-In-The-Loop

La IA puede acelerar procesos, sugerir soluciones y detectar errores, pero el rol humano es insustituible. Como desarrollador, tu principal responsabilidad es **liderar, colaborar y supervisar**. Veamos cómo puedes maximizar este enfoque:

### Inicia con Propósito y Objetivos

Antes de utilizar cualquier herramienta de IA, define el “*qué*” y el “*por qué*” del proyecto. No basta con pedirle a la IA que “*haga algo*”; necesitas establecer los cimientos del trabajo.

Tu rol comienza mucho **antes de la primera línea** de código. Como humano, tienes la capacidad única de:

* Entender las necesidades reales del negocio y los usuarios
    
* Definir objetivos claros y medibles
    
* Establecer la visión estratégica del proyecto
    
* Determinar los requisitos no funcionales críticos
    

### Aporta Contexto a las Peticiones

La IA trabaja mejor cuando entiendes cómo formular tus requerimientos. Describe claramente el problema, proporciona ejemplos y señala las restricciones. Esa atención al detalle y a eliminar la ambigüedad es lo que retiene tu rol de programador.

La IA es poderosa, pero **necesita tu contexto** para ser verdaderamente efectiva. Cuando interactúas con ella:

* Proporciona información sobre el entorno técnico y de negocio
    
* Explica las restricciones y limitaciones existentes
    
* Comparte conocimiento sobre los usuarios finales
    
* Define los casos de uso específicos
    
* Reduce la ambigüedad y la incertidumbre
    

### Colabora, Guía y Aprende

Considera a la IA como un compañero de trabajo. Evalúa sus sugerencias, haz preguntas y mejora las respuestas **iterativamente**. Además, la colaboración con IA te ofrece una oportunidad para aprender nuevas perspectivas y enfoques.

El desarrollo con IA es una comunicación bidireccional. De hecho, se empieza a usar el término **Chop: Chat Oriented Programming**, para referirnos a esa conversación donde:

* Diriges el proceso iterativo de desarrollo
    
* Refinas las propuestas de la IA
    
* Aprendes nuevas técnicas y enfoques
    
* Compartes tu experiencia y conocimiento domain-specific
    

### Decide con Responsabilidad

La IA no comprende el contexto humano completo, ni **las implicaciones** éticas o comerciales de sus respuestas. Tú eres quien valida y aprueba el resultado final.

La **toma de decisiones** final siempre recae en ti, **una máquina nunca puede rendir cuentas** (*IBM dixit*). Esto implica:

* Evaluar las alternativas propuestas por la IA
    
* Considerar las implicaciones éticas y de seguridad
    
* Asumir la responsabilidad por el código generado
    
* Mantener el control sobre la dirección del proyecto
    

### Confía pero Comprueba

Aunque las herramientas de IA suelen ser precisas, **no son infalibles**. Siempre revisa el código generado, las sugerencias o los resultados automáticos. Las revisiones rigurosas aseguran la calidad y evitan errores críticos.

La verificación es esencial, ante el **no-determinismo** de la IA. Aplica el "**Confía pero comprueba**" (*Trust but verify, by R. Reagan*). Tu papel incluye:

* Revisar el código generado por la IA
    
* Validar que las soluciones cumplan los requisitos
    
* Realizar pruebas exhaustivas
    
* Asegurar la calidad del producto final
    

![Human in the Loop](https://cdn.hashnode.com/res/hashnode/image/upload/v1734683864974/a8129164-1083-4a4a-8508-cf46a1a4c873.png align="center")

> **El humano es estratega, colaborador y responsable.**

## ✅ AI Quality

Los humanos usamos herramientas para acelerar procesos desde el principio de los tiempos. El desarrollo impulsado por IA es otro acelerador. Pero, para **aumentar la productividad**, no solo debe centrarse en **escribir código rápidamente**, sino que también sea **confiable y escalable**. A continuación te desgloso los puntos clave:

### Completo y Aplicable a Todo el Ciclo

La IA no solo puede ayudarte en la codificación, sino también en pruebas, documentación y despliegue. Aprovecha su potencial en todas las etapas del ciclo de desarrollo.

El enfoque abarca **todo el ciclo de desarrollo**:

* Planificación y diseño arquitectónico
    
* Implementación y coding
    
* Testing y QA
    
* Documentación y mantenimiento
    
* Despliegue y operaciones
    

### Kaizen: Refinamiento Iterativo

Adopta la filosofía de **mejora continua**. Asumen la imperfección como parte del proceso. Cada interacción con la IA es una oportunidad para refinar el producto. Solicita revisiones, itera sobre soluciones y busca constantemente formas de mejorar.

El **refinamiento iterativo** es clave:

* Cada iteración mejora la calidad
    
* Se incorpora el feedback continuamente
    
* Se optimiza el proceso de desarrollo
    
* Se aprende de los errores y éxitos
    

### Mantenibilidad: Diseño y Documentación

Cualquier código que hayas escrito hace tiempo, es como si lo hubiera escrito, ¡imagínate si de verdad lo ha escrito otro! Utiliza la IA para generar comentarios, diagramas y guías que hagan tu software comprensible para otros desarrolladores (y para tu “yo” del presente y del futuro).

El código debe ser mantenible desde el primer día, aplica todo el conocimiento sobre **diseño y código limpio**:

* Arquitectura clara y bien documentada
    
* Patrones de diseño apropiados
    
* Código limpio y legible
    
* Documentación completa y actualizada
    

### Robustez: Control de Errores y Registro

La IA puede sugerir patrones para manejar errores de forma eficaz o configurar sistemas de registro (logging) detallados. Prioriza un diseño que anticipe fallos y mantenga registros claros para facilitar la depuración.

La **prevención y gestión de errores** es fundamental:

* Manejo exhaustivo de excepciones
    
* Logging detallado y útil
    
* Monitorización efectiva
    
* Recuperación ante fallos
    

### Fiabilidad: Validación con Testing

Nunca asumas que el código generado por IA está listo para producción. Diseña **pruebas unitarias, de integración y de rendimiento** para garantizar que tu software cumple con los estándares requeridos.

La validación debe ser rigurosa, pero con las herramientas adecuadas, no debe ser tediosa:

* Tests unitarios completos
    
* Pruebas de integración
    
* Testing de rendimiento y usabilidad
    
* Validación de seguridad
    

![AI Quality](https://cdn.hashnode.com/res/hashnode/image/upload/v1734684003778/e24ed8f7-c2d2-4fee-b94a-b5dfbec2063c.png align="center")

> **El desarrollo es productivo, mantenible y de calidad.**

## 🌿 Conclusión: Un Nuevo Paradigma de Desarrollo

El **Manifesto AIDD** establece un marco para aprovechar lo mejor de ambos mundos: la creatividad, experiencia y juicio del humano, combinados con la eficiencia y capacidades de la IA.

Como desarrollador, tu papel es más importante que nunca. **No eres reemplazado por la IA**, sino potenciado por ella. Tu responsabilidad es guiar el proceso, tomar decisiones informadas y asegurar que el resultado final cumpla con los más altos estándares de calidad.

La clave del éxito está en mantener un equilibrio entre la eficiencia que aporta **la IA y el control de calidad** que solo un humano puede proporcionar. Este manifiesto es tu guía para lograr ese equilibrio y crear software excepcional en la era de la IA.

Aplicando los principios del **Manifiesto AI-Driven Development** lograrás:

> Code Smarter, not harder.
