403 lines
16 KiB
Markdown
403 lines
16 KiB
Markdown
# RF-PROG-001: Programación de Obra y Curva S
|
||
|
||
**Épica:** MAI-005 - Control de Obra y Avances
|
||
**Versión:** 1.0
|
||
**Fecha:** 2025-11-17
|
||
|
||
---
|
||
|
||
## 1. Descripción General
|
||
|
||
Sistema de programación de obra con calendarización de actividades, asignación de frentes de trabajo y generación automática de curva S. Permite comparar avance programado vs ejecutado en tiempo real para detección temprana de desviaciones.
|
||
|
||
---
|
||
|
||
## 2. Objetivos de Negocio
|
||
|
||
- **Planeación:** Calendario maestro de obra con hitos clave
|
||
- **Control:** Seguimiento programado vs real semanal
|
||
- **Anticipación:** Detección de retrasos antes de que impacten la entrega
|
||
- **Visibilidad:** Curva S para clientes, dirección e INFONAVIT
|
||
|
||
---
|
||
|
||
## 3. Alcance Funcional
|
||
|
||
### 3.1 Programación Maestra de Obra
|
||
|
||
**Definición de Calendario:**
|
||
```
|
||
┌───────────────────────────────────────────────────────┐
|
||
│ PROGRAMACIÓN - Fracc. Los Pinos │
|
||
│ Inicio: 01/Ene/2025 | Entrega: 31/Dic/2025 (52 sem) │
|
||
├───────────────────────────────────────────────────────┤
|
||
│ ■ Hitos Clave │
|
||
│ 01/Ene/2025 Inicio de obra │
|
||
│ 15/Feb/2025 Fin excavación y cimentación │
|
||
│ 30/Abr/2025 Fin estructura (muros y losas) │
|
||
│ 31/Jul/2025 Fin instalaciones │
|
||
│ 30/Sep/2025 Fin acabados │
|
||
│ 15/Nov/2025 Fin urbanización │
|
||
│ 31/Dic/2025 Entrega final │
|
||
│ │
|
||
│ ■ Estructura de Programa │
|
||
│ Viviendas totales: 150 │
|
||
│ Etapas: 3 (50 viviendas c/u) │
|
||
│ Frentes simultáneos: 2-3 por etapa │
|
||
│ Duración estimada: 52 semanas │
|
||
│ │
|
||
│ ■ Restricciones │
|
||
│ No se puede iniciar estructura sin terminar cim. │
|
||
│ Instalaciones requiere muros al 100% │
|
||
│ Acabados requiere instalaciones al 100% │
|
||
└───────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 3.2 Programación por Actividad (Conceptos)
|
||
|
||
**Desglose de Conceptos:**
|
||
```
|
||
PROYECTO: Fracc. Los Pinos - Etapa 1 (50 viviendas)
|
||
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ Partida │ Duración│ Inicio │ Fin │ % Avance│Status││
|
||
├──────────────────┼─────────┼─────────┼─────────┼─────────┼─────┤│
|
||
│ 01-Preliminares │ 2 sem │01/Ene/25│14/Ene/25│ 100% │ ✓ ││
|
||
│ Limpia terreno │ 1 sem │01/Ene/25│07/Ene/25│ 100% │ ✓ ││
|
||
│ Trazo y niveles│ 1 sem │08/Ene/25│14/Ene/25│ 100% │ ✓ ││
|
||
│ │
|
||
│ 02-Cimentación │ 6 sem │15/Ene/25│25/Feb/25│ 85% │ 🟡 ││
|
||
│ Excavación │ 1.5 sem │15/Ene/25│25/Ene/25│ 100% │ ✓ ││
|
||
│ Plantilla │ 0.5 sem │26/Ene/25│29/Ene/25│ 100% │ ✓ ││
|
||
│ Cimentación │ 2 sem │30/Ene/25│12/Feb/25│ 90% │ 🟡 ││
|
||
│ Rellenos │ 2 sem │13/Feb/25│25/Feb/25│ 60% │ 🔴 ││
|
||
│ │
|
||
│ 03-Estructura │ 8 sem │26/Feb/25│22/Abr/25│ 12% │ ⏳ ││
|
||
│ Muros PB │ 3 sem │26/Feb/25│18/Mar/25│ 35% │ 🟡 ││
|
||
│ Losa PB │ 2 sem │19/Mar/25│01/Abr/25│ 0% │ ⏳ ││
|
||
│ Muros PA │ 2 sem │02/Abr/25│15/Abr/25│ 0% │ ⏳ ││
|
||
│ Losa azotea │ 1 sem │16/Abr/25│22/Abr/25│ 0% │ ⏳ ││
|
||
│ │
|
||
│ 04-Instalaciones │ 10 sem │23/Abr/25│02/Jul/25│ 0% │ ⏳ ││
|
||
│ 05-Acabados │ 12 sem │03/Jul/25│24/Sep/25│ 0% │ ⏳ ││
|
||
│ 06-Urbanización │ 6 sem │25/Sep/25│05/Nov/25│ 0% │ ⏳ ││
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
|
||
Leyenda:
|
||
✓ Completo 🟡 En proceso 🔴 Atrasado ⏳ No iniciado
|
||
```
|
||
|
||
### 3.3 Curva S (Programado vs Real)
|
||
|
||
**Vista Gráfica:**
|
||
```
|
||
CURVA S - Fracc. Los Pinos Etapa 1
|
||
Avance Acumulado (%)
|
||
|
||
100│ ╱─
|
||
│ ╱───
|
||
90│ ╱───
|
||
│ ╱──── Real (85%)
|
||
80│ ╱────
|
||
│ ╱──── Programado (92%)
|
||
70│ ╱────
|
||
│ ╱──── Desviación: -7%
|
||
60│╱────
|
||
│ Status: 🟡 RETRASO LEVE
|
||
50│
|
||
│
|
||
40│
|
||
│
|
||
30│
|
||
│
|
||
20│
|
||
│
|
||
10│
|
||
│
|
||
0└─────────────────────────────────────────────────────→
|
||
Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov Dic
|
||
|
||
■ Programado acumulado: 92%
|
||
■ Real acumulado: 85%
|
||
■ Desviación: -7 puntos porcentuales
|
||
■ Tendencia: Retraso leve, recuperable con aceleración
|
||
```
|
||
|
||
**Análisis de Desviación:**
|
||
```
|
||
┌──────────────────────────────────────────────────────┐
|
||
│ ANÁLISIS DE DESVIACIÓN - Semana 10 │
|
||
├──────────────────────────────────────────────────────┤
|
||
│ Avance programado: 92% │
|
||
│ Avance real: 85% │
|
||
│ Desviación: -7% 🟡 │
|
||
│ │
|
||
│ ■ Conceptos críticos atrasados: │
|
||
│ • Rellenos: -30% (60% vs 90% esperado) │
|
||
│ Causa: Lluvia y material húmedo │
|
||
│ Impacto: Retraso de 2 semanas │
|
||
│ │
|
||
│ • Muros PB: -15% (35% vs 50% esperado) │
|
||
│ Causa: Falta de cuadrilla de block │
|
||
│ Impacto: Retraso de 1 semana │
|
||
│ │
|
||
│ ■ Proyección al 100%: │
|
||
│ Si continúa tendencia: 3 semanas de retraso │
|
||
│ Entrega proyectada: 21/Ene/2026 ⚠️ │
|
||
│ vs Comprometida: 31/Dic/2025 │
|
||
│ │
|
||
│ ■ Plan de recuperación: │
|
||
│ ✓ Contratar cuadrilla adicional de block │
|
||
│ ✓ Acelerar rellenos (2 frentes simultáneos) │
|
||
│ ✓ Turno extra fin de semana por 3 semanas │
|
||
│ → Recuperación estimada: 2 semanas │
|
||
│ → Nueva proyección: 07/Ene/2026 (1 sem retraso) │
|
||
└──────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 3.4 Programación por Frentes de Trabajo
|
||
|
||
**Distribución de Viviendas:**
|
||
```
|
||
Etapa 1: 50 viviendas (Lotes 1-50)
|
||
|
||
┌──────────────────────────────────────────────────────┐
|
||
│ FRENTES DE TRABAJO - Semana 10 │
|
||
├──────────────────────────────────────────────────────┤
|
||
│ Frente A (Lotes 1-17) │
|
||
│ Actividad actual: Losa PB │
|
||
│ Avance: 95% (16 de 17 viviendas) │
|
||
│ Status: ✓ En tiempo │
|
||
│ Maestro: Juan Pérez │
|
||
│ │
|
||
│ Frente B (Lotes 18-33) │
|
||
│ Actividad actual: Muros PB │
|
||
│ Avance: 75% (12 de 16 viviendas) │
|
||
│ Status: 🟡 Leve retraso │
|
||
│ Maestro: Carlos López │
|
||
│ │
|
||
│ Frente C (Lotes 34-50) │
|
||
│ Actividad actual: Cimentación │
|
||
│ Avance: 85% (14 de 17 viviendas) │
|
||
│ Status: ✓ En tiempo │
|
||
│ Maestro: Miguel Hernández │
|
||
└──────────────────────────────────────────────────────┘
|
||
|
||
Vista Gantt por Frente:
|
||
│ S8 │ S9 │ S10 │ S11 │ S12 │ S13 │
|
||
───────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||
Frente A│████│████│████│Inst.│Inst.│Acab.│
|
||
Frente B│████│████│Muro│Losa │Inst.│Inst.│
|
||
Frente C│Cim.│Cim.│████│Muro│Losa │Inst.│
|
||
```
|
||
|
||
### 3.5 Hitos y Entregables
|
||
|
||
**Seguimiento de Hitos:**
|
||
```
|
||
┌──────────────────────────────────────────────────────┐
|
||
│ HITOS DEL PROYECTO │
|
||
├──────────────────────────────────────────────────────┤
|
||
│ Hito │ Fecha Prog│ Fecha Real│ Status ││
|
||
├────────────────────┼───────────┼───────────┼────────┤│
|
||
│ Inicio de obra │ 01/Ene/25 │ 01/Ene/25 │ ✓ ││
|
||
│ Fin trazo │ 14/Ene/25 │ 14/Ene/25 │ ✓ ││
|
||
│ Fin cimentación │ 15/Feb/25 │ 18/Feb/25 │ 🟡 +3d ││
|
||
│ 30% avance físico │ 28/Feb/25 │ 28/Feb/25 │ ✓ ││
|
||
│ Fin estructura │ 30/Abr/25 │ Proyect. │ ⏳ ││
|
||
│ 50% avance físico │ 15/May/25 │ Proyect. │ ⏳ ││
|
||
│ Fin instalaciones │ 31/Jul/25 │ Proyect. │ ⏳ ││
|
||
│ 80% avance físico │ 15/Ago/25 │ Proyect. │ ⏳ ││
|
||
│ Fin acabados │ 30/Sep/25 │ Proyect. │ ⏳ ││
|
||
│ Fin urbanización │ 15/Nov/25 │ Proyect. │ ⏳ ││
|
||
│ Entrega final │ 31/Dic/25 │ Proyect. │ ⏳ ││
|
||
└──────────────────────────────────────────────────────┘
|
||
|
||
Hitos críticos para financiamiento/INFONAVIT:
|
||
→ 30% avance: Desbloquea ministracion 2 ✓ Cumplido
|
||
→ 50% avance: Desbloquea ministracion 3 Pendiente
|
||
→ 80% avance: Desbloquea ministracion 4 Pendiente
|
||
```
|
||
|
||
### 3.6 Alertas Automáticas
|
||
|
||
**Tipos de Alertas:**
|
||
```
|
||
🔴 CRÍTICO: Retraso >10% en ruta crítica
|
||
Partida: Cimentación
|
||
Desviación: -12% (60% vs 72% programado)
|
||
Impacto: 2.5 semanas de retraso proyectado
|
||
Acción: Plan de aceleración requerido
|
||
|
||
🟡 WARNING: Retraso 5-10%
|
||
Partida: Muros PB
|
||
Desviación: -7% (35% vs 42% programado)
|
||
Impacto: 1 semana de retraso
|
||
Acción: Monitoreo estrecho
|
||
|
||
🟢 OK: En tiempo o adelantado
|
||
Partida: Losa PB (Frente A)
|
||
Avance: +3% (adelantado)
|
||
Status: Excelente
|
||
|
||
⏰ PRÓXIMO HITO: 15/Mar/2025 (3 días)
|
||
Hito: Fin de Muros PB
|
||
Probabilidad de cumplimiento: 85% 🟡
|
||
Requiere aceleración leve
|
||
```
|
||
|
||
---
|
||
|
||
## 4. Modelo de Datos
|
||
|
||
```typescript
|
||
// schedule (programa de obra)
|
||
{
|
||
id: UUID,
|
||
projectId: UUID,
|
||
version: INTEGER, // 1, 2, 3 (reprogramaciones)
|
||
status: ENUM('draft', 'approved', 'active', 'closed'),
|
||
|
||
startDate: DATE,
|
||
endDate: DATE,
|
||
totalDuration: INTEGER, // semanas
|
||
|
||
baselineDate: DATE, // fecha de aprobación de línea base
|
||
approvedBy: UUID,
|
||
|
||
metadata: JSONB,
|
||
createdAt: TIMESTAMP,
|
||
updatedAt: TIMESTAMP
|
||
}
|
||
|
||
// schedule_activities (actividades programadas)
|
||
{
|
||
id: UUID,
|
||
scheduleId: UUID,
|
||
activityCode: VARCHAR(20), // 02.01.03
|
||
activityName: VARCHAR(255),
|
||
|
||
budgetItemId: UUID, // vinculado a partida presupuestal
|
||
|
||
plannedStartDate: DATE,
|
||
plannedEndDate: DATE,
|
||
plannedDuration: INTEGER, // días
|
||
plannedQuantity: DECIMAL(12,4),
|
||
|
||
// Dependencias (finish-to-start por defecto)
|
||
predecessors: UUID[], // array de activity IDs
|
||
lag: INTEGER DEFAULT 0, // días de desfase
|
||
|
||
// Asignación
|
||
workfrontId: UUID, // frente de trabajo
|
||
responsibleId: UUID,
|
||
|
||
// Control
|
||
actualStartDate: DATE,
|
||
actualEndDate: DATE,
|
||
actualQuantity: DECIMAL(12,4),
|
||
percentComplete: DECIMAL(5,2) DEFAULT 0,
|
||
|
||
status: ENUM('not_started', 'in_progress', 'completed', 'delayed'),
|
||
|
||
isCriticalPath: BOOLEAN DEFAULT false,
|
||
isM ilestone: BOOLEAN DEFAULT false,
|
||
}
|
||
|
||
// workfronts (frentes de trabajo)
|
||
{
|
||
id: UUID,
|
||
projectId: UUID,
|
||
code: VARCHAR(20),
|
||
name: VARCHAR(255),
|
||
|
||
type: ENUM('by_zone', 'by_prototype', 'by_trade'),
|
||
|
||
assignedUnits: UUID[], // lotes/viviendas asignados
|
||
foremanId: UUID, // maestro responsable
|
||
crewSize: INTEGER,
|
||
|
||
isActive: BOOLEAN DEFAULT true,
|
||
}
|
||
|
||
// project_milestones (hitos)
|
||
{
|
||
id: UUID,
|
||
projectId: UUID,
|
||
code: VARCHAR(20),
|
||
name: VARCHAR(255),
|
||
|
||
milestoneType: ENUM('contractual', 'financing', 'internal'),
|
||
|
||
plannedDate: DATE,
|
||
baselineDate: DATE,
|
||
actualDate: DATE,
|
||
|
||
percentRequired: DECIMAL(5,2), // % de avance requerido
|
||
isFinancingGate: BOOLEAN, // desbloquea ministración
|
||
|
||
status: ENUM('pending', 'at_risk', 'achieved', 'missed'),
|
||
impact: VARCHAR(20), // low, medium, high, critical
|
||
}
|
||
|
||
// s_curve_snapshots (curva S histórica)
|
||
{
|
||
id: UUID,
|
||
projectId: UUID,
|
||
snapshotDate: DATE,
|
||
|
||
plannedProgressPct: DECIMAL(5,2),
|
||
actualProgressPct: DECIMAL(5,2),
|
||
variance: DECIMAL(5,2),
|
||
|
||
plannedValuePV: DECIMAL(15,2),
|
||
earnedValueEV: DECIMAL(15,2),
|
||
actualCostAC: DECIMAL(15,2),
|
||
|
||
spi: DECIMAL(5,3), // Schedule Performance Index = EV/PV
|
||
cpi: DECIMAL(5,3), // Cost Performance Index = EV/AC
|
||
|
||
createdAt: TIMESTAMP
|
||
}
|
||
|
||
// recovery_plans (planes de recuperación)
|
||
{
|
||
id: UUID,
|
||
projectId: UUID,
|
||
|
||
reason: TEXT,
|
||
plannedActions: JSONB,
|
||
/* [{
|
||
action: string,
|
||
responsibleId: UUID,
|
||
dueDate: DATE,
|
||
status: 'pending'|'done'
|
||
}] */
|
||
|
||
expectedRecovery: INTEGER, // días
|
||
actualRecovery: INTEGER,
|
||
|
||
status: ENUM('draft', 'approved', 'in_execution', 'completed'),
|
||
createdAt: TIMESTAMP
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Criterios de Aceptación
|
||
|
||
- [ ] Programación maestra con inicio/fin de proyecto
|
||
- [ ] Desglose de actividades vinculadas a presupuesto
|
||
- [ ] Dependencias entre actividades (lógica finish-to-start)
|
||
- [ ] Asignación de frentes de trabajo
|
||
- [ ] Curva S programado vs real
|
||
- [ ] Cálculo automático de SPI (Schedule Performance Index)
|
||
- [ ] Registro de hitos contractuales y de financiamiento
|
||
- [ ] Alertas automáticas de desviaciones >5%
|
||
- [ ] Proyección de fecha de término
|
||
- [ ] Plan de recuperación para retrasos
|
||
|
||
---
|
||
|
||
**Estado:** ✅ Ready for Development
|