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

Las revisiones de CI/CD son las tareas peor definidas del backlog. 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 este 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 proyecto de gran envergadura». Tras tres sprints, el antiguo pipeline 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 iba en cabeza. Dos sprints».

Titular: «¿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».

Entrada: «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 tarea. Algunas son sencillas (el trabajo ya se ha replicado en el nuevo pipeline; basta con eliminar el YAML antiguo). Otros suponen un trabajo considerable (el conjunto 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 estime 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 finalice esta historia?
  • ¿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 reversión en caso de que la nueva canalización presentara un retroceso tras eliminar la antigua?
  • ¿Quién tiene la última palabra en cuanto a que «el nuevo canal de información es la fuente de la verdad»?
  • ¿Hay alguien que lleve un seguimiento, semana a semana, de qué trabajos 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 división horizontal frente a vertical para saber por qué «construir el nuevo sistema» es un eje de división erróneo, así como los demás ejemplos prácticos de estimación. Organice una sesión gratuita de «planning poker» una vez que el equipo disponga de una lista de elementos que se van a eliminar.