9 min lectura • Guide 41 of 877
Coordinando Equipos de Desarrollo Frontend y Backend
Los equipos de frontend y backend trabajando en paralelo enfrentan desafíos de coordinación: trabajo bloqueado esperando APIs, sorpresas de integración, prioridades inconsistentes y culpas cuando los timelines se deslizan. GitScrum proporciona la visibilidad y estructura para coordinar estos tracks paralelos, asegurando handoffs suaves y reduciendo la fricción de integración.
Problemas Comunes de Coordinación
Cuando equipos frontend y backend trabajan separados:
| Problema | Síntoma | Impacto |
|---|---|---|
| API no lista | Frontend bloqueado, usando mocks indefinidamente | Retrasos integración |
| Cambios API sin aviso | Frontend rompe después de integración | Retrabajo, frustración |
| Diferentes prioridades | Equipos trabajando en features no relacionadas | Entrega desalineada |
| Contratos poco claros | Ambos equipos asumen comportamientos diferentes | Integración con bugs |
| Sin visibilidad compartida | Cada equipo ciego al progreso del otro | Sorpresas tardías |
| Cultura de culpa | "Estábamos esperando a ellos" | Baja confianza |
Estructura de Coordinación GitScrum
Configuración de Board Compartido
Configuración de Board para Trabajo Cross-Team:
OPCIÓN 1: BOARD UNIFICADO
┌─────────────────────────────────────────────────────────────┐
│ DESARROLLO DE FEATURE │
├─────────────────────────────────────────────────────────────┤
│ │
│ Backlog │ Backend │ Frontend │ Integra- │ Testing │Done│
│ │ Dev │ Dev │ ción │ │ │
│ ───────────┼──────────┼──────────┼──────────┼─────────┼────│
│ [Perfil │ [API: │ │ │ │ │
│ Usuario] │ Perfil] │ │ │ │ │
│ │ BE: Alex │ │ │ │ │
│ │ │ │ │ │ │
│ [Dash- │ [API: │ [UI: │ │ │ │
│ board] │ Stats] │ Stats │ │ │ │
│ │ BE: Sam │ Widget] │ │ │ │
│ │ │ FE: Kim │ │ │ │
└─────────────────────────────────────────────────────────────┘
OPCIÓN 2: BOARDS ENLAZADOS
┌─────────────────────────────────────────────────────────────┐
│ BOARD BACKEND BOARD FRONTEND │
├─────────────────────────────────────────────────────────────┤
│ │
│ To Do│En Prog│Review│Done ║ To Do│En Prog│Review│Done │
│ ─────┼───────┼──────┼──── ║ ─────┼───────┼──────┼──── │
│ [API:│ │ │ ║ [UI: │ │ │ │
│ User│ │ │ ║ User│ │ │ │
│ ────┼───────┼──────┼──────╬───────┼───────┼──────┼──── │
│ Bloquea: UI: Perfil User] ║ Bloqueado por: API: User] │
│ ║ │
│ Enlaces muestran dependencias entre boards │
└─────────────────────────────────────────────────────────────┘
Configuración de Dependencias de Tareas
Configurando Dependencias Cross-Team:
CONFIGURACIÓN DEPENDENCIAS:
┌─────────────────────────────────────────────────────────────┐
│ TAREA: UI - Página Perfil Usuario │
│ Equipo: Frontend │
│ Asignado: Kim │
├─────────────────────────────────────────────────────────────┤
│ │
│ DEPENDENCIAS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Bloqueado Por (debe completar primero): ││
│ │ ││
│ │ ├── [✓] API: Autenticación Usuario (Done) ││
│ │ ├── [→] API: CRUD Perfil Usuario (En Progreso) ││
│ │ │ Asignado: Alex ││
│ │ │ ETA: Mañana ││
│ │ │ Estado: 80% completo ││
│ │ └── [○] API: Subir Imagen Perfil (Por Hacer) ││
│ │ Asignado: Sam ││
│ │ ETA: Próximo sprint ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ MODO DE TRABAJO: │
│ ○ Esperar todas las dependencias │
│ ● Iniciar con mocks, integrar cuando esté listo │
│ ○ Iniciar solo después de bloqueadores hechos │
│ │
│ ESTADO MOCK: │
│ Usando mock API: Sí │
│ Endpoint mock: /mocks/user-profile.json │
│ API real lista: Parcial (2 de 3 endpoints) │
└─────────────────────────────────────────────────────────────┘
Gestión de Contratos API
Especificación API como Tareas
Tracking de Contratos API:
TAREA DE CONTRATO API:
┌─────────────────────────────────────────────────────────────┐
│ CONTRATO API: Endpoints Perfil Usuario │
│ Tipo: Contrato • Estado: Aprobado │
├─────────────────────────────────────────────────────────────┤
│ │
│ ESPECIFICACIÓN: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ GET /api/v1/users/:id/profile ││
│ │ ││
│ │ Respuesta: ││
│ │ { ││
│ │ "id": "uuid", ││
│ │ "email": "string", ││
│ │ "name": "string", ││
│ │ "avatar_url": "string | null", ││
│ │ "created_at": "ISO8601", ││
│ │ "preferences": { ││
│ │ "theme": "light | dark", ││
│ │ "notifications": "boolean" ││
│ │ } ││
│ │ } ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ESTADO APROBACIÓN: │
│ ├── Backend: ✓ Aprobado (Alex) │
│ ├── Frontend: ✓ Aprobado (Kim) │
│ └── Fecha: 15 Ene, 2024 │
│ │
│ ESTADO IMPLEMENTACIÓN: │
│ ├── Backend: ✓ Implementado, desplegado a staging │
│ ├── Frontend: → Usando en desarrollo │
│ └── Integration tested: Pendiente │
│ │
│ CHANGELOG: │
│ v1.1 (20 Ene): Agregado objeto preferences │
│ v1.0 (15 Ene): Contrato inicial │
└─────────────────────────────────────────────────────────────┘
Workflow de Cambio de Contrato
Gestionando Cambios de API:
FLUJO DE SOLICITUD DE CAMBIO:
┌─────────────────────────────────────────────────────────────┐
│ │
│ Backend Tarea de Frontend │
│ propone ──► revisión ◄── revisa │
│ cambio contrato impacto │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Discusión │ │
│ │ en tarea │ │
│ └─────────────┘ │
│ │ │
│ ┌──────────┼──────────┐ │
│ ▼ ▼ ▼ │
│ [Aprobar] [Negociar] [Rechazar] │
│ │ │ │ │
│ ▼ │ ▼ │
│ Actualizar │ Mantener actual │
│ spec e │ │
│ Implementar │ │
│ │ │ │
│ ▼ ▼ │
│ Notificar equipos afectados │
│ │
└─────────────────────────────────────────────────────────────┘
Milestones de Integración
Puntos de Integración de Feature
Planificación de Milestones de Integración:
FEATURE: Dashboard Usuario
┌─────────────────────────────────────────────────────────────┐
│ MILESTONES DE INTEGRACIÓN │
├─────────────────────────────────────────────────────────────┤
│ │
│ Semana 1 │
│ ├── API: Autenticación ───┐ │
│ │ ├──► INT-1: Auth funciona │
│ └── UI: Flujo login ───┘ con API real │
│ Fecha: Ene 22 │
│ Estado: ✓ Hecho │
│ │
│ Semana 2 │
│ ├── API: Stats dashboard ───┐ │
│ │ ├──► INT-2: Stats display │
│ └── UI: Stats widgets ───┘ Fecha: Ene 29 │
│ Estado: → Hoy │
│ │
│ Semana 3 │
│ ├── API: Datos charts ───┐ │
│ │ ├──► INT-3: Charts live │
│ └── UI: Componentes chart ───┘ Fecha: Feb 5 │
│ Estado: ○ Programado │
│ │
│ Semana 4 │
│ └── Testing integración full ────► INT-4: E2E completo │
│ Fecha: Feb 12 │
│ Estado: ○ Programado │
│ │
└─────────────────────────────────────────────────────────────┘
Visibilidad Cross-Team
Coordinación en Standup
Usando Team Standup para Updates Cross-Team:
VISTA STANDUP COMBINADA:
┌─────────────────────────────────────────────────────────────┐
│ STANDUP DIARIO - 29 Ene, 2024 │
├─────────────────────────────────────────────────────────────┤
│ │
│ EQUIPO BACKEND │
│ ────────────────────────────────────────────────────────────│
│ Alex: │
│ Ayer: Completado endpoint API stats │
│ Hoy: Agregando manejo estado vacío │
│ Bloqueadores: Ninguno │
│ 📌 "API Stats lista para integración @ 3pm" │
│ │
│ EQUIPO FRONTEND │
│ ────────────────────────────────────────────────────────────│
│ Kim: │
│ Ayer: UI widget stats completo │
│ Hoy: Integración con API real │
│ Bloqueadores: Esperando API stats │
│ 📌 "@Alex - listo cuando estés para integración" │
│ │
│ ITEMS SYNC CROSS-TEAM: │
│ ├── INT-2: Integración stats programada 2pm │
│ ├── Cambio API: campo last_login aprobado │
│ └── Próxima integración: Charts (Feb 5) │
└─────────────────────────────────────────────────────────────┘
Dashboard de Progreso
Vista Progreso Cross-Team:
PROGRESO FEATURE: Dashboard Usuario
┌─────────────────────────────────────────────────────────────┐
│ │
│ PROGRESO BACKEND │
│ ████████████████████░░░░░░░░░░ 65% │
│ ├── API Auth ████████████████████ 100% ✓ │
│ ├── API Stats ████████████████████ 100% ✓ │
│ ├── API Charts ████████████░░░░░░░░ 60% → │
│ └── API Export ░░░░░░░░░░░░░░░░░░░░ 0% ○ │
│ │
│ PROGRESO FRONTEND │
│ █████████████████░░░░░░░░░░░░░ 55% │
│ ├── UI Login ████████████████████ 100% ✓ │
│ ├── Stats Widgets ████████████████████ 100% ✓ │
│ ├── Chart Display ████████░░░░░░░░░░░░ 40% → │
│ └── Export UI ░░░░░░░░░░░░░░░░░░░░ 0% ○ │
│ │
│ PROGRESO INTEGRACIÓN │
│ █████████░░░░░░░░░░░░░░░░░░░░░ 33% │
│ ├── INT-1: Auth ████████████████████ 100% ✓ │
│ ├── INT-2: Stats ████████████░░░░░░░░ 60% → Hoy │
│ ├── INT-3: Charts ░░░░░░░░░░░░░░░░░░░░ 0% ○ Feb 5 │
│ └── INT-4: E2E ░░░░░░░░░░░░░░░░░░░░ 0% ○ Feb 12 │
│ │
│ GENERAL: 51% completo │
│ Objetivo: Feb 15 (Beta) │
│ Estado: ✓ En Track │
└─────────────────────────────────────────────────────────────┘
Patrones de Comunicación
Integración Slack/Teams
Notificaciones Automatizadas Cross-Team:
REGLAS DE NOTIFICACIÓN:
┌─────────────────────────────────────────────────────────────┐
│ Configuración Notificación Cross-Team │
├─────────────────────────────────────────────────────────────┤
│ │
│ CUANDO: Tarea API se mueve a "Done" │
│ NOTIFICAR: Canal #frontend-team │
│ MENSAJE: "🟢 API lista: [Título Tarea] │
│ Staging: [URL] │
│ Docs: [Enlace] │
│ Bloquea: [Tareas FE enlazadas]" │
│ │
│ CUANDO: Contrato API creado/actualizado │
│ NOTIFICAR: #frontend-team + #backend-team │
│ MENSAJE: "📋 Actualización contrato: [Nombre API] │
│ Cambio: [Resumen] │
│ Revisión necesaria: [Asignados]" │
│ │
│ CUANDO: Tarea integración creada │
│ NOTIFICAR: Ambos canales de equipo │
│ MENSAJE: "🔗 Integración programada: [Tarea] │
│ Fecha: [Fecha/Hora] │
│ Participantes: [Nombres]" │
└─────────────────────────────────────────────────────────────┘
Mejores Prácticas
Para Coordinación Suave
- Enfoque API-first — Definir contratos antes de implementación
- Mocks temprano — Frontend no debería esperar APIs reales
- Integraciones pequeñas — Integrar frecuentemente, no al final
- Ownership claro — Cada punto integración tiene un owner
- Definición compartida de done — Ambos equipos acuerdan cuando "completo"
Anti-Patrones a Evitar
EVITAR ESTOS:
✗ Integración "big bang" al final
✗ Acuerdos API verbales (sin contratos escritos)
✗ Esperar APIs perfectas antes de iniciar frontend
✗ Backlogs separados sin visibilidad
✗ Integración como "problema de alguien más"
✗ Cambiar APIs sin notificar consumidores