# FEATURES: Investigación de Funcionalidades — [Nombre del Proyecto]

> Análisis técnico de cada feature antes de comprometerse a implementarla.
> El objetivo es estimar esfuerzo, identificar dependencias y anticipar riesgos
> ANTES de comenzar el desarrollo.
> Autor: [nombre] | Fecha: YYYY-MM-DD

---

## Cómo usar esta plantilla

Para cada feature:
1. Describir qué debe hacer (desde la perspectiva del usuario)
2. Investigar cómo se implementa técnicamente
3. Estimar la complejidad con base en la investigación, no en intuición
4. Identificar dependencias bloqueantes
5. Documentar riesgos técnicos específicos

Escala de complejidad:
- **S** (Small): <= 1 día de desarrollo
- **M** (Medium): 2-4 días
- **L** (Large): 1-2 semanas
- **XL** (Extra Large): > 2 semanas — candidata a dividir en sub-features

---

## Feature 1: [Nombre de la feature]

**Requisitos que implementa**: REQ-001, REQ-002
**Módulo**: [Nombre del módulo del sistema]

### Descripción funcional
[Qué hace esta feature desde la perspectiva del usuario final.
Flujo happy path en 3-5 pasos.]

### Análisis técnico

**Capa backend**:
[Qué endpoints se necesitan. Qué modelos y tablas se crean o modifican.
Qué lógica de negocio no trivial tiene. Operaciones async, jobs, etc.]

**Capa frontend**:
[Qué componentes. Qué formularios. Qué integración de API.
State management necesario.]

**Integraciones externas**:
[APIs de terceros, servicios externos, webhooks, etc.]

**Cambios a BD**:
[Tablas nuevas, columnas nuevas, índices, constraints.]

### Complejidad estimada

| Componente | Estimación | Justificación |
|-----------|------------|---------------|
| Backend API | [S/M/L/XL] | [por qué] |
| Frontend UI | [S/M/L/XL] | [por qué] |
| Integración externa | [S/M/L/XL / N/A] | [por qué] |
| Tests | [S/M/L/XL] | [por qué] |
| **Total feature** | **[S/M/L/XL]** | |

### Dependencias

| Dependencia | Tipo | Estado | Bloqueante |
|-------------|------|--------|------------|
| [Feature o componente que debe estar listo primero] | Interna / Externa | Disponible / Pendiente | Sí / No |
| [Librería o servicio externo necesario] | Externa | | |

### Riesgos técnicos

| Riesgo | Probabilidad | Impacto | Mitigación |
|--------|-------------|---------|------------|
| [Qué puede salir mal técnicamente] | Alta/Media/Baja | Alto/Medio/Bajo | [Cómo prevenirlo o manejarlo] |

### Prototipo / PoC necesario

[ ] No — suficientemente conocida para implementar directamente
[ ] Sí — necesita spike de [N días] para validar: [qué se necesita validar]

---

## Feature 2: [Nombre de la feature]

**Requisitos que implementa**: REQ-0XX
**Módulo**:

### Descripción funcional


### Análisis técnico

**Capa backend**:

**Capa frontend**:

**Integraciones externas**:

**Cambios a BD**:

### Complejidad estimada

| Componente | Estimación | Justificación |
|-----------|------------|---------------|
| Backend API | | |
| Frontend UI | | |
| Tests | | |
| **Total feature** | | |

### Dependencias

| Dependencia | Tipo | Estado | Bloqueante |
|-------------|------|--------|------------|
| | | | |

### Riesgos técnicos

| Riesgo | Probabilidad | Impacto | Mitigación |
|--------|-------------|---------|------------|
| | | | |

---

## Feature 3: [Nombre de la feature]

**Requisitos que implementa**:
**Módulo**:

### Descripción funcional


### Análisis técnico

**Capa backend**:

**Capa frontend**:

**Cambios a BD**:

### Complejidad estimada

| Componente | Estimación | Justificación |
|-----------|------------|---------------|
| **Total feature** | | |

### Dependencias

### Riesgos técnicos

---

## Resumen de estimaciones

| Feature | Complejidad | Dependencias bloqueantes | PoC necesario |
|---------|-------------|--------------------------|---------------|
| Feature 1: [nombre] | [S/M/L/XL] | [ninguna / sí: X] | No / Sí |
| Feature 2: [nombre] | | | |
| Feature 3: [nombre] | | | |

**Esfuerzo total estimado**: [N semanas con [M] desarrolladores]
**Features de alto riesgo que necesitan atención temprana**: [lista]

---

## Orden de implementación recomendado

[Propuesta de orden de implementación considerando dependencias, riesgo y valor.
Justificar por qué este orden y no otro.]

1. [Feature] — base para las siguientes / mayor riesgo técnico / mayor valor
2. [Feature] — depende de #1 / desbloquea features de frontend
3. [Feature]
4. [Feature]

**Criterio de ordenamiento**: [qué principio guía el orden — ej. "riesgo primero",
"valor al usuario antes posible", "dependencias técnicas"]
