30 KiB
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:
- ✅ 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
- ✅ 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
- ✅ 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
- ✅ 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
- ✅ 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
- ✅ 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
- Respetar el orden de implementación: NO saltar niveles sin completar dependencias
- Testing de integración temprano: Validar integraciones entre módulos en cada sprint
- Documentar APIs claramente: Facilitar integración entre módulos
- Validar con datos reales: Usar datos de ERP Construcción para validar
Para el Product Owner
- Priorizar P0 estrictamente: NO agregar funcionalidades P1/P2 hasta completar P0
- Validar alcance con ALCANCE-POR-MODULO.md: Rechazar scope creep
- Aceptar incrementos por módulo: Cada sprint debe entregar módulo funcional
- Planificar migración: Desde Sprint 11 (post-analítica), planear migración de Construcción
Para el Arquitecto
- Validar dependencias en cada sprint: Verificar que no se crean dependencias circulares
- Revisar integraciones: Asegurar que límites entre módulos están claros
- Actualizar este documento: Si cambian dependencias, actualizar inmediatamente
- 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:
- Validar este orden con el equipo técnico
- Iniciar Sprint 1 (MGN-001 Fundamentos)
- Crear backlog detallado por módulo (Fase 2)
- 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