Ruta crítica de un proyecto de software: qué es, cómo se calcula y un ejemplo
La ruta crítica de un proyecto es la cadena más larga de tareas que dependen unas de otras: define el plazo mínimo, y si una de sus tareas se atrasa, se atrasa todo. Se calcula con el método CPM: el inicio y el fin más tempranos y más tardíos de cada tarea, y su holgura.
Por Ricardo Perez, desarrollador de software con 6 años de experiencia · · 8 min de lectura
Qué es la ruta crítica
El método de la ruta crítica (CPM, por Critical Path Method) nació a fines de los años 50 para planificar obras industriales, casi al mismo tiempo que el PERT. La idea es simple: en todo proyecto hay tareas que pueden ir en paralelo y otras que tienen que esperar a que termine una anterior. La cadena de esperas más larga es la ruta crítica, y su duración es el plazo mínimo del proyecto.
Por eso el plazo no es «horas totales ÷ personas». Un proyecto puede tener 58 días de trabajo y aun así no terminar antes de 37, por mucha gente que se sume.
Cómo se calcula, paso a paso
Lista las tareas y su duración. Puede ser la media de una estimación de tres puntos.
Marca las dependencias. Qué tareas necesitan que otra termine antes de empezar.
Pasada hacia adelante. Cada tarea empieza cuando terminan todas sus predecesoras (el mayor de sus fines). Así sale el inicio y el fin más tempranos, y el fin del proyecto.
Pasada hacia atrás. Desde el fin del proyecto, cada tarea debe terminar antes de que empiece la primera de sus sucesoras. Así sale el inicio y el fin más tardíos.
Holgura. Fin más tardío − fin más temprano. Las tareas con holgura cero forman la ruta crítica.
Ejemplo: el MVP de una tienda en línea
Ocho tareas, en días hábiles. Los datos y el login van primero, porque la API se modela sobre ellos; la base del frontend (proyecto, rutas, sistema de diseño) avanza en paralelo; los pagos y las pantallas se montan sobre la API, y el checkout necesita ambos.
Cálculo de la ruta crítica del MVP de una tienda en línea
Tarea
Días
Depende de
Inicio
Fin
Holgura
Modelo de datos (ruta crítica)
5
—
día 0
día 5
0
Autenticación
3
—
día 0
día 3
2 días
Base del frontend
10
—
día 0
día 10
12 días
API (núcleo) (ruta crítica)
15
Modelo de datos, Autenticación
día 5
día 20
0
Integración de pagos (ruta crítica)
10
API (núcleo)
día 20
día 30
0
Catálogo y carrito
8
Base del frontend, API (núcleo)
día 20
día 28
2 días
Checkout (ruta crítica)
5
Integración de pagos, Catálogo y carrito
día 30
día 35
0
Puesta en producción (ruta crítica)
2
Checkout
día 35
día 37
0
Modelo de datos (ruta crítica)
Días
5
Depende de
—
Inicio
día 0
Fin
día 5
Holgura
0
Autenticación
Días
3
Depende de
—
Inicio
día 0
Fin
día 3
Holgura
2 días
Base del frontend
Días
10
Depende de
—
Inicio
día 0
Fin
día 10
Holgura
12 días
API (núcleo) (ruta crítica)
Días
15
Depende de
Modelo de datos, Autenticación
Inicio
día 5
Fin
día 20
Holgura
0
Integración de pagos (ruta crítica)
Días
10
Depende de
API (núcleo)
Inicio
día 20
Fin
día 30
Holgura
0
Catálogo y carrito
Días
8
Depende de
Base del frontend, API (núcleo)
Inicio
día 20
Fin
día 28
Holgura
2 días
Checkout (ruta crítica)
Días
5
Depende de
Integración de pagos, Catálogo y carrito
Inicio
día 30
Fin
día 35
Holgura
0
Puesta en producción (ruta crítica)
Días
2
Depende de
Checkout
Inicio
día 35
Fin
día 37
Holgura
0
La ruta crítica es Modelo de datos → API (núcleo) → Integración de pagos → Checkout → Puesta en producción: 37 días. Fíjate en lo que no está en ella:
Base del frontend tiene 12 días de holgura. Puede empezar tarde o tomar más tiempo sin mover la fecha de término.
Catálogo y carrito tiene 2 días: poco margen. Si se atrasa más que eso, pasa a ser la ruta crítica.
Autenticación tiene 2 días, porque la API espera también al modelo de datos, que tarda más.
Por qué sumar personas no acorta el plazo
En el ejemplo hay 58 días de trabajo. Con una persona, el plazo lo fija la capacidad: 58 días. Con tres, en teoría serían 19,3, pero la ruta crítica exige 37: nadie puede integrar los pagos antes de que exista la API. Desde unas dos o tres personas, el plazo deja de depender del equipo y pasa a depender de la cadena.
Para acortarlo hay que trabajar sobre la ruta crítica misma:
Simplificar una tarea de la cadena, por ejemplo un checkout alojado por la pasarela de pago en vez de uno propio.
Sacar algo del primer MVP y dejarlo para una segunda etapa.
Romper una dependencia: acordar el contrato de la API al inicio para que el frontend y los pagos avancen en paralelo.
La ruta crítica en el cotizador
Arkrays calcula la ruta crítica sobre la arquitectura que dibujas, en el orden en que se construye un MVP y no en el sentido de las flechas del diagrama. Para la tienda acotada del cotizador la cadena es:
PostgreSQL → Node.js + NestJS → Pagos → Carrito / checkout → Puesta en producción
Con las integraciones entre esas piezas son 142 horas, el 47 % del esfuerzo de desarrollo. Con una persona la tienda sale en 12 a 22 semanas; con tres, en 6 a 11, y ahí ya manda la ruta crítica: una cuarta persona no lo acorta. Puedes probarlo con tu app en el cotizador de software, o leer cómo se estima cada tarea con puntos de función.
Ve la ruta crítica de tu app
Arma la arquitectura en el cotizador y la ruta crítica del MVP se calcula sola: ves qué cadena fija el plazo y cuánto baja con más personas.
La secuencia de tareas dependientes que más tarda de principio a fin. Sus tareas no tienen holgura: cualquier atraso en una de ellas atrasa la fecha de término del proyecto.
¿Cómo se calcula la ruta crítica?
+
Con una pasada hacia adelante se obtiene el inicio y el fin más tempranos de cada tarea; con una pasada hacia atrás, los más tardíos. La holgura es la diferencia entre ambos, y las tareas con holgura cero forman la ruta crítica.
¿Qué es la holgura de una tarea?
+
Cuánto puede atrasarse una tarea sin mover el término del proyecto. Una tarea con 12 días de holgura puede empezar hasta 12 días más tarde; una con holgura cero, no.
¿Agregar personas acorta la ruta crítica?
+
Solo si las tareas de la ruta se pueden dividir entre varias personas, y casi nunca del todo. Lo que sí acorta el plazo es simplificar la cadena: quitar una tarea de ella, reducirla o hacerla en paralelo.