6 min lectura • Guide 516 of 877
Cómo Ejecutar Revisiones de Diseño Técnico Efectivas
Las revisiones de diseño técnico previenen errores arquitecturales costosos pero pueden convertirse en cuellos de botella si no se gestionan bien. Los flujos de tareas, funciones de checklist y herramientas de colaboración de GitScrum ayudan a los equipos a estructurar procesos de revisión de diseño que detectan problemas temprano mientras mantienen velocidad de desarrollo.
Disparadores de Revisión de Diseño
| Tipo de Cambio | Revisión Requerida | Profundidad |
|---|---|---|
| Nuevo servicio/componente | Sí | Doc de diseño completo |
| Cambios de API (pública) | Sí | Revisión de API |
| Cambio de schema BD | Sí | Revisión de schema |
| > 2 semanas de trabajo | Sí | Doc de diseño completo |
| Dependencia cross-equipo | Sí | Revisión de coordinación |
| < 2 días, aislado | No | Code review suficiente |
Proceso de Revisión de Diseño
FLUJO DE REVISIÓN DE DISEÑO
1. AUTOR CREA DOCUMENTO DE DISEÑO
┌─────────────────────────────────────────────────┐
│ Secciones de Plantilla: │
│ ├── Declaración del Problema │
│ ├── Objetivos y No-Objetivos │
│ ├── Solución Propuesta │
│ ├── Alternativas Consideradas │
│ ├── Contrato de API/Datos │
│ ├── Dependencias │
│ ├── Consideraciones de Seguridad │
│ ├── Estrategia de Testing │
│ ├── Plan de Rollout │
│ └── Métricas de Éxito │
│ │
│ Tiempo: 1-3 días para escribir │
└─────────────────────────────────────────────────┘
│
▼
2. PERÍODO DE REVISIÓN ASYNC
┌─────────────────────────────────────────────────┐
│ Compartir con revisores: │
│ ├── Tech lead/arquitecto │
│ ├── Miembros del equipo │
│ ├── Equipos dependientes (si aplica) │
│ └── Seguridad (si aplica) │
│ │
│ Revisores proporcionan feedback escrito │
│ Autor responde a comentarios │
│ Tiempo: 2-3 días │
└─────────────────────────────────────────────────┘
│
▼
3. REUNIÓN DE REVISIÓN SYNC (si es necesario)
┌─────────────────────────────────────────────────┐
│ Propósito: Resolver solo preguntas abiertas │
│ No para leer el doc juntos │
│ │
│ Agenda: │
│ ├── 5 min: Recapitular preguntas abiertas │
│ ├── 20-40 min: Discutir y decidir │
│ └── 5 min: Capturar decisiones │
│ │
│ Tiempo: 30-60 minutos máximo │
└─────────────────────────────────────────────────┘
│
▼
4. DECISIÓN Y APROBACIÓN
┌─────────────────────────────────────────────────┐
│ Resultados: │
│ ├── Aprobado: Proceder con implementación │
│ ├── Aprobado con cambios: Actualizaciones │
│ │ menores │
│ └── Necesita revisión: Retrabajo mayor necesario│
│ │
│ Registrar decisión y justificación │
└─────────────────────────────────────────────────┘
Plantilla de Documento de Diseño
DOCUMENTO DE DISEÑO TÉCNICO
# Diseño de [Nombre de Feature/Sistema]
## Estado: [Borrador | En Revisión | Aprobado | Reemplazado]
## Autor: @autor
## Revisores: @revisor1, @revisor2
## Última Actualización: YYYY-MM-DD
---
## 1. Declaración del Problema
¿Qué problema estamos resolviendo? ¿Por qué ahora?
Contexto de negocio e impacto en usuario.
## 2. Objetivos
- Objetivo primario
- Objetivo secundario
## No-Objetivos (Límites Explícitos de Alcance)
- Qué NO estamos resolviendo
- Qué estamos difiriendo
## 3. Solución Propuesta
### 3.1 Visión General
Descripción de alto nivel y diagrama.
### 3.2 Diseño Detallado
Detalles técnicos, componentes, interacciones.
### 3.3 Contrato de API/Datos
Endpoints, schemas, contratos.
### 3.4 Modelo de Datos
Cambios de base de datos, migraciones necesarias.
## 4. Alternativas Consideradas
### Alternativa A: [Nombre]
Descripción, pros, contras, por qué rechazada.
### Alternativa B: [Nombre]
Descripción, pros, contras, por qué rechazada.
## 5. Dependencias
- Servicios externos
- Trabajo de otros equipos
- Sistemas de terceros
## 6. Consideraciones de Seguridad
- Autenticación/autorización
- Manejo de datos
- Actualizaciones de modelo de amenazas
## 7. Estrategia de Testing
- Enfoque de tests unitarios
- Enfoque de tests de integración
- Testing de carga/performance
## 8. Plan de Rollout
- Feature flags
- Pasos de rollout gradual
- Procedimiento de rollback
## 9. Métricas de Éxito
Cómo sabremos si esto tuvo éxito.
## 10. Preguntas Abiertas
Preguntas que necesitan resolución antes de aprobar.
---
## Comentarios de Revisión y Decisiones
[Capturados durante proceso de revisión]
Checklist de Revisión para Revisores
CHECKLIST DE REVISIÓN DE DISEÑO
PROBLEMA Y ALCANCE:
☐ Problema claramente declarado y vale resolver
☐ Objetivos específicos y medibles
☐ No-objetivos explícitamente declarados
☐ Alcance apropiado (no demasiado grande)
SOLUCIÓN:
☐ Solución aborda el problema
☐ Diseño entendible desde descripción
☐ Contratos de API bien definidos
☐ Modelo de datos apropiado
☐ Manejo de errores considerado
ALTERNATIVAS:
☐ Alternativas razonables consideradas
☐ Justificación de rechazo es sólida
RIESGOS:
☐ Dependencias identificadas
☐ Implicaciones de seguridad abordadas
☐ Modos de falla considerados
☐ Rollback es posible
OPERABILIDAD:
☐ Plan de monitoreo/observabilidad
☐ Estrategia de testing suficiente
☐ Plan de rollout seguro
☐ Documentación planificada
IMPLEMENTACIÓN:
☐ Estimación de esfuerzo parece razonable
☐ Puede hacerse incrementalmente
☐ Equipo tiene expertise requerido
Integración con Tareas
VINCULANDO DISEÑO A IMPLEMENTACIÓN
APROBACIÓN DE DISEÑO DISPARA TAREAS:
┌─────────────────────────────────────────────────┐
│ Epic: Feature Express Checkout │
│ Doc de Diseño: docs/designs/express-checkout.md│
│ Estado: Aprobado 2024-01-15 │
│ │
│ Fase 1: Fundamentos │
│ ├── Tarea: Crear tabla de tokens de pago │
│ ├── Tarea: Implementar endpoint tokenización │
│ └── Tarea: Agregar tests de token de pago │
│ │
│ Fase 2: Integración │
│ ├── Tarea: Flujo de order service │
│ └── Tarea: UI de frontend │
│ │
│ Fase 3: Validación │
│ └── Tarea: Testing end-to-end │
└─────────────────────────────────────────────────┘
Mejores Prácticas
- Revisar diseño antes de código para detectar problemas temprano
- Mantener documentos concisos - no novelas
- Listar alternativas para mostrar que se pensó opciones
- Incluir no-objetivos explícitamente
- Async primero - reunión solo para resolver bloqueos
- Timeboxear revisiones para mantener momentum
- Archivar decisiones para referencia futura
Anti-Patrones
✗ Código primero, diseño después
✗ Documentos de 50+ páginas
✗ Sin alternativas consideradas
✗ Reuniones para leer docs juntos
✗ Revisión sin límite de tiempo
✗ Decisiones no documentadas