# DEPENDENCIAS ENTRE MÓDULOS **Fecha:** 2025-12-05 **Versión:** 1.1 **Basado en:** LISTA-MODULOS-ERP-GENERICO.md + ALCANCE-POR-MODULO.md + DDL-SPEC SaaS --- ## Introducción Este documento define las dependencias entre los 18 módulos del ERP Genérico (14 core + 4 SaaS) y establece el orden óptimo de implementación. **Objetivo:** - Identificar qué módulos dependen de otros - Establecer orden de implementación que minimice bloqueos - Planificar sprints de desarrollo - Identificar riesgos de dependencias circulares **Metodología:** - **Dependencia fuerte:** Módulo B NO puede funcionar sin Módulo A (bloquea implementación) - **Dependencia débil:** Módulo B puede funcionar sin Módulo A, pero con funcionalidad limitada - **Dependencia opcional:** Módulo B puede usar Módulo A si está disponible, pero no es necesario --- ## Matriz de Dependencias ### Tabla Completa de Dependencias | Módulo | Código | Depende de (Fuerte) | Depende de (Débil) | Requerido por (Fuerte) | Nivel de Implementación | |--------|--------|---------------------|--------------------|-----------------------|------------------------| | **Fundamentos** | MGN-001 | - | - | TODOS (MGN-002 a MGN-014) | **Nivel 0** | | **Empresas** | MGN-002 | MGN-001 | - | MGN-004, MGN-005, MGN-006, MGN-007, MGN-010 | **Nivel 1** | | **Catálogos** | MGN-003 | MGN-001, MGN-002 | - | MGN-004, MGN-005, MGN-006, MGN-007, MGN-009 | **Nivel 1** | | **Mensajería** | MGN-014 | MGN-001 | - | MGN-013 | **Nivel 1** | | **Financiero** | MGN-004 | MGN-001, MGN-002, MGN-003 | - | MGN-006, MGN-007, MGN-008, MGN-012 | **Nivel 2** | | **Inventario** | MGN-005 | MGN-001, MGN-002, MGN-003 | - | MGN-006, MGN-007 | **Nivel 2** | | **RRHH** | MGN-010 | MGN-001, MGN-002, MGN-003 | - | MGN-011 | **Nivel 2** | | **Compras** | MGN-006 | MGN-004, MGN-005 | - | MGN-008 | **Nivel 3** | | **Ventas** | MGN-007 | MGN-004, MGN-005 | - | MGN-008, MGN-009, MGN-013 | **Nivel 3** | | **Analítica** | MGN-008 | MGN-004, MGN-006, MGN-007 | - | MGN-011, MGN-012 | **Nivel 4** | | **CRM** | MGN-009 | MGN-003, MGN-007 | MGN-014 | - | **Nivel 4** | | **Portal** | MGN-013 | MGN-001, MGN-007, MGN-014 | - | - | **Nivel 4** | | **Proyectos** | MGN-011 | MGN-008 | MGN-010 | - | **Nivel 5** | | **Reportes** | MGN-012 | MGN-004, MGN-008 | - | - | **Nivel 5** | | **Billing SaaS** | MGN-015 | MGN-001, MGN-002 (Tenants) | - | MGN-016, MGN-017, MGN-018 | **Nivel 6** | | **Payments POS** | MGN-016 | MGN-001, MGN-004, MGN-015 | - | - | **Nivel 7** | | **WhatsApp Business** | MGN-017 | MGN-001, MGN-003, MGN-015 | - | MGN-018 | **Nivel 7** | | **AI Agents** | MGN-018 | MGN-001, MGN-003, MGN-017 | - | - | **Nivel 8** | ### Visualización de Niveles de Implementación ``` Nivel 0 (Base): ┌─────────────┐ │ MGN-001 │ ← INICIO OBLIGATORIO │ Fundamentos │ └─────────────┘ Nivel 1 (Core Base): ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ MGN-002 │ │ MGN-003 │ │ MGN-014 │ │ Empresas │ │ Catálogos │ │ Mensajería │ └─────────────┘ └─────────────┘ └─────────────┘ Nivel 2 (Módulos Transaccionales Base): ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ MGN-004 │ │ MGN-005 │ │ MGN-010 │ │ Financiero │ │ Inventario │ │ RRHH │ └─────────────┘ └─────────────┘ └─────────────┘ Nivel 3 (Compras y Ventas): ┌─────────────┐ ┌─────────────┐ │ MGN-006 │ │ MGN-007 │ │ Compras │ │ Ventas │ └─────────────┘ └─────────────┘ Nivel 4 (Analítica y Complementarios): ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ MGN-008 │ │ MGN-009 │ │ MGN-013 │ │ Analítica │ │ CRM │ │ Portal │ └─────────────┘ └─────────────┘ └─────────────┘ Nivel 5 (Módulos Avanzados): ┌─────────────┐ ┌─────────────┐ │ MGN-011 │ │ MGN-012 │ │ Proyectos │ │ Reportes │ └─────────────┘ └─────────────┘ Nivel 6 (SaaS Platform - Base): ┌─────────────┐ │ MGN-015 │ │ Billing SaaS│ └─────────────┘ Nivel 7 (SaaS Platform - Integraciones): ┌─────────────┐ ┌─────────────┐ │ MGN-016 │ │ MGN-017 │ │ Payments POS│ │ WhatsApp │ └─────────────┘ └─────────────┘ Nivel 8 (SaaS Platform - AI): ┌─────────────┐ │ MGN-018 │ │ AI Agents │ └─────────────┘ ``` --- ## Detalle de Dependencias por Módulo ### MGN-001: Fundamentos **Nivel:** 0 (Base) **Depende de:** - ❌ Ninguno (es el módulo base) **Requerido por (Fuerte):** - ✅ **TODOS** los módulos (MGN-002 a MGN-014) **Razón:** Autenticación, autorización y multi-tenancy son fundamentales para cualquier funcionalidad del ERP. **Impacto de bloqueo:** - **CRÍTICO:** Si MGN-001 no está completo, NO se puede iniciar ningún otro módulo. - **Prioridad:** P0 - MÁXIMA - **Debe completarse en:** Sprint 1-2 --- ### MGN-002: Empresas y Organizaciones **Nivel:** 1 (Core Base) **Depende de:** - ✅ **MGN-001 (Fuerte):** Requiere autenticación de usuarios **Requerido por (Fuerte):** - ✅ **MGN-004 (Financiero):** Documentos contables deben tener company_id - ✅ **MGN-005 (Inventario):** Almacenes y productos por empresa - ✅ **MGN-006 (Compras):** Órdenes de compra por empresa - ✅ **MGN-007 (Ventas):** Órdenes de venta por empresa - ✅ **MGN-010 (RRHH):** Empleados por empresa **Razón:** Multi-empresa es requerimiento fundamental. Todos los documentos transaccionales deben tener company_id. **Impacto de bloqueo:** - **ALTO:** Bloquea módulos transaccionales (MGN-004 a MGN-007, MGN-010) - **Prioridad:** P0 - ALTA - **Debe completarse en:** Sprint 3 --- ### MGN-003: Catálogos Maestros **Nivel:** 1 (Core Base) **Depende de:** - ✅ **MGN-001 (Fuerte):** Requiere autenticación - ✅ **MGN-002 (Fuerte):** Empresa también es un partner **Requerido por (Fuerte):** - ✅ **MGN-004 (Financiero):** Partners, monedas - ✅ **MGN-005 (Inventario):** Categorías de productos, UoM - ✅ **MGN-006 (Compras):** Proveedores (partners) - ✅ **MGN-007 (Ventas):** Clientes (partners) - ✅ **MGN-009 (CRM):** Leads, clientes potenciales **Razón:** Datos maestros (partners, monedas, UoM) son usados por todos los módulos transaccionales. **Impacto de bloqueo:** - **ALTO:** Bloquea módulos transaccionales - **Prioridad:** P0 - ALTA - **Debe completarse en:** Sprint 3-4 --- ### MGN-004: Financiero Básico **Nivel:** 2 (Transaccional Base) **Depende de:** - ✅ **MGN-001 (Fuerte):** Autenticación - ✅ **MGN-002 (Fuerte):** Company_id en documentos - ✅ **MGN-003 (Fuerte):** Partners, monedas **Requerido por (Fuerte):** - ✅ **MGN-006 (Compras):** Facturas de proveedor - ✅ **MGN-007 (Ventas):** Facturas de cliente - ✅ **MGN-008 (Analítica):** Asientos con distribución analítica - ✅ **MGN-012 (Reportes):** Reportes financieros **Razón:** Compras y ventas generan facturas (documentos contables). Analítica requiere plan de cuentas. **Impacto de bloqueo:** - **ALTO:** Bloquea compras, ventas, analítica - **Prioridad:** P0 - ALTA - **Debe completarse en:** Sprint 5-8 --- ### MGN-005: Inventario Básico **Nivel:** 2 (Transaccional Base) **Depende de:** - ✅ **MGN-001 (Fuerte):** Autenticación - ✅ **MGN-002 (Fuerte):** Almacenes por empresa - ✅ **MGN-003 (Fuerte):** Categorías de productos, UoM **Requerido por (Fuerte):** - ✅ **MGN-006 (Compras):** Recepciones de productos - ✅ **MGN-007 (Ventas):** Entregas de productos **Razón:** Compras y ventas generan movimientos de inventario (pickings). **Impacto de bloqueo:** - **ALTO:** Bloquea compras y ventas - **Prioridad:** P0 - ALTA - **Debe completarse en:** Sprint 5-8 --- ### MGN-006: Compras Básico **Nivel:** 3 (Compras y Ventas) **Depende de:** - ✅ **MGN-004 (Fuerte):** Facturas de proveedor - ✅ **MGN-005 (Fuerte):** Recepciones de stock **Requerido por (Fuerte):** - ✅ **MGN-008 (Analítica):** Costos por proyecto **Razón:** Órdenes de compra generan facturas (MGN-004) y recepciones (MGN-005). Costos se distribuyen analíticamente (MGN-008). **Impacto de bloqueo:** - **MEDIO:** Bloquea analítica - **Prioridad:** P0 - ALTA - **Debe completarse en:** Sprint 9-10 --- ### MGN-007: Ventas Básico **Nivel:** 3 (Compras y Ventas) **Depende de:** - ✅ **MGN-004 (Fuerte):** Facturas de cliente - ✅ **MGN-005 (Fuerte):** Entregas de stock **Requerido por (Fuerte):** - ✅ **MGN-008 (Analítica):** Ingresos por proyecto - ✅ **MGN-009 (CRM):** Cotizaciones desde oportunidades - ✅ **MGN-013 (Portal):** Aprobación de cotizaciones **Razón:** Órdenes de venta generan facturas (MGN-004) y entregas (MGN-005). Ingresos se distribuyen analíticamente (MGN-008). CRM convierte leads a cotizaciones. Portal permite aprobación online. **Impacto de bloqueo:** - **MEDIO:** Bloquea analítica, CRM, portal - **Prioridad:** P0 - ALTA - **Debe completarse en:** Sprint 9-10 --- ### MGN-008: Contabilidad Analítica **Nivel:** 4 (Analítica y Complementarios) **Depende de:** - ✅ **MGN-004 (Fuerte):** Plan de cuentas, asientos - ✅ **MGN-006 (Fuerte):** Costos de compras - ✅ **MGN-007 (Fuerte):** Ingresos de ventas **Requerido por (Fuerte):** - ✅ **MGN-011 (Proyectos):** Proyectos vinculados a cuentas analíticas - ✅ **MGN-012 (Reportes):** P&L por proyecto **Razón:** Analítica consolida costos e ingresos de compras/ventas. Proyectos usan cuentas analíticas para tracking. **Impacto de bloqueo:** - **MEDIO:** Bloquea proyectos y reportes avanzados - **Prioridad:** P0 - ALTA (CRÍTICO para construcción) - **Debe completarse en:** Sprint 11 --- ### MGN-009: CRM Básico **Nivel:** 4 (Analítica y Complementarios) **Depende de:** - ✅ **MGN-003 (Fuerte):** Partners (clientes potenciales) - ✅ **MGN-007 (Fuerte):** Conversión de oportunidad a cotización - 🔸 **MGN-014 (Débil):** Actividades y notificaciones **Requerido por:** - ❌ Ninguno **Razón:** CRM convierte leads a cotizaciones (MGN-007). Usa actividades de mensajería (MGN-014) pero puede funcionar sin ellas. **Impacto de bloqueo:** - **BAJO:** No bloquea otros módulos - **Prioridad:** P1 - ALTA - **Puede completarse en:** Sprint 12-13 --- ### MGN-010: RRHH Básico **Nivel:** 2 (Transaccional Base) **Depende de:** - ✅ **MGN-001 (Fuerte):** Empleados vinculados a users - ✅ **MGN-002 (Fuerte):** Empleados por empresa - ✅ **MGN-003 (Fuerte):** Empleados vinculados a partners **Requerido por (Fuerte):** - ✅ **MGN-011 (Proyectos):** Timesheet de empleados **Razón:** Proyectos requieren timesheet de empleados. **Impacto de bloqueo:** - **BAJO:** Solo bloquea proyectos (timesheet es opcional) - **Prioridad:** P1 - ALTA - **Puede completarse en:** Sprint 14-15 --- ### MGN-011: Proyectos Genéricos **Nivel:** 5 (Módulos Avanzados) **Depende de:** - ✅ **MGN-008 (Fuerte):** Proyectos vinculados a cuentas analíticas - 🔸 **MGN-010 (Débil):** Timesheet de empleados (opcional) **Requerido por:** - ❌ Ninguno **Razón:** Proyectos usan analítica para tracking de costos/ingresos. Timesheet es opcional (puede registrarse sin RRHH). **Impacto de bloqueo:** - **BAJO:** No bloquea otros módulos - **Prioridad:** P1 - ALTA - **Puede completarse en:** Sprint 16-17 --- ### MGN-012: Reportes y Analytics **Nivel:** 5 (Módulos Avanzados) **Depende de:** - ✅ **MGN-004 (Fuerte):** Reportes financieros - ✅ **MGN-008 (Fuerte):** Reportes analíticos **Requerido por:** - ❌ Ninguno **Razón:** Reportes consumen datos de financiero y analítica. **Impacto de bloqueo:** - **BAJO:** No bloquea otros módulos - **Prioridad:** P2 - MEDIA - **Puede completarse en:** Sprint 18 --- ### MGN-013: Portal de Usuarios **Nivel:** 4 (Analítica y Complementarios) **Depende de:** - ✅ **MGN-001 (Fuerte):** Autenticación portal_user - ✅ **MGN-007 (Fuerte):** Cotizaciones para aprobación - ✅ **MGN-014 (Fuerte):** Mensajería en portal **Requerido por:** - ❌ Ninguno **Razón:** Portal permite aprobación de cotizaciones y comunicación con clientes. **Impacto de bloqueo:** - **BAJO:** No bloquea otros módulos - **Prioridad:** P1 - ALTA (CRÍTICO para INFONAVIT) - **Puede completarse en:** Sprint 14-15 --- ### MGN-014: Mensajería y Notificaciones **Nivel:** 1 (Core Base) **Depende de:** - ✅ **MGN-001 (Fuerte):** Usuarios para notificaciones **Requerido por (Fuerte):** - ✅ **MGN-013 (Portal):** Mensajería en portal **Requerido por (Débil):** - 🔸 **Todos:** Chatter, tracking, notificaciones (mejora experiencia) **Razón:** Mensajería mejora colaboración en todos los módulos. Es crítico para portal. **Impacto de bloqueo:** - **MEDIO:** Bloquea portal - **Prioridad:** P1 - ALTA - **Debe completarse en:** Sprint 12 (antes de portal) --- ### MGN-015: Billing SaaS **Nivel:** 6 (SaaS Platform - Base) **Depende de:** - ✅ **MGN-001 (Fuerte):** Autenticación y tenants - ✅ **MGN-002/Tenants (Fuerte):** Suscripciones vinculadas a tenants **Requerido por (Fuerte):** - ✅ **MGN-016 (Payments POS):** Facturación de transacciones - ✅ **MGN-017 (WhatsApp):** Feature flags y límites - ✅ **MGN-018 (AI Agents):** Feature flags y cuotas de uso **Razón:** Sistema de facturación SaaS con modelo per-seat. Gestiona suscripciones, planes (Starter, Growth, Enterprise), feature flags y facturación automática. **Impacto de bloqueo:** - **ALTO:** Bloquea todos los módulos SaaS dependientes - **Prioridad:** P0 para modelo SaaS - **Debe completarse en:** Fase 4 (post-core) --- ### MGN-016: Payments POS **Nivel:** 7 (SaaS Platform - Integraciones) **Depende de:** - ✅ **MGN-001 (Fuerte):** Autenticación - ✅ **MGN-004 (Fuerte):** Módulo financiero para asientos contables - ✅ **MGN-015 (Fuerte):** Billing para facturación **Requerido por:** - ❌ Ninguno **Razón:** Integración con terminales de pago (MercadoPago, Clip). Procesa transacciones POS y genera asientos contables automáticos. Soporta OAuth (MercadoPago) y API Keys (Clip). **Impacto de bloqueo:** - **BAJO:** No bloquea otros módulos - **Prioridad:** P1 para verticales retail/POS - **Puede completarse en:** Paralelo con MGN-017 --- ### MGN-017: WhatsApp Business **Nivel:** 7 (SaaS Platform - Integraciones) **Depende de:** - ✅ **MGN-001 (Fuerte):** Autenticación - ✅ **MGN-003 (Fuerte):** Catálogos (contactos con whatsapp_number) - ✅ **MGN-015 (Fuerte):** Feature flags para límites de mensajes **Requerido por (Fuerte):** - ✅ **MGN-018 (AI Agents):** Canal de comunicación para agentes **Razón:** Integración con WhatsApp Business Cloud API. Permite envío/recepción de mensajes, templates HSM, chatbots con flujos visuales y campañas de marketing. **Impacto de bloqueo:** - **ALTO:** Bloquea AI Agents que usan WhatsApp como canal - **Prioridad:** P0 para verticales con atención al cliente - **Puede completarse en:** Paralelo con MGN-016 --- ### MGN-018: AI Agents **Nivel:** 8 (SaaS Platform - AI) **Depende de:** - ✅ **MGN-001 (Fuerte):** Autenticación - ✅ **MGN-003 (Fuerte):** Catálogos (contactos) - ✅ **MGN-017 (Fuerte):** WhatsApp como canal de comunicación **Requerido por:** - ❌ Ninguno **Razón:** Agentes inteligentes con RAG (Retrieval Augmented Generation) usando pgvector. Permite crear knowledge bases, tools personalizados y conversaciones asistidas por IA integradas con WhatsApp. **Impacto de bloqueo:** - **BAJO:** No bloquea otros módulos - **Prioridad:** P1 para automatización de atención - **Debe completarse en:** Post WhatsApp --- ## Orden de Implementación Recomendado ### Sprint 1-2 (Fundamentos) - 50 SP **Objetivo:** Establecer base de seguridad y multi-tenancy. **Módulos:** 1. ✅ **MGN-001: Fundamentos** (50 SP) - Database: Schema auth_management - Backend: Módulo auth (JWT, RBAC, RLS) - Frontend: Login, signup, forgot password **Entregables:** - Usuarios pueden registrarse, autenticarse - Roles y permisos funcionando - Multi-tenancy operativo **Criterios de éxito:** - Test coverage 80%+ - Login funcional - RLS validado --- ### Sprint 3-4 (Core Base) - 65 SP **Objetivo:** Catálogos maestros y multi-empresa. **Módulos:** 2. ✅ **MGN-002: Empresas y Organizaciones** (30 SP) - Database: core.companies - Backend: Módulo companies - Frontend: Selector de empresa, configuración 3. ✅ **MGN-003: Catálogos Maestros** (35 SP) - Database: core.partners, core.currencies, core.countries, core.uom - Backend: Módulo catalogs - Frontend: Catálogos CRUD **Entregables:** - Multi-empresa funcional - Catálogos de partners, monedas, países, UoM - Context switching de empresa **Criterios de éxito:** - Usuario puede trabajar con múltiples empresas - Catálogos completos - Validación de RLS por empresa --- ### Sprint 5-8 (Módulos Transaccionales Base) - 150 SP **Objetivo:** Financiero e Inventario operativos. **Módulos:** 4. ✅ **MGN-004: Financiero Básico** (80 SP) - Database: Schema financial_management - Backend: Módulo financial - Frontend: Plan de cuentas, asientos, facturas 5. ✅ **MGN-005: Inventario Básico** (70 SP) - Database: Schema inventory_management - Backend: Módulo inventory - Frontend: Productos, almacenes, movimientos **Entregables:** - Contabilidad general funcional - Inventario con movimientos - Facturas y pagos - Valoración de inventario **Criterios de éxito:** - Asiento contable válido (débito = crédito) - Movimientos de stock correctos - Reportes financieros básicos (Balance, P&L) --- ### Sprint 9-10 (Compras y Ventas) - 120 SP **Objetivo:** Ciclo completo de compras y ventas. **Módulos:** 6. ✅ **MGN-006: Compras Básico** (60 SP) - Database: Schema purchasing_management - Backend: Módulo purchasing - Frontend: Órdenes de compra, RFQ 7. ✅ **MGN-007: Ventas Básico** (60 SP) - Database: Schema sales_management - Backend: Módulo sales - Frontend: Cotizaciones, órdenes de venta **Entregables:** - Ciclo completo: RFQ → PO → Recepción → Factura - Ciclo completo: Cotización → SO → Entrega → Factura - Integración con inventario y financiero **Criterios de éxito:** - 3-way match funcional (PO vs Recepción vs Factura) - Generación automática de pickings - Generación automática de asientos contables --- ### Sprint 11 (Analítica) - 45 SP **Objetivo:** Contabilidad analítica operativa (CRÍTICO para proyectos). **Módulos:** 8. ✅ **MGN-008: Contabilidad Analítica** (45 SP) - Database: Schema analytics_management - Backend: Módulo analytics - Frontend: Cuentas analíticas, reportes por proyecto **Entregables:** - Cuentas analíticas funcionales - Distribución analítica en transacciones - Reportes P&L por proyecto **Criterios de éxito:** - Campo analytic_account_id en todas las transacciones - Consolidación automática de líneas analíticas - Reporte P&L por proyecto correcto --- ### Sprint 12-13 (Mensajería y CRM) - 95 SP **Objetivo:** Colaboración y gestión comercial. **Módulos:** 9. ✅ **MGN-014: Mensajería y Notificaciones** (45 SP) - Database: Schema notifications_management - Backend: Módulo notifications (WebSocket) - Frontend: Chatter, notificaciones in-app 10. ✅ **MGN-009: CRM Básico** (50 SP) - Database: Schema crm_management - Backend: Módulo crm - Frontend: Pipeline kanban, leads **Entregables:** - Chatter funcional en documentos - Tracking automático de cambios - Pipeline de ventas operativo - Conversión lead → cotización **Criterios de éxito:** - Notificaciones en tiempo real (WebSocket) - Tracking automático sin código adicional - Pipeline kanban drag-and-drop --- ### Sprint 14-15 (RRHH y Portal) - 105 SP **Objetivo:** Recursos humanos y portal de clientes. **Módulos:** 11. ✅ **MGN-010: RRHH Básico** (55 SP) - Database: Schema hr_management - Backend: Módulo hr - Frontend: Empleados, contratos, asistencias 12. ✅ **MGN-013: Portal de Usuarios** (50 SP) - Database: Rol portal_user en auth - Backend: Módulo portal (RLS estricto) - Frontend: Portal separado **Entregables:** - Gestión de empleados completa - Timesheet básico - Portal de clientes funcional - Firma electrónica de cotizaciones **Criterios de éxito:** - Empleados vinculados a users y partners - Cliente puede aprobar cotización online - Firma electrónica válida legalmente --- ### Sprint 16-17 (Proyectos) - 65 SP **Objetivo:** Gestión de proyectos genéricos. **Módulos:** 13. ✅ **MGN-011: Proyectos Genéricos** (65 SP) - Database: Schema projects_management - Backend: Módulo projects - Frontend: Kanban de tareas, Gantt **Entregables:** - Proyectos vinculados a analítica - Tareas con kanban - Timesheet por tarea - Vista Gantt **Criterios de éxito:** - Proyecto crea cuenta analítica automáticamente - Timesheet genera líneas analíticas - Portal de proyectos funcional --- ### Sprint 18 (Reportes) - 40 SP **Objetivo:** Reportes y dashboards avanzados. **Módulos:** 14. ✅ **MGN-012: Reportes y Analytics** (40 SP) - Database: Schema reports_management - Backend: Módulo reports - Frontend: Dashboards, query builder **Entregables:** - Dashboards configurables - Reportes financieros estándar - Exportación PDF/Excel **Criterios de éxito:** - Reportes con filtros dinámicos - Exportación funcional - Dashboards por rol --- ### Sprint 19 (Buffer y Testing) - Buffer **Objetivo:** Testing exhaustivo, documentación, refinamiento. **Actividades:** - Testing E2E de flujos completos - Corrección de bugs - Documentación final - Optimizaciones de performance - Preparación para migración de ERP Construcción **Criterios de éxito:** - Test coverage 70%+ - Todos los flujos críticos validados - Documentación completa --- ## Riesgos de Dependencias ### Riesgos Críticos (P0) | Riesgo | Probabilidad | Impacto | Mitigación | |--------|--------------|---------|------------| | **MGN-001 se retrasa** | Baja | CRÍTICO | Prioridad MÁXIMA, equipo completo en Sprint 1-2, testing exhaustivo | | **MGN-004 (Financiero) muy complejo** | Media | ALTO | Seguir patrón Odoo, consultoría contable, validación temprana | | **MGN-008 (Analítica) mal diseñada** | Media | ALTO | Validar con ERP Construcción, seguir patrón Odoo, testing con datos reales | | **Dependencia circular no detectada** | Baja | MEDIO | Revisión de arquitectura en Sprint 0, validar con este documento | ### Riesgos Altos (P1) | Riesgo | Probabilidad | Impacto | Mitigación | |--------|--------------|---------|------------| | **MGN-005 (Inventario) subestimado** | Media | MEDIO | Buffer en Sprint 8, validar complejidad con Odoo | | **Integración MGN-006/007 con MGN-005 falla** | Media | ALTO | Testing de integración en Sprint 10, casos de prueba reales | | **MGN-014 (WebSocket) problemas de infraestructura** | Alta | MEDIO | Validación técnica temprana, fallback a polling | ### Riesgos Medios (P2) | Riesgo | Probabilidad | Impacto | Mitigación | |--------|--------------|---------|------------| | **Scope creep en módulos** | Alta | MEDIO | Validar con ALCANCE-POR-MODULO.md, rechazar funcionalidades no esenciales | | **Velocity sobrestimado** | Media | MEDIO | Buffer Sprint 19, priorizar P0 sobre P1 | --- ## Dependencias Críticas (Bloquean Otros Módulos) ### MGN-001 (Fundamentos) - **Bloquea:** TODOS los demás módulos (MGN-002 a MGN-014) - **Razón:** Autenticación, autorización, multi-tenancy son base para todo - **Prioridad:** P0 - MÁXIMA - **Acción:** Implementar PRIMERO en Sprint 1-2, equipo completo dedicado ### MGN-002 (Empresas) - **Bloquea:** MGN-004, MGN-005, MGN-006, MGN-007, MGN-010 - **Razón:** Documentos transaccionales requieren company_id - **Prioridad:** P0 - ALTA - **Acción:** Implementar en Sprint 3, validar RLS por empresa ### MGN-003 (Catálogos) - **Bloquea:** MGN-004, MGN-005, MGN-006, MGN-007, MGN-009 - **Razón:** Partners, monedas, UoM son datos maestros esenciales - **Prioridad:** P0 - ALTA - **Acción:** Implementar en Sprint 3-4, priorizar partners y UoM ### MGN-004 (Financiero) - **Bloquea:** MGN-006, MGN-007, MGN-008, MGN-012 - **Razón:** Compras y ventas generan facturas, analítica requiere plan de cuentas - **Prioridad:** P0 - ALTA - **Acción:** Implementar en Sprint 5-8, validar contabilidad con contador ### MGN-005 (Inventario) - **Bloquea:** MGN-006, MGN-007 - **Razón:** Compras y ventas generan movimientos de stock - **Prioridad:** P0 - ALTA - **Acción:** Implementar en Sprint 5-8, validar movimientos dobles ### MGN-008 (Analítica) - **Bloquea:** MGN-011, MGN-012 - **Razón:** Proyectos requieren cuentas analíticas, reportes usan datos analíticos - **Prioridad:** P0 - CRÍTICO (para construcción) - **Acción:** Implementar en Sprint 11, validar con ERP Construcción --- ## Dependencias Opcionales (No Bloquean) ### MGN-014 (Mensajería) → Módulos Transaccionales - **Tipo:** Débil (mejora experiencia, no bloquea) - **Razón:** Chatter y tracking son opcionales, módulos funcionan sin ellos - **Recomendación:** Implementar en Sprint 12 para mejorar UX ### MGN-010 (RRHH) → MGN-011 (Proyectos) - **Tipo:** Débil (timesheet es opcional) - **Razón:** Proyectos pueden funcionar sin timesheet de empleados - **Recomendación:** Implementar RRHH antes de proyectos para timesheet completo ### MGN-009 (CRM) → MGN-007 (Ventas) - **Tipo:** Débil (conversión lead → quotation es opcional) - **Razón:** Ventas puede funcionar sin CRM, cotizaciones se crean directamente - **Recomendación:** Implementar CRM después de ventas (Sprint 12-13) --- ## Validación de No-Circularidad ### Análisis de Grafos de Dependencias **Resultado:** ✅ NO hay dependencias circulares. **Validación:** - MGN-001 no depende de nadie - Todos los demás módulos forman un DAG (Directed Acyclic Graph) - Niveles de implementación (0 a 5) garantizan orden topológico **Posibles ciclos a evitar:** - ❌ MGN-007 (Ventas) → MGN-009 (CRM) → MGN-007: **NO EXISTE** (CRM depende de Ventas, no al revés) - ❌ MGN-004 (Financiero) → MGN-008 (Analítica) → MGN-004: **NO EXISTE** (Analítica depende de Financiero, no al revés) --- ## Timeline Consolidado ### Resumen por Trimestre **Q1 2026 (Meses 1-3) - Fundamentos y Core:** - Sprint 1-2: MGN-001 (Fundamentos) - 50 SP - Sprint 3-4: MGN-002 (Empresas) + MGN-003 (Catálogos) - 65 SP - Sprint 5-6: MGN-004 (Financiero) Parte 1 - 40 SP - **Total Q1:** 155 SP **Q2 2026 (Meses 4-6) - Módulos Transaccionales:** - Sprint 7-8: MGN-004 (Financiero) Parte 2 + MGN-005 (Inventario) - 110 SP - Sprint 9-10: MGN-006 (Compras) + MGN-007 (Ventas) - 120 SP - Sprint 11: MGN-008 (Analítica) - 45 SP - **Total Q2:** 275 SP **Q3 2026 (Meses 7-9) - Módulos Complementarios:** - Sprint 12-13: MGN-014 (Mensajería) + MGN-009 (CRM) - 95 SP - Sprint 14-15: MGN-010 (RRHH) + MGN-013 (Portal) - 105 SP - Sprint 16-17: MGN-011 (Proyectos) - 65 SP - **Total Q3:** 265 SP **Q4 2026 (Mes 10) - Reportes y Buffer:** - Sprint 18: MGN-012 (Reportes) - 40 SP - Sprint 19: Buffer, testing, documentación - **Total Q4:** 40 SP **TOTAL:** 735 SP en 19 sprints (38 semanas / 9.5 meses) --- ## Métricas de Dependencias | Métrica | Valor | |---------|-------| | **Total módulos** | 18 (14 core + 4 SaaS) | | **Módulos sin dependencias** | 1 (MGN-001) | | **Módulos con 1 dependencia** | 1 (MGN-002) | | **Módulos con 2 dependencias** | 4 (MGN-003, MGN-014, MGN-009, MGN-015) | | **Módulos con 3 dependencias** | 9 (MGN-004, MGN-005, MGN-006, MGN-007, MGN-010, MGN-013, MGN-016, MGN-017, MGN-018) | | **Módulos con 4+ dependencias** | 3 (MGN-008, MGN-011, MGN-012) | | **Dependencias totales (aristas)** | 42 | | **Profundidad máxima (niveles)** | 8 niveles (0 a 8) | | **Módulos críticos (bloquean 3+ módulos)** | 7 (MGN-001, MGN-002, MGN-003, MGN-004, MGN-005, MGN-008, MGN-015) | --- ## Recomendaciones Finales ### Para el Equipo de Desarrollo 1. **Respetar el orden de implementación:** NO saltar niveles sin completar dependencias 2. **Testing de integración temprano:** Validar integraciones entre módulos en cada sprint 3. **Documentar APIs claramente:** Facilitar integración entre módulos 4. **Validar con datos reales:** Usar datos de ERP Construcción para validar ### Para el Product Owner 1. **Priorizar P0 estrictamente:** NO agregar funcionalidades P1/P2 hasta completar P0 2. **Validar alcance con ALCANCE-POR-MODULO.md:** Rechazar scope creep 3. **Aceptar incrementos por módulo:** Cada sprint debe entregar módulo funcional 4. **Planificar migración:** Desde Sprint 11 (post-analítica), planear migración de Construcción ### Para el Arquitecto 1. **Validar dependencias en cada sprint:** Verificar que no se crean dependencias circulares 2. **Revisar integraciones:** Asegurar que límites entre módulos están claros 3. **Actualizar este documento:** Si cambian dependencias, actualizar inmediatamente 4. **Comunicar bloqueos:** Si un módulo se retrasa, comunicar impacto en dependientes --- ## Conclusión Las dependencias entre módulos están claramente definidas y validadas. El orden de implementación propuesto minimiza bloqueos y permite entregas incrementales. **Próximos pasos:** 1. Validar este orden con el equipo técnico 2. Iniciar Sprint 1 (MGN-001 Fundamentos) 3. Crear backlog detallado por módulo (Fase 2) 4. Planificar Fase 4 SaaS (MGN-015 a MGN-018) post-core --- **Documento creado:** 2025-11-23 **Última actualización:** 2025-12-05 **Versión:** 1.1 **Autor:** Architecture-Analyst **Estado:** ✅ Completado **Próxima Fase:** Fase 2 - Diseño Técnico Detallado