erp-construccion/docs/02-definicion-modulos/ROADMAP-DETALLADO.md

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:

  1. US-FUND-001: Autenticación Básica JWT (8 SP)
  2. US-FUND-002: Perfiles de Usuario de Construcción (5 SP)
  3. US-FUND-003: Dashboard por Rol (8 SP)
  4. US-FUND-004: Infraestructura Técnica Base (12 SP)
  5. US-FUND-005: Sistema de Sesiones (6 SP)
  6. US-FUND-006: API RESTful Básica (8 SP)
  7. US-FUND-007: Navegación y Routing (5 SP)
  8. 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:

  1. US-PROJ-001: Catálogo de Proyectos (8 SP)
  2. US-PROJ-002: Estructura Jerárquica (Etapas → Manzanas → Lotes → Viviendas) (10 SP)
  3. US-PROJ-003: Prototipos de Vivienda (5 SP)
  4. US-PROJ-004: Asignación de Equipo de Obra (6 SP)
  5. US-PROJ-005: Calendario de Obra con Hitos (8 SP)
  6. US-PROJ-006: Estados de Proyecto (5 SP)
  7. 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:

  1. US-BUD-001: Presupuesto Maestro por Obra (10 SP)
  2. US-BUD-002: Catálogo de Conceptos de Obra (8 SP)
  3. US-BUD-003: Precios Unitarios y Matriz de Insumos (12 SP)
  4. US-BUD-004: Comparación Presupuesto vs Costo Real (10 SP)
  5. US-BUD-005: Alertas de Desviaciones (5 SP)
  6. 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:

  1. US-PUR-001: Requisiciones desde Obra (8 SP)
  2. US-PUR-002: Órdenes de Compra (10 SP)
  3. US-PUR-003: Comparativo de Cotizaciones (8 SP)
  4. US-PUR-004: Almacenes Multi-sitio (10 SP)
  5. US-PUR-005: Movimientos de Inventario (8 SP)
  6. 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:

  1. US-PROG-001: Captura de Avance Físico (10 SP)
  2. US-PROG-002: Curva S (Plan vs Real) (8 SP)
  3. US-PROG-003: Evidencias Fotográficas Geolocalizadas (10 SP)
  4. US-PROG-004: Checklists de Actividades (8 SP)
  5. US-PROG-005: Registro de Incidencias (6 SP)
  6. 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:

  1. US-HR-001: Catálogo de Empleados y Cuadrillas (8 SP)
  2. US-HR-002: Asistencia con Biométrico desde App (15 SP)
  3. US-HR-003: Costeo de Mano de Obra por Obra (10 SP)
  4. US-HR-004: Integración con Nómina Externa (8 SP)
  5. US-HR-005: Exportación IMSS/INFONAVIT (12 SP)
  6. 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:

  1. US-REP-001: Dashboard por Obra (10 SP)
  2. US-REP-002: Reportes de Desviaciones (8 SP)
  3. US-REP-003: Reportes de Estimaciones/Pagos (8 SP)
  4. US-REP-004: Exportación PDF/Excel (8 SP)
  5. 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

  1. Aprobar roadmap ajustado (7 épicas, 16 semanas)
  2. Confirmar presupuesto $175,000 MXN
  3. Asignar equipo a sprints
  4. Crear épica MAI-006 completa (RF, ET, US)

Semana 1 (Sprint 0)

  1. Setup de repositorio
  2. Migración de componentes GAMILIT
  3. Configurar ambientes
  4. Kickoff con equipo completo

Semana 2 (Sprint 1)

  1. Iniciar desarrollo MAI-001
  2. Daily standups
  3. 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