20 KiB
Roadmap Detallado - Fase 1: Alcance Inicial
Proyecto: Sistema de Administración de Obra e INFONAVIT Fecha: 2025-11-17 Duración Total Fase 1: 16 semanas (ajustado para incluir RRHH) Presupuesto Fase 1: $175,000 MXN (ajustado) Story Points: 330 SP (ajustado)
🔄 Ajuste Importante: RRHH Movido a Fase 1
Justificación:
- ✅ RRHH y asistencias es crítico para costeo de mano de obra
- ✅ Necesario desde el inicio de obra para tracking de personal
- ✅ App móvil con biométrico complementa app de avances
- ✅ Integración con IMSS/INFONAVIT es requerimiento legal desde día 1
Impacto:
- Fase 1: 6 épicas → 7 épicas
- Duración: 14 semanas → 16 semanas
- Presupuesto: $150,000 → $175,000 MXN
- Story Points: 280 SP → 330 SP
📋 Épicas de Fase 1 (Revisado)
| Épica | Nombre | Presupuesto | SP | Semanas | Prioridad |
|---|---|---|---|---|---|
| MAI-001 | Fundamentos | $25,000 | 50 | 2 | P0 - Crítico |
| MAI-002 | Proyectos y Estructura | $25,000 | 45 | 2 | P0 - Crítico |
| MAI-003 | Presupuestos y Costos | $25,000 | 50 | 3 | P1 - Alto |
| MAI-004 | Compras e Inventarios | $25,000 | 50 | 2.5 | P1 - Alto |
| MAI-005 | Control de Obra y Avances | $25,000 | 45 | 2.5 | P0 - Crítico |
| MAI-006 | RRHH, Asistencias y Nómina | $25,000 | 50 | 2.5 | P0 - Crítico |
| MAI-007 | Reportes y Analytics | $25,000 | 40 | 1.5 | P1 - Alto |
Total: $175,000 MXN | 330 SP | 16 semanas
🗓️ Calendario de Sprints (2 semanas cada sprint)
Sprint 0: Migración de Base (Semana 1)
Duración: 1 semana Objetivo: Infraestructura base desde GAMILIT
Equipo:
- Tech Lead: 1
- Backend: 2
- Frontend: 2
- Database: 1
- DevOps: 1
Tareas Principales:
- Configurar repositorio con estructura modular
- Migrar sistema de autenticación JWT
- Migrar guards, middleware, error handlers
- Migrar componentes UI base (Buttons, Inputs, Modales, Forms)
- Setup PostgreSQL con schemas modulares
- Configurar CI/CD (GitHub Actions / GitLab CI)
- Setup de ambientes (dev, staging, prod)
Entregable: Infraestructura base funcionando
Métricas:
- Coverage esperado: >80%
- Build exitoso: ✅
- Deploy a dev: ✅
Sprint 1: Fundamentos - Parte 1 (Semanas 2-3)
Épica: MAI-001 Duración: 2 semanas Story Points: 50 SP
Historias de Usuario:
- US-FUND-001: Autenticación Básica JWT (8 SP)
- US-FUND-002: Perfiles de Usuario de Construcción (5 SP)
- US-FUND-003: Dashboard por Rol (8 SP)
- US-FUND-004: Infraestructura Técnica Base (12 SP)
- US-FUND-005: Sistema de Sesiones (6 SP)
- US-FUND-006: API RESTful Básica (8 SP)
- US-FUND-007: Navegación y Routing (5 SP)
- US-FUND-008: UI/UX Base (3 SP)
Actividades Backend:
- Implementar 7 roles de construcción (director, engineer, resident, purchases, finance, hr, post_sales)
- Implementar multi-tenancy por constructora
- RLS policies por constructora + proyecto
- Sistema de auditoría completo
Actividades Frontend:
- Login/Register con selector de constructora
- 7 variantes de dashboard por rol
- Guards de autorización (AuthGuard, RoleGuard, ConstructoraGuard)
- Layouts responsivos
Actividades Database:
- Schema
auth,auth_management,constructoras,audit_logging - ENUM
construction_role(7 valores) - Tabla
constructoras,user_constructoras - RLS policies multi-tenant
Testing:
- Unit tests: AuthService, Guards
- E2E tests: Login, Multi-tenancy, RBAC
Entregable: Sistema de autenticación y autorización completo con multi-tenancy
Sprint 2: Proyectos y Estructura (Semanas 4-5)
Épica: MAI-002 Duración: 2 semanas Story Points: 45 SP
Historias de Usuario:
- US-PROJ-001: Catálogo de Proyectos (8 SP)
- US-PROJ-002: Estructura Jerárquica (Etapas → Manzanas → Lotes → Viviendas) (10 SP)
- US-PROJ-003: Prototipos de Vivienda (5 SP)
- US-PROJ-004: Asignación de Equipo de Obra (6 SP)
- US-PROJ-005: Calendario de Obra con Hitos (8 SP)
- US-PROJ-006: Estados de Proyecto (5 SP)
- US-PROJ-007: Dashboard de Proyecto (8 SP)
Actividades Backend:
- Módulo
projects - CRUD de proyectos, etapas, manzanas, lotes, viviendas
- Asignación de equipo con roles por proyecto
- API de calendario y hitos
Actividades Frontend:
- Componentes de gestión de proyectos
- Vista jerárquica (tree view) de estructura
- Formularios de asignación de equipo
- Calendario interactivo
Actividades Database:
- Schema
projects - Tablas:
projects,stages,blocks,lots,housing_units,housing_prototypes - Tabla:
project_team_assignments - RLS por proyecto y constructora
Testing:
- Unit tests: ProjectService
- E2E tests: Creación de proyecto completo con estructura
Entregable: Gestión de proyectos con estructura jerárquica completa
Sprint 3-4: Presupuestos y Costos (Semanas 6-8)
Épica: MAI-003 Duración: 3 semanas Story Points: 50 SP
Historias de Usuario:
- US-BUD-001: Presupuesto Maestro por Obra (10 SP)
- US-BUD-002: Catálogo de Conceptos de Obra (8 SP)
- US-BUD-003: Precios Unitarios y Matriz de Insumos (12 SP)
- US-BUD-004: Comparación Presupuesto vs Costo Real (10 SP)
- US-BUD-005: Alertas de Desviaciones (5 SP)
- US-BUD-006: Versionado de Presupuestos (10 SP)
Actividades Backend:
- Módulo
budgets - Catálogo de conceptos con costos
- Matriz de insumos (materiales, mano de obra, herramienta, maquinaria)
- Cálculo de desviaciones en tiempo real
- Versionado de presupuestos (oferta, contratado, modificado)
Actividades Frontend:
- Formularios de presupuesto con cálculos automáticos
- Vista de comparación presupuesto vs real
- Alertas visuales de desviaciones
- Importación/exportación Excel
Actividades Database:
- Schema
budgets - Tablas:
budgets,budget_items,concept_catalog,unit_prices,input_matrix - Funciones: calcular desviaciones, aplicar escalatorias
Testing:
- Unit tests: BudgetService, cálculos de desviaciones
- E2E tests: Creación de presupuesto completo
Entregable: Sistema de presupuestos con control de costos funcionando
Sprint 5-6: Compras e Inventarios (Semanas 9-10.5)
Épica: MAI-004 Duración: 2.5 semanas Story Points: 50 SP
Historias de Usuario:
- US-PUR-001: Requisiciones desde Obra (8 SP)
- US-PUR-002: Órdenes de Compra (10 SP)
- US-PUR-003: Comparativo de Cotizaciones (8 SP)
- US-PUR-004: Almacenes Multi-sitio (10 SP)
- US-PUR-005: Movimientos de Inventario (8 SP)
- US-PUR-006: Kárdex y Alertas (6 SP)
Actividades Backend:
- Módulos
purchases,inventory - Workflow de requisición → cotización → orden de compra
- Gestión de proveedores
- Control de almacenes multi-obra
- Movimientos: entradas, salidas, traspasos
Actividades Frontend:
- Formularios de requisición y orden de compra
- Comparador de cotizaciones
- Dashboard de inventario por almacén
- Kárdex visual
Actividades Database:
- Schemas
purchases,inventory - Tablas:
purchase_requisitions,purchase_orders,suppliers,warehouses,stock_items,stock_movements - Triggers: alertas de stock mínimo
Testing:
- Unit tests: PurchaseService, InventoryService
- E2E tests: Flujo completo de requisición a recepción
Entregable: Gestión de compras e inventarios multi-almacén
Sprint 7-8: Control de Obra y Avances (Semanas 11-13)
Épica: MAI-005 Duración: 2.5 semanas Story Points: 45 SP
Historias de Usuario:
- US-PROG-001: Captura de Avance Físico (10 SP)
- US-PROG-002: Curva S (Plan vs Real) (8 SP)
- US-PROG-003: Evidencias Fotográficas Geolocalizadas (10 SP)
- US-PROG-004: Checklists de Actividades (8 SP)
- US-PROG-005: Registro de Incidencias (6 SP)
- US-PROG-006: App Móvil de Captura (12 SP) ⭐
Actividades Backend:
- Módulo
progress - Captura de avances por concepto/frente/vivienda
- Cálculo de curva S
- API de uploads de imágenes con geolocalización
- Checklists dinámicos por etapa
Actividades Frontend Web:
- Formularios de captura de avance
- Gráfico de curva S interactivo
- Galería de evidencias fotográficas
- Dashboard de checklists
Actividades App Móvil (React Native):
- ⭐ Captura de avances offline
- ⭐ Cámara con geolocalización automática
- ⭐ Checklists interactivos
- ⭐ Registro de incidencias con foto
- ⭐ Sincronización automática
Actividades Database:
- Schema
progress_tracking - Tablas:
physical_progress,progress_evidence,checklists,checklist_items,incidents - Funciones: cálculo de curva S
Testing:
- Unit tests: ProgressService
- E2E tests: Captura de avance con evidencias
- App tests: Modo offline, sincronización
Entregable: Control de obra con app móvil funcionando
Sprint 9-10: RRHH, Asistencias y Nómina (Semanas 13.5-16)
Épica: MAI-006 ⭐ NUEVO EN FASE 1 Duración: 2.5 semanas Story Points: 50 SP
Historias de Usuario:
- US-HR-001: Catálogo de Empleados y Cuadrillas (8 SP)
- US-HR-002: Asistencia con Biométrico desde App (15 SP) ⭐⭐
- US-HR-003: Costeo de Mano de Obra por Obra (10 SP)
- US-HR-004: Integración con Nómina Externa (8 SP)
- US-HR-005: Exportación IMSS/INFONAVIT (12 SP) ⭐⭐
- US-HR-006: Reportes de Asistencia (5 SP)
Actividades Backend:
- Módulo
hr - CRUD de empleados, cuadrillas, oficios
- API de registro de asistencia
- Cálculo de costeo de mano de obra por obra/partida
- Integración con IMSS (API de afiliación, avisos de alta/baja)
- Integración con INFONAVIT (API de aportaciones patronales)
- Exportación de archivos SUA (Sistema Único de Autodeterminación)
Actividades Frontend Web:
- Gestión de empleados y cuadrillas
- Dashboard de asistencias
- Reportes de costeo de mano de obra
- Exportación de archivos para IMSS/INFONAVIT
Actividades App Móvil (React Native):
- ⭐⭐ Captura de asistencia con biométrico (huella/facial)
- ⭐⭐ QR Code para check-in/check-out
- ⭐⭐ Geolocalización de asistencia (verificar que esté en obra)
- ⭐⭐ Lista de cuadrilla del día
- ⭐⭐ Modo offline con sincronización
- ⭐⭐ Foto de entrada/salida (opcional)
Actividades Database:
- Schema
hr - Tablas:
employees,crews,trades,attendance_records,labor_costs - Tabla:
imss_integration_log,infonavit_integration_log - Funciones: calcular costeo por obra
Integraciones Externas:
-
IMSS API:
- Afiliación de trabajadores
- Avisos de alta/baja
- Modificaciones salariales
- Generación de archivos SUA
-
INFONAVIT API:
- Registro patronal
- Cálculo de aportaciones (5% del salario base)
- Generación de archivo de pago
- Consulta de acreditados
Tecnologías:
- Biométrico App:
react-native-biometrics(huella dactilar)react-native-camera(reconocimiento facial opcional)@react-native-community/geolocation(GPS)
- QR Code:
react-native-qrcode-scanner- Backend genera QR por obra/día
- IMSS/INFONAVIT:
- SOAP/REST APIs oficiales
- Generación de archivos .SUA (formato específico IMSS)
Testing:
- Unit tests: HRService, cálculos de costeo
- E2E tests: Flujo completo de asistencia
- App tests: Biométrico, GPS, modo offline
- Integration tests: IMSS/INFONAVIT APIs (sandbox)
Entregable:
- ✅ Sistema de RRHH con asistencia biométrica
- ✅ App móvil con captura de asistencia
- ✅ Integración con IMSS e INFONAVIT funcionando
- ✅ Exportación de archivos SUA
Sprint 11: Reportes y Analytics (Semanas 16-17)
Épica: MAI-007 Duración: 1.5 semanas Story Points: 40 SP
Historias de Usuario:
- US-REP-001: Dashboard por Obra (10 SP)
- US-REP-002: Reportes de Desviaciones (8 SP)
- US-REP-003: Reportes de Estimaciones/Pagos (8 SP)
- US-REP-004: Exportación PDF/Excel (8 SP)
- US-REP-005: Gráficos Interactivos (10 SP)
Actividades Backend:
- Módulo
reporting - Agregaciones de datos (avance, costos, desviaciones)
- Generación de PDFs (puppeteer/pdfmake)
- Exportación Excel (exceljs)
Actividades Frontend:
- Dashboards con Chart.js/Recharts
- Reportes personalizables
- Filtros dinámicos
Actividades Database:
- Schema
reporting - Vistas materializadas para performance
- Funciones de agregación
Testing:
- Unit tests: ReportService
- E2E tests: Generación de reportes
Entregable: Sistema de reportes y analytics completo
📱 Especificación de App Móvil
Funcionalidades Principales
1. Autenticación
- Login con credenciales de obra
- Selección de constructora
- Modo offline (credenciales cacheadas)
2. Captura de Asistencia (Módulo RRHH)
Flujo de Asistencia:
1. Residente abre app
2. Selecciona obra activa
3. Modo "Check-in" o "Check-out"
4. Opciones de registro:
a) Escanear QR del empleado
b) Buscar en lista de empleados
c) Registro biométrico (huella/facial)
5. Sistema valida:
- Geolocalización (dentro del radio de la obra)
- Horario (dentro de jornada laboral)
- Estado del empleado (activo, asignado a obra)
6. Captura foto (opcional)
7. Registra asistencia (online o en cola offline)
8. Confirma con vibración/sonido
Pantallas:
- Login
- Selector de obra
- Lista de empleados
- Escáner QR
- Confirmación de asistencia
- Historial del día
3. Captura de Avances (Módulo Control de Obra)
- Selección de concepto/frente
- Captura de porcentaje de avance
- Fotos con geolocalización
- Checklists interactivos
- Registro de incidencias
4. Modo Offline
- Sincronización automática al recuperar conexión
- Base de datos local (SQLite/Realm)
- Cola de pendientes (asistencias, avances, fotos)
Stack Técnico App Móvil
framework: React Native + TypeScript
navigation: React Navigation v6
state: Zustand
database_local: expo-sqlite / Realm
biometric: react-native-biometrics
camera: expo-camera
qr_scanner: react-native-qrcode-scanner
geolocation: @react-native-community/geolocation
maps: react-native-maps
networking: axios + react-query
offline_sync: custom queue system
📊 Métricas por Sprint
| Sprint | SP | Presupuesto | Duración | Team Size | Riesgo |
|---|---|---|---|---|---|
| Sprint 0 | - | - | 1 sem | 7 | Bajo |
| Sprint 1 | 50 | $25,000 | 2 sem | 6 | Bajo (90% GAMILIT) |
| Sprint 2 | 45 | $25,000 | 2 sem | 6 | Medio (40% GAMILIT) |
| Sprint 3-4 | 50 | $25,000 | 3 sem | 6 | Alto (10% GAMILIT) |
| Sprint 5-6 | 50 | $25,000 | 2.5 sem | 6 | Alto (15% GAMILIT) |
| Sprint 7-8 | 45 | $25,000 | 2.5 sem | 7 (+ mobile) | Medio (60% GAMILIT) |
| Sprint 9-10 | 50 | $25,000 | 2.5 sem | 7 (+ mobile) | Alto (integraciones) |
| Sprint 11 | 40 | $25,000 | 1.5 sem | 6 | Bajo (70% GAMILIT) |
Total: 330 SP | $175,000 MXN | 16 semanas
👥 Composición del Equipo
Core Team (Sprints 1-11)
- Tech Lead: 1 (full-time)
- Backend Developers: 2 (full-time)
- Frontend Developers: 2 (full-time)
- Database Engineer: 1 (full-time)
- QA Engineer: 1 (full-time)
Equipo Adicional (Sprints 7-10)
- Mobile Developer: 1 (iOS/Android con React Native)
Soporte
- DevOps: 0.5 (part-time)
- UI/UX Designer: 0.5 (part-time, Sprints 1-3)
Total personas: 7.5 FTE promedio
🎯 Hitos Críticos
| Semana | Hito | Entregable |
|---|---|---|
| Semana 1 | Sprint 0 completado | Infraestructura base |
| Semana 3 | MAI-001 completado | Auth + Multi-tenancy |
| Semana 5 | MAI-002 completado | Gestión de proyectos |
| Semana 8 | MAI-003 completado | Presupuestos y costos |
| Semana 10.5 | MAI-004 completado | Compras e inventarios |
| Semana 13 | MAI-005 completado | Control de obra + App móvil v1 |
| Semana 16 | MAI-006 completado | RRHH + Asistencia biométrica + IMSS/INFONAVIT |
| Semana 17 | MAI-007 completado | Reportes y analytics |
| Semana 17 | Fase 1 completa | Deploy a staging |
🚨 Riesgos y Mitigaciones
Riesgos Técnicos
| Riesgo | Probabilidad | Impacto | Mitigación |
|---|---|---|---|
| Integración IMSS/INFONAVIT compleja | Alta | Alto | Iniciar pruebas con APIs sandbox desde Sprint 5 |
| Biométrico no funciona en todos devices | Media | Medio | Fallback a QR + foto |
| Sincronización offline falla | Media | Alto | Tests exhaustivos de cola de sincronización |
| Performance con muchas obras | Media | Alto | Índices optimizados, vistas materializadas |
Riesgos de Negocio
| Riesgo | Probabilidad | Impacto | Mitigación |
|---|---|---|---|
| Cambios en APIs de IMSS/INFONAVIT | Media | Alto | Abstracción de integraciones, monitoreo continuo |
| Resistencia a adopción de app móvil | Media | Alto | UX simple, capacitación, incentivos |
| Requerimientos de INFONAVIT cambian | Alta | Medio | Arquitectura modular, fácil de ajustar |
📋 Definición de "Done" por Sprint
Criterios Generales
- Código revisado (code review por al menos 1 peer)
- Tests unitarios >80% coverage
- Tests E2E para flujos críticos
- Documentación técnica actualizada
- Deploy exitoso a staging
- QA pass (sin bugs críticos)
- Aprobación de Product Owner
Criterios Específicos por Tipo
Backend:
- API documentada en Swagger/OpenAPI
- Endpoints con validación de entrada
- Manejo de errores estandarizado
- Logs estructurados
Frontend/App:
- UI responsive (móvil/tablet/desktop)
- Accesibilidad básica (WCAG 2.1 AA)
- Loading states y error handling
- UX validada con usuario
Database:
- Migraciones testeadas (up/down)
- RLS policies validadas
- Índices optimizados
- Backups configurados
🔄 Proceso de Desarrollo
Workflow de Sprint (2 semanas)
Semana 1:
- Lunes: Sprint Planning (4h)
- Refinamiento de US
- Estimación de tareas
- Asignación de trabajo
- Martes-Viernes: Desarrollo
- Daily standups (15 min)
- Pair programming (opcional)
- Code reviews continuos
Semana 2:
- Lunes-Miércoles: Desarrollo + Testing
- Jueves:
- Code freeze 12:00 PM
- QA intensivo
- Bug fixes críticos
- Viernes:
- Deploy a staging
- Sprint Review (2h)
- Sprint Retrospective (1h)
- Sprint Planning siguiente (2h)
Herramientas
- Project Management: Jira / Linear / GitHub Projects
- Code Repository: GitHub / GitLab
- CI/CD: GitHub Actions / GitLab CI
- Communication: Slack / Discord
- Documentation: Notion / Confluence
- Design: Figma
📈 Tracking de Progreso
Métricas Clave
Velocidad:
- SP completados por sprint
- Target: 40-50 SP por sprint (2 semanas)
Calidad:
- Code coverage: >80%
- Bugs críticos: 0
- Deuda técnica: <10% del tiempo
Deployment:
- Frequency: 1x por sprint mínimo
- Lead time: <2 días (feature → staging)
- MTTR: <4 horas
🎓 Capacitación del Equipo
Sprint 0-1
- GAMILIT Codebase Tour (4h)
- Arquitectura de GAMILIT
- Componentes reutilizables
- Patrones y convenciones
- Stack Técnico (4h)
- Node.js + Express + TypeScript
- React + Vite
- PostgreSQL + RLS
Sprint 7
- React Native Fundamentals (8h)
- Para mobile developer
- Expo vs CLI
- Offline-first patterns
Sprint 9
- Integraciones IMSS/INFONAVIT (4h)
- APIs y autenticación
- Formato de archivos SUA
- Troubleshooting común
🚀 Próximos Pasos Inmediatos
Esta Semana
- Aprobar roadmap ajustado (7 épicas, 16 semanas)
- Confirmar presupuesto $175,000 MXN
- Asignar equipo a sprints
- Crear épica MAI-006 completa (RF, ET, US)
Semana 1 (Sprint 0)
- Setup de repositorio
- Migración de componentes GAMILIT
- Configurar ambientes
- Kickoff con equipo completo
Semana 2 (Sprint 1)
- Iniciar desarrollo MAI-001
- Daily standups
- Code reviews
Generado: 2025-11-17 Versión: 2.0.0 (Ajustado para incluir RRHH en Fase 1) Próxima revisión: Post Sprint 0