Desarrollo Intermedio

Intent-Driven Development

Paradigma de desarrollo donde el programador describe la intención o resultado deseado, y la AI genera el código que lo implementa.

Pronunciación

/ɪnˈtent ˈdrɪvən dɪˈveləpmənt/
"in-TENT DRI-ven di-VE-lop-ment"
Escuchar en: Forvo

Qué es

Intent-Driven Development (IDD) es un paradigma emergente donde:

  1. El desarrollador describe lo que quiere (la intención)
  2. La AI genera el código que cumple esa intención
  3. El desarrollador revisa y refina el resultado

Es la evolución natural de la programación asistida por AI.

Pronunciación

IPA: /ɪnˈtent ˈdrɪvən dɪˈveləpmənt/

Suena como: “in-TENT DRI-ven di-VE-lop-ment”

De código a intención

┌─────────────────────────────────────────────────────────┐
│          EVOLUCIÓN DEL DESARROLLO                       │
├─────────────────────────────────────────────────────────┤
│                                                          │
│   1960s: Lenguaje máquina                               │
│   → MOV AX, 5                                           │
│                                                          │
│   1980s: Lenguajes de alto nivel                        │
│   → int x = 5;                                          │
│                                                          │
│   2000s: Frameworks                                     │
│   → const user = await User.findById(id);               │
│                                                          │
│   2020s: Copilot/Autocompletado                         │
│   → Escribe inicio, AI completa                         │
│                                                          │
│   2026: Intent-Driven Development                       │
│   → "Crea endpoint para obtener usuario por ID          │
│      con validación y manejo de errores"                │
│   → AI genera todo el código                            │
│                                                          │
└─────────────────────────────────────────────────────────┘

Cómo funciona

Flujo tradicional

Requisito → Diseño → Código línea por línea → Test → Deploy

Desarrollador escribe CADA línea de código

Flujo Intent-Driven

Intención → AI genera código → Desarrollador revisa → Refinamiento → Deploy

Desarrollador describe QUÉ quiere, no CÓMO hacerlo

Ejemplos prácticos

Ejemplo 1: Crear un endpoint

INTENCIÓN:
"Necesito un endpoint GET /api/users/:id que:
- Valide que el ID sea un UUID válido
- Busque el usuario en la base de datos
- Retorne 404 si no existe
- Retorne el usuario sin el campo password"

AI GENERA:
// routes/users.ts
import { z } from "zod";
import { db } from "@/lib/db";
import { NotFoundError } from "@/lib/errors";

const paramsSchema = z.object({
  id: z.string().uuid("ID must be a valid UUID"),
});

export async function GET(req: Request, { params }) {
  const { id } = paramsSchema.parse(params);

  const user = await db.user.findUnique({
    where: { id },
    select: {
      id: true,
      email: true,
      name: true,
      createdAt: true,
      // password excluded
    },
  });

  if (!user) {
    throw new NotFoundError(`User ${id} not found`);
  }

  return Response.json(user);
}

Ejemplo 2: Refactoring

INTENCIÓN:
"Refactoriza este componente para usar React Query
en lugar de useEffect + useState para el fetch"

AI analiza el código actual y genera la versión refactorizada
manteniendo el mismo comportamiento pero con mejor manejo de estado.

Niveles de abstracción

NivelEjemplo de intenciónComplejidad
Micro”Agrega validación de email”Baja
Función”Crea función de autenticación JWT”Media
Feature”Implementa sistema de notificaciones”Alta
Arquitectura”Migra a microservicios”Muy alta

Mejores prácticas

1. Sé específico en la intención

❌ "Haz un login"

✅ "Crea un flujo de login con:
   - Formulario con email y password
   - Validación client-side con Zod
   - Llamada a /api/auth/login
   - Manejo de errores con toast
   - Redirección a /dashboard en éxito"

2. Proporciona contexto

❌ "Agrega un botón"

✅ "Agrega un botón de 'Guardar cambios' al formulario
   de perfil que:
   - Use el componente Button existente
   - Esté deshabilitado mientras no hay cambios
   - Muestre loading mientras guarda"

3. Itera en refinamientos

Intención inicial → Código generado →
  "Ahora agrega tests" →
  "Mejora el manejo de errores" →
  Código final

Herramientas que soportan IDD

HerramientaFortaleza
Claude CodeContexto de repositorio completo
CursorIntegración IDE profunda
GitHub Copilot ChatIntegración con GitHub
Cody (Sourcegraph)Búsqueda semántica de código

El rol del desarrollador cambia

ANTES:                          DESPUÉS:
├── Escribir código             ├── Definir intenciones claras
├── Debuggear syntax            ├── Revisar código generado
├── Buscar documentación        ├── Validar lógica de negocio
└── Copiar/pegar de Stack       └── Guiar refinamientos
    Overflow

Limitaciones actuales

  • Contexto limitado - AI no siempre entiende todo el proyecto
  • Alucinaciones - Puede generar código incorrecto
  • Seguridad - Requiere revisión humana siempre
  • Casos edge - Puede ignorar escenarios límite

Términos relacionados

  • [[Agentic AI]] - AI que ejecuta tareas autónomamente
  • [[Repository Intelligence]] - AI que entiende tu código
  • [[Prompt Engineering]] - Arte de escribir buenas intenciones

Recuerda: Intent-Driven Development no reemplaza al desarrollador—cambia su rol de “escribir código” a “dirigir y validar”. El conocimiento técnico sigue siendo esencial para revisar lo que genera la AI.