Saltar al contenido
jesusprodriguez.com

azure-project-status

Azure Boards: estado de proyecto

Informe de estado que sirve para decidir: avance frente a lo comprometido, bloqueos, scope entrante y qué no llega.

stack:
Azure DevOps
tarea:
Informar
versión:
v1.0.0
actualizada:
tamaño:
3.5 KB
lectura:
2 min
licencia:
CC-BY-4.0

Cuándo se activa

Antes de una daily, una demo o un comité, o al preguntar cómo va el proyecto.

description: Genera el estado real de un proyecto o sprint en Azure Boards - avance frente a lo comprometido, bloqueos, riesgos y qué llega y qué no. Úsala antes de una daily, una demo o un comité, o cuando pregunten cómo va el proyecto.

  • Sprint por WIQL
  • Ritmo proyectado
  • Bloqueos y riesgos
  • Variante para comité

Cómo se le pide

> Prepara el estado del sprint actual para la demo del viernes, con lo que no llega marcado.

Escríbeselo tal cual al agente: la skill se carga sola por la descripción, no hay que nombrarla.

Requiere azure-devops-cli Instala también estas: dan por hecho el acceso que esta skill necesita.

Cómo se instala

/plugin marketplace add https://jesusprodriguez.com/skills/marketplace.json
/plugin install azure-devops@jprodriguez-toolkit

La vía nativa, y la única que se actualiza sola: el marketplace se añade una vez y `/plugin marketplace update` trae las versiones nuevas. Las skills quedan con espacio de nombres propio (`azure-devops:azure-pr-review`).

El fichero, entero

Esto es exactamente lo que descargas: sin resúmenes ni recortes.

Azure Boards: estado de proyecto

Un informe de estado sirve para tomar una decisión. Si nadie decide nada al leerlo, no era un informe: era un volcado del tablero.

Datos que se recogen

Sprint actual, sin hardcodear fechas (@currentIteration se resuelve solo):

SELECT [System.Id], [System.WorkItemType], [System.Title], [System.State],
       [System.AssignedTo], [Microsoft.VSTS.Scheduling.StoryPoints],
       [Microsoft.VSTS.Common.Priority], [System.Tags]
FROM WorkItems
WHERE [System.TeamProject] = @project
  AND [System.IterationPath] = @currentIteration
  AND [System.State] <> 'Removed'

A eso se añaden tres fuentes que el tablero no cruza solo:

  • Bloqueos: work items con el tag Blocked o parados en el mismo estado más de 3 días (System.ChangedDate).
  • Entradas fuera de plan: items creados después de empezar el sprint (System.CreatedDate > <inicio de la iteración>). Es la explicación real de la mayoría de los sprints que no llegan.
  • Tendencia: la serie histórica sale de OData Analytics, no de WIQL. WIQL solo sabe cómo están las cosas ahora.

El informe

Cuatro bloques, en este orden. El titular primero:

SPRINT 42 · día 7 de 10

Vamos justos. 18 de 34 puntos cerrados; el ritmo da para 26 el viernes.
El PBI #1203 (export a PDF) no llega: decide si sale del sprint o
entra sin la plantilla de marca.

AVANCE          Done 18 · En curso 9 · Nuevo 7   (34 comprometidos)
BLOQUEOS        #1198  esperando credenciales del cliente        6d
                #1211  esperando revisión de @carlos             3d
FUERA DE PLAN   +8 puntos entrados tras el día 1 (3 bugs de producción)
RIESGOS         La migración #1190 depende de una ventana de
                mantenimiento que aún no está reservada

Reglas del titular:

  • Una frase que diga si se llega o no, sin adverbios de escape.
  • Si algo no llega, la frase siguiente propone la decisión concreta: sacarlo, recortar alcance o mover la fecha. No “hay riesgo de retraso”.
  • Nada de porcentajes de completitud por item (“al 80%”). Un PBI está hecho o no está hecho.

Cálculos honestos

  • Ritmo proyectado = puntos cerrados ÷ días transcurridos × días totales. Es una estimación grosera; preséntala como tal, nunca como una promesa.
  • Puntos, no items: contar tareas iguala un typo con una migración.
  • Los items sin estimar se listan aparte y se dicen en voz alta. Meterlos en el total como cero convierte el informe en ficción.
  • El scope entrante se separa siempre del comprometido. Un equipo que cierra 30 de 34 comprometidos + 8 entrados no ha fallado: le han cambiado el plan.

Lo que nunca va en el informe

  • Nombres asociados a lo que va mal. Los bloqueos son del equipo; el detalle individual es una conversación, no una diapositiva.
  • Métricas de actividad (commits, horas, items movidos) como medida de avance.
  • Verde en todo. Un informe sin ningún riesgo es un informe que no se ha mirado.

Variante para comité

Cuando el destinatario no es el equipo, cambian las unidades: fuera puntos y IDs de work item, dentro fechas comprometidas, alcance y decisiones pendientes. Máximo media página, y el primer párrafo se lee solo.