El trabajo en la canalización no tiene demostración. Filtre por «qué compilación se puede eliminar hoy» para que siga siendo estimable.

Las revisiones de CI/CD son las tareas peor definidas de la lista de tareas pendientes. No hay ningún resultado visible para el usuario, ni demostración, ni captura de pantalla que nadie pueda incluir en las notas de la versión. El trabajo es de carácter estructural: sustituir un pipeline por otro, migrar un sistema de compilación, consolidar tres ejecutores de pruebas en uno solo, pasar de un script de shell creado a mano a un archivo de flujo de trabajo adecuado. El equipo sabe que hay que realizar ese trabajo. El equipo también sabe que llevará un trimestre, y que ese trimestre pasará desapercibido fuera del departamento de ingeniería.

El modo de fallo de la estimación es previsible. El equipo vota por el 13 porque «se trata de una refactorización, es un trabajo de gran envergadura». Tras tres sprints, el proceso antiguo sigue funcionando en paralelo al nuevo, los dos sistemas están parcialmente configurados y cada ingeniero tiene un modelo mental diferente sobre cuál de ellos debe utilizarse. La historia no está terminada porque no existe una definición de «terminado»: los procesos no se «lanzan»; se adoptan, y la adopción es una cuestión distinta de «que lo nuevo exista».

Lo que se dice en la sala

SRE: «Tenemos que dejar atrás al corredor que va en cabeza. Dos sprints».

Enfoque: «¿Cuál es la definición de “terminado”?»

SRE: «…el nuevo funciona».

Titular: «El nuevo ya nos sirve para la mitad de nuestros trabajos».

Backend: «Pero el antiguo sigue funcionando para la otra mitad».

Enlace principal: «Exacto. Así que habremos terminado cuando podamos borrar el antiguo».

Esa es la clave. La tarea no consiste en «construir el nuevo proceso»; es probable que el equipo ya lo hubiera creado hace meses, en una prueba rápida realizada por alguien en su tiempo libre. La tarea consiste en «eliminar el antiguo proceso». Hasta que el antiguo sistema de compilación no haya desaparecido, la renovación no habrá concluido; se trata de una infraestructura paralela con todos los costes y ninguna ventaja. Definir la tarea como eliminación en lugar de creación proporciona al equipo una definición de «terminado» sobre la que puede votar.

Cómo cortarlo

Haga un inventario de los trabajos que aún se están ejecutando en el sistema antiguo. Para cada trabajo: ¿qué se necesitaría para eliminar la versión antigua? Eso constituye una «historia». Algunas son sencillas (el trabajo ya se ha replicado en el nuevo pipeline; basta con eliminar el YAML antiguo). Otros suponen un trabajo considerable (la suite de pruebas tiene una ruta codificada; el paso de implementación depende de una variable de entorno antigua). Cada eliminación es una pequeña parte que el equipo puede entregar y mostrar. «Hemos eliminado el archivo Jenkinsfile del servicio de autenticación» es un resultado que se puede mostrar.

Cada eliminación se puede estimar de la forma habitual: analice primero las incógnitas (¿tiene este trabajo usuarios que desconocemos?), y a continuación calcule la eliminación comparándola con una eliminación de referencia que ya haya implementado. La mayoría de las partes se sitúan en 2 o 3 puntos. La historia que se presentaba como «13, refactorización, grande» resultaba ser, en realidad, quince «2» y un «3» camuflados.

Preguntas que conviene plantearse antes de votar

  • ¿Qué se eliminará cuando esta historia haya terminado?
  • ¿Qué puestos de trabajo siguen dependiendo del antiguo sistema?
  • ¿Existe algún usuario del antiguo proceso del que no tengamos constancia, como, por ejemplo, un equipo externo o una tarea programada?
  • ¿Cuál sería la solución de reversión si el nuevo proceso presentara un retroceso tras eliminar el antiguo?
  • ¿Quién tiene la última palabra sobre la afirmación de que «el nuevo canal de información es la fuente de la verdad»?
  • ¿Hay alguien que lleve un seguimiento, semana a semana, de qué tareas se ejecutan en el sistema antiguo y cuáles en el nuevo?

Si la respuesta a «¿qué se elimina?» es «nada en este sprint», el equipo sigue en la fase de infraestructura paralela y la historia no supera la comprobación de preparación.

Los trabajos en la tubería se realizan una vez que se haya retirado la antigua. Proceda por etapas; calcule cada retirada por separado.

Consulte la sección «División horizontal frente a vertical» para comprender por qué «crear el nuevo sistema» es un eje de división erróneo, así como otros ejemplos de estimación que han funcionado. Organice una sesión gratuita de «planning poker» una vez que el equipo disponga de una lista de elementos que se van a eliminar.