186 lines
9.7 KiB
Markdown
186 lines
9.7 KiB
Markdown
## Tech Debt
|
||
|
||
Analiza cuantitativamente la deuda técnica del proyecto y visualiza las puntuaciones de salud junto con el impacto en la eficiencia de desarrollo. Rastrea las mejoras mediante análisis de tendencias, calcula costos temporales y crea un plan de mejora priorizado.
|
||
|
||
### Uso
|
||
|
||
```bash
|
||
# Verificar configuración del proyecto para analizar deuda técnica
|
||
ls -la
|
||
"Analizar la deuda técnica de este proyecto y crear un plan de mejora"
|
||
```
|
||
|
||
### Panel de Salud del Proyecto
|
||
|
||
```text
|
||
Puntuación de Salud del Proyecto: 72/100
|
||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||
|
||
📊 Puntuaciones por Categoría
|
||
├─ Frescura de dependencias: ████████░░ 82% (Actualizadas: 45/55)
|
||
├─ Completitud de documentación: ███░░░░░░░ 35% (Faltan README, documentos API)
|
||
├─ Cobertura de pruebas: ██████░░░░ 65% (Objetivo: 80%)
|
||
├─ Seguridad: ███████░░░ 78% (Vulnerabilidades: 2 Medium)
|
||
├─ Arquitectura: ██████░░░░ 60% (Dependencias circulares: 3 ubicaciones)
|
||
└─ Calidad del código: ███████░░░ 70% (Complejidad alta: 12 archivos)
|
||
|
||
📈 Tendencias (últimos 30 días)
|
||
├─ Puntuación general: 68 → 72 (+4) ↗️
|
||
├─ Elementos mejorados: 12 ✅
|
||
├─ Nueva deuda: 3 ⚠️
|
||
├─ Deuda resuelta: 8 🎉
|
||
└─ Velocidad de mejora: +0.13/día
|
||
|
||
⏱️ Impacto temporal de la deuda
|
||
├─ Desaceleración del desarrollo: -20% (desarrollo de nuevas funciones toma 1.25x tiempo normal)
|
||
├─ Tiempo de corrección de errores: +15% (tiempo promedio de corrección 2h → 2.3h)
|
||
├─ Revisión de código: +30% (tiempo adicional por complejidad de comprensión)
|
||
├─ Incorporación: +50% (tiempo necesario para que nuevos miembros entiendan)
|
||
└─ Tiempo de retraso acumulado: Equivalente a 40 horas/semana
|
||
|
||
🎯 Efectos esperados de mejora (basado en tiempo)
|
||
├─ Efecto inmediato: Velocidad de desarrollo +10% (después de 1 semana)
|
||
├─ Efecto a corto plazo: Tasa de errores -25% (después de 1 mes)
|
||
├─ Efecto a medio plazo: Velocidad de desarrollo +30% (después de 3 meses)
|
||
├─ Efecto a largo plazo: Tiempo de mantenimiento -50% (después de 6 meses)
|
||
└─ ROI: Inversión 40 horas → Recuperación 120 horas (3 meses)
|
||
```
|
||
|
||
### Ejemplos Básicos
|
||
|
||
```bash
|
||
# Análisis detallado de puntuación de salud
|
||
find . -name "*.js" -o -name "*.ts" | xargs wc -l | sort -rn | head -10
|
||
"Calcular la puntuación de salud del proyecto y evaluar por categorías"
|
||
|
||
# Análisis de impacto de deuda de TODO/FIXME
|
||
grep -r "TODO\|FIXME\|HACK\|XXX\|WORKAROUND" . --exclude-dir=node_modules --exclude-dir=.git
|
||
"Evaluar estos TODOs por impacto de deuda (tiempo×importancia)"
|
||
|
||
# Verificación de salud de dependencias
|
||
ls -la | grep -E "package.json|Cargo.toml|pubspec.yaml|go.mod|requirements.txt"
|
||
"Calcular puntuación de frescura de dependencias y analizar riesgos y efectos de actualizaciones"
|
||
```
|
||
|
||
### Colaboración con Claude
|
||
|
||
```bash
|
||
# Análisis integral de deuda técnica
|
||
ls -la && find . -name "*.md" -maxdepth 2 -exec head -20 {} \;
|
||
"Analizar la deuda técnica de este proyecto desde estas perspectivas:
|
||
1. Calidad del código (complejidad, duplicación, mantenibilidad)
|
||
2. Salud de dependencias
|
||
3. Riesgos de seguridad
|
||
4. Problemas de rendimiento
|
||
5. Falta de cobertura de pruebas"
|
||
|
||
# Análisis de deuda arquitectural
|
||
find . -type d -name "src" -o -name "lib" -o -name "app" | head -10 | xargs ls -la
|
||
"Identificar deuda técnica a nivel arquitectural y proponer un plan de refactorización"
|
||
|
||
# Plan de mejora priorizado
|
||
"Evaluar la deuda técnica según estos criterios y presentar en formato de tabla:
|
||
- Impacto (Alto/Medio/Bajo)
|
||
- Costo de corrección (tiempo)
|
||
- Riesgo técnico (posibilidad de falla del sistema, pérdida de datos)
|
||
- Efecto de reducción de tiempo por mejora
|
||
- Momento recomendado de implementación"
|
||
```
|
||
|
||
### Ejemplos Detallados
|
||
|
||
```bash
|
||
# Detección automática del tipo de proyecto y análisis
|
||
find . -maxdepth 2 -type f \( -name "package.json" -o -name "Cargo.toml" -o -name "pubspec.yaml" -o -name "go.mod" -o -name "pom.xml" \)
|
||
"Basado en el tipo de proyecto detectado, analizar:
|
||
1. Deuda técnica específica del lenguaje/framework
|
||
2. Desviaciones de las mejores prácticas
|
||
3. Oportunidades de modernización
|
||
4. Estrategia de mejora gradual"
|
||
|
||
# Análisis de métricas de calidad del código
|
||
find . -type f -name "*" | grep -E "\.(js|ts|py|rs|go|dart|kotlin|swift|java)$" | wc -l
|
||
"Analizar la calidad del código del proyecto y presentar estas métricas:
|
||
- Funciones con alta complejidad ciclomática
|
||
- Detección de código duplicado
|
||
- Archivos/funciones demasiado largos
|
||
- Falta de manejo adecuado de errores"
|
||
|
||
# Detección de deuda de seguridad
|
||
grep -r "password\|secret\|key\|token" . --exclude-dir=.git --exclude-dir=node_modules | grep -v ".env.example"
|
||
"Detectar deuda técnica relacionada con seguridad y proponer prioridad de corrección y contramedidas"
|
||
|
||
# Análisis de falta de pruebas
|
||
find . -type f \( -name "*test*" -o -name "*spec*" \) | wc -l && find . -type f -name "*.md" | xargs grep -l "test"
|
||
"Analizar la deuda técnica de cobertura de pruebas y proponer estrategia de pruebas"
|
||
```
|
||
|
||
### Matriz de Prioridades de Deuda
|
||
|
||
```text
|
||
Prioridad = (Impacto × Frecuencia) ÷ Costo de corrección
|
||
```
|
||
|
||
| Prioridad | Impacto en desarrollo | Costo de corrección | Efecto de reducción de tiempo | Retorno de inversión | Plazo de respuesta |
|
||
| ---------------------------- | --------------------- | ------------------- | ----------------------------- | ----------------------------- | ------------------ |
|
||
| **[P0] Respuesta inmediata** | Alto | Bajo | > 5x | Inversión 1h→Reducción 5h+ | Inmediato |
|
||
| **[P1] Esta semana** | Alto | Medio | 2-5x | Inversión 1h→Reducción 2-5h | Dentro de 1 semana |
|
||
| **[P2] Este mes** | Bajo | Alto | 1-2x | Inversión 1h→Reducción 1-2h | Dentro de 1 mes |
|
||
| **[P3] Este trimestre** | Bajo | Bajo | < 1x | Inversión=tiempo de reducción | Dentro de 3 meses |
|
||
|
||
### Criterios de Evaluación por Tipo de Deuda
|
||
|
||
| Tipo de deuda | Método de detección | Impacto en desarrollo | Tiempo de corrección |
|
||
| ------------------------------- | ------------------------------------------ | ----------------------------------------------------- | -------------------- |
|
||
| **Deuda arquitectural** | Dependencias circulares, alto acoplamiento | Gran alcance de impacto en cambios, pruebas difíciles | 40-80h |
|
||
| **Deuda de seguridad** | Escaneo CVE, OWASP | Riesgo de vulnerabilidades, cumplimiento | 8-40h |
|
||
| **Deuda de rendimiento** | N+1, pérdidas de memoria | Aumento tiempo de respuesta, consumo de recursos | 16-40h |
|
||
| **Deuda de pruebas** | Cobertura < 60% | Detección tardía de errores, calidad inestable | 20-60h |
|
||
| **Deuda de documentación** | Falta README, documentos API | Tiempo de incorporación aumentado | 8-24h |
|
||
| **Deuda de dependencias** | No actualizadas por 2+ años | Riesgo de seguridad, problemas de compatibilidad | 4-16h |
|
||
| **Deuda de calidad del código** | Complejidad > 10 | Tiempo de comprensión/corrección aumentado | 2-8h |
|
||
|
||
### Cálculo de Impacto de Deuda Técnica
|
||
|
||
```text
|
||
Impacto = Σ(peso de cada elemento × valor medido)
|
||
|
||
📊 Indicadores de impacto medibles:
|
||
├─ Impacto en la velocidad de desarrollo
|
||
│ ├─ Tiempo de comprensión del código: +X% (proporcional a complejidad)
|
||
│ ├─ Alcance de impacto en cambios: Y archivos (medido por acoplamiento)
|
||
│ └─ Tiempo de ejecución de pruebas: Z minutos (pipeline CI/CD)
|
||
│
|
||
├─ Impacto en la calidad
|
||
│ ├─ Tasa de ocurrencia de errores: +25% cada 10 de complejidad
|
||
│ ├─ Tiempo de revisión: líneas de código × coeficiente de complejidad
|
||
│ └─ Riesgo por falta de pruebas: Alto riesgo si cobertura < 60%
|
||
│
|
||
└─ Impacto en la eficiencia del equipo
|
||
├─ Tiempo de incorporación: +100% por falta de documentación
|
||
├─ Concentración de conocimiento: Atención necesaria si tasa de contribuidor único >80%
|
||
└─ Lugares de corrección por duplicación de código: tasa de duplicación × frecuencia de cambio
|
||
```
|
||
|
||
### Cálculo de ROI basado en tiempo
|
||
|
||
```text
|
||
ROI = (tiempo reducido - tiempo de inversión) ÷ tiempo de inversión × 100
|
||
|
||
Ejemplo: Resolución de dependencias circulares
|
||
├─ Tiempo de inversión: 16 horas (refactorización)
|
||
├─ Efecto de reducción (mensual):
|
||
│ ├─ Tiempo de compilación: -10 min/día × 20 días = 200 min
|
||
│ ├─ Tiempo de depuración: -2 horas/semana × 4 semanas = 8 horas
|
||
│ └─ Adición de nuevas funciones: -30% reducción de tiempo = 12 horas
|
||
├─ Tiempo de reducción mensual: 23.3 horas
|
||
└─ ROI en 3 meses: (70 - 16) ÷ 16 × 100 = 337%
|
||
```
|
||
|
||
### Notas
|
||
|
||
- Auto-detecta el lenguaje y framework del proyecto para realizar análisis específicos
|
||
- Evalúa la puntuación de salud en escala de 0-100 puntos, considerando saludable 70+ puntos y necesitando mejora <50 puntos
|
||
- Calcula costos temporales y efectos de mejora de forma específica, apoyando la toma de decisiones basada en datos
|
||
- Para conversión monetaria, especificar por separado el salario promedio por hora del equipo o coeficientes específicos del proyecto
|