CPM aplicado en agile testing

  • Autor de la entrada:
  • Categoría de la entrada:Agile

¿Qué es CPM?

Concepto:

El Método del Camino Crítico (CPM, por sus siglas en inglés) es una técnica de gestión de proyectos utilizada para identificar las tareas esenciales que determinan la duración total del proyecto. Estas tareas son las que no pueden retrasarse sin afectar la fecha de finalización del proyecto.

Ejemplo:

En un proyecto de testing de software, las tareas pueden incluir la preparación del entorno de pruebas, la creación de casos de prueba, la ejecución de pruebas, la identificación y documentación de defectos, y la validación final. CPM ayuda a identificar cuáles de estas tareas son críticas y cuáles tienen cierta flexibilidad en cuanto a su cronograma.

Ruta Crítica / Critical Path Method (CPM)

Concepto:

La ruta crítica es la secuencia de tareas que determina la duración más corta posible para completar el proyecto. Cualquier retraso en las tareas de la ruta crítica retrasará el proyecto completo.

Ejemplo:

En un proyecto de testing, las tareas podrían ser:

  1. Preparación del entorno de pruebas (2 días)
  2. Creación de casos de prueba (5 días)
  3. Ejecución de pruebas de integración (3 días)
  4. Identificación y documentación de defectos (2 días)
  5. Pruebas de regresión (3 días)

Si estas tareas se realizan secuencialmente sin interrupciones, la ruta crítica es 2 + 5 + 3 + 2 + 3 = 15 días. Cualquier retraso en una de estas tareas extenderá la duración total del proyecto.

El objetivo principal es determinar la duración de las pruebas desde el inicio hasta el final

Concepto:

El objetivo del CPM en el contexto del testing es calcular el tiempo total requerido para completar todas las pruebas necesarias, desde el inicio del proceso hasta la finalización, asegurando que todos los hitos críticos se cumplen a tiempo.

Ejemplo:

En un ciclo de pruebas, identificas las siguientes tareas críticas:

  • Configuración del entorno de pruebas
  • Diseño de casos de prueba
  • Ejecución de pruebas de sistema
  • Pruebas de regresión
  • Revisión y cierre de pruebas

Utilizando CPM, podemos determinar que la duración total desde la configuración hasta la revisión y cierre es de 20 días. Esto te permite planificar y gestionar los recursos y actividades para asegurar que las pruebas se completen dentro de este período.

La longitud de la Ruta Crítica es igual a la trayectoria más larga del proyecto

Concepto:

La longitud de la ruta crítica es la suma de las duraciones de todas las tareas en la secuencia más larga del proyecto. Esta ruta establece la duración mínima para completar el proyecto.

Ejemplo:

Considera un proyecto de testing con las siguientes tareas:

  1. Configuración del entorno (3 días)
  2. Diseño de casos de prueba (4 días)
  3. Ejecución de pruebas de sistema (5 días)
  4. Identificación de defectos (2 días)
  5. Pruebas de regresión (3 días)

La ruta crítica sería: 3 (Configuración) + 4 (Diseño) + 5 (Ejecución) + 2 (Identificación) + 3 (Regresión) = 17 días.

Esta es la trayectoria más larga que determina la duración total del proyecto.

La duración de las pruebas es igual a la ruta crítica

Concepto:

La duración total del proceso de pruebas es determinada por la ruta crítica. Cualquier retraso en una tarea de la ruta crítica resultará en un retraso en la finalización del proyecto.

Ejemplo:

Si tu ruta crítica para un proyecto de testing es:

  1. Preparación del entorno (2 días)
  2. Creación de casos de prueba (6 días)
  3. Ejecución de pruebas de aceptación (4 días)
  4. Revisión de defectos críticos (3 días)

La duración total sería: 2 + 6 + 4 + 3 = 15 días.

Si, por ejemplo, la «Revisión de defectos críticos» se retrasa un día, la duración total del proyecto se extendería a 16 días.

Herramientas para Diseñar y Gestionar CPM

Existen varias herramientas que puedes usar para diseñar y gestionar un gráfico que represente el CPM (Camino Crítico) relacionado con testing. Aquí te menciono algunas de las más utilizadas:

  1. Microsoft Project

    • Descripción: Una de las herramientas más populares para la gestión de proyectos, Microsoft Project permite crear gráficos de CPM, diagramas de Gantt y gestionar todas las tareas del proyecto.
    • Características: Planificación de tareas, asignación de recursos, seguimiento del progreso, generación de informes.
    • Ejemplo: Puedes usar Microsoft Project para definir las tareas críticas en el ciclo de pruebas de software, establecer dependencias entre ellas y visualizar la ruta crítica en un diagrama de Gantt.
  2. JIRA con el complemento BigPicture

    • Descripción: JIRA es una herramienta ampliamente utilizada para la gestión de proyectos ágiles y seguimiento de bugs. Con el complemento BigPicture, puedes gestionar proyectos más complejos y visualizar la ruta crítica.
    • Características: Gestión de tareas, seguimiento de errores, planificación de sprint, gráficos de Gantt y CPM.
    • Ejemplo: En JIRA, puedes crear historias y tareas para cada fase del testing, usar BigPicture para visualizarlas en un diagrama de Gantt y resaltar la ruta crítica.

Planteo de una situación que se nos puede presentar

En un marco Scrum, cuando una tarea identificada en la ruta crítica se demora, es crucial abordar el problema rápidamente para minimizar el impacto en el sprint y en el proyecto en general. Te comparto un enfoque paso a paso para resolver este problema:

1. Identificar y Comprender el Retraso

Acción: Tan pronto como se detecta el retraso, el equipo debe realizar una reunión rápida para entender la causa del mismo.

Ejemplo: La tarea de «Ejecución de pruebas de integración» que debía durar 3 días ahora se espera que dure 5 días debido a problemas técnicos.

2. Evaluar el Impacto del Retraso

Acción: Determina cómo afectará el retraso a la ruta crítica y al sprint actual. Esto incluye evaluar si otras tareas dependientes también se verán afectadas.

Ejemplo: Si la «Ejecución de pruebas de integración» se retrasa 2 días, las «Pruebas de regresión» que dependen de su finalización también se retrasarán.

3. Reasignar Recursos

Acción: Revisa si hay recursos disponibles que puedan ser reasignados para ayudar a completar la tarea retrasada más rápidamente.

Ejemplo: Asigna un segundo tester para trabajar en paralelo y tratar de reducir el tiempo adicional necesario.

4. Repriorizar el Backlog

Acción: Revisa y ajusta el backlog del sprint para priorizar las tareas críticas y posibles tareas que puedan adelantarse sin afectar la ruta crítica.

Ejemplo: Mueve tareas menos críticas que no afectan la ruta crítica para más adelante, permitiendo que los recursos se enfoquen en las tareas retrasadas.

5. Revisar el Sprint Plan

Acción: Si el retraso es significativo, considera revisar el plan del sprint y ajusta las expectativas de entrega. Esto podría implicar mover algunas tareas no críticas al siguiente sprint.

Ejemplo: Durante la reunión diaria o una reunión especial, ajusta el plan del sprint para reflejar el nuevo cronograma y comunica estos cambios al equipo.

6. Actualizar la Comunicación con Stakeholders

Acción: Mantén informados a los stakeholders sobre el retraso y las medidas que se están tomando para mitigarlo. Transparencia es clave en Scrum.

Ejemplo: Informa al Product Owner y otras partes interesadas sobre el retraso y cómo afectará la entrega del sprint.

7. Monitorizar y Ajustar

Acción: Continúa monitorizando el progreso de la tarea retrasada y realiza ajustes según sea necesario. Asegúrate de que todos los miembros del equipo estén al tanto de cualquier cambio.

Ejemplo: Realiza seguimientos diarios para verificar si las medidas tomadas están ayudando a mitigar el retraso y ajusta según sea necesario.

8. Reflexionar en la Retrospectiva

Acción: En la reunión de retrospectiva del sprint, discute las causas del retraso y cómo se manejó. Identifica lecciones aprendidas y posibles mejoras para futuros sprints.

Ejemplo: Discute si hubo una falta de preparación que causó el retraso y cómo se pueden prevenir retrasos similares en el futuro.

Ejemplo Completo

  1. Identificar y Comprender el Retraso: La tarea «Ejecución de pruebas de integración» se retrasó 2 días debido a un problema técnico inesperado.
  2. Evaluar el Impacto: Este retraso afectará las «Pruebas de regresión», retrasando el sprint en 2 días.
  3. Reasignar Recursos: Asignamos un segundo tester para ayudar a completar las pruebas de integración más rápido.
  4. Repriorizar el Backlog: Movemos tareas no críticas para más adelante en el sprint.
  5. Revisar el Sprint Plan: Ajustamos el plan del sprint y comunicamos estos cambios al equipo.
  6. Actualizar la Comunicación: Informamos al Product Owner sobre el retraso y las medidas tomadas.
  7. Monitorizar y Ajustar: Seguimos de cerca el progreso de la tarea retrasada y ajustamos según sea necesario.
  8. Reflexionar en la Retrospectiva: Discutimos las causas del retraso y cómo mejorar la gestión de tareas críticas en el futuro.

Referencias relacionadas

Add in Critical Path Analysis(via story links) in JIRA (possibly as part of Roadmaps)
https://jira.atlassian.com/browse/JSWCLOUD-21122

How to check Critical Path of your Structure.Gantt – Jira Project Management
https://youtu.be/UnkEYrHjPkI?si=ivXKnb8iUdqm-3py

Demystifying BigPicture’s Critical Path Feature
https://youtu.be/Xp3KQq30i_c?si=vsfr2CPHwSyOL8lr

Critical Path – how to make it visible and filter out all issues which are not in the critical path?
https://community.atlassian.com/t5/Marketplace-Apps-Integrations/Critical-Path-how-to-make-it-visible-and-filter-out-all-issues/qaq-p/1047385

Gus Terrera

Apasionado por el agile testing y la ia.