# Definición de presupuesto de rendimiento

Convierte lo que un sistema debe transmitir en umbrales que una tubería puede exigir — y se niega a aportar una cifra que nadie ha acordado.

## Entregable

Un documento Markdown, `performance-budget.md`, con la estructura fijada en **Salida** más abajo. Es el patrón contra el que mide **Investigación de rendimiento**, y la condición que comprueba la tubería de publicación.

## Entradas obligatorias

- **Qué debe transmitir el sistema a sus usuarios** — qué interacciones importan, declarado por quien es dueño de la experiencia.
- **El umbral de cada una, de quien lo pide** — la cifra bajo la que debe quedarse la interacción. Esta habilidad registra umbrales; no los elige.
- **Las condiciones en las que están los usuarios** — los dispositivos, las redes y los volúmenes de datos bajo los que el presupuesto debe sostenerse.

Si faltan los umbrales, produce el documento con cada umbral escrito como `desconocido — lo debe aportar <responsable>` y reporta que el presupuesto no se puede exigir hasta que se aporten. Nunca sustituyas por una cifra tuya.

## Entradas opcionales

- Mediciones existentes de las interacciones en alcance, con dónde y cómo se tomaron
- Las herramientas de medición disponibles y qué puede observar cada una en cada entorno
- Las etapas de la tubería que podrían exigir un presupuesto y qué tienen permitido bloquear
- Compromisos contractuales o regulatorios sobre capacidad de respuesta o disponibilidad
- El patrón de tráfico que el presupuesto debe sostener, incluidos sus picos
- Presupuestos anteriores y el motivo por el que se cambió alguno

Una entrada opcional ausente nunca ablanda un presupuesto. Cada una pasa a **Preguntas abiertas**, y todo presupuesto cuyo punto de medición sea desconocido se registra como inexigible.

## Ejecución

**1 — Listar las interacciones que tienen que ser rápidas.** Una línea por interacción, cada una algo que un usuario realmente espera, nombrada desde el lado del usuario y no desde el grafo de llamadas. Una interacción que nadie espera no recibe presupuesto.

**2 — Asociar a cada una el umbral aportado.** Registra la cifra tal como se dio, la unidad tal como se dio y la persona que la dio. Cuando no se haya dado ninguna, escribe `desconocido — lo debe aportar <responsable>` y lleva la interacción adelante sin presupuesto. Un umbral inventado en este paso se convierte por accidente en el objetivo real del sistema.

**3 — Fijar el percentil.** Declara el percentil al que se mide cada umbral, aportado por el mismo responsable que aportó el umbral. Un presupuesto sostenido sobre una media se cumple mientras una parte de los usuarios queda fuera, y el documento solo puede nombrar esa parte una vez declarado el percentil.

**4 — Fijar las condiciones.** Por presupuesto: la clase de dispositivo, las condiciones de red, el volumen de datos y el estado de la caché bajo los que debe sostenerse. Un presupuesto que solo se sostiene en el caso más rápido se registra como sostenido solo en ese caso, en la misma línea que el umbral.

**5 — Nombrar el punto de medición.** Dónde se lee la cifra: qué entorno, qué instrumento, qué evento abre el intervalo y cuál lo cierra, y con qué frecuencia se muestrea. Un presupuesto sin punto de medición se registra como `inexigible`, porque nada puede incumplirlo nunca.

**6 — Decidir qué ocurre al superarlo.** Por presupuesto: qué etapa de la tubería lo comprueba, si un incumplimiento avisa o bloquea, a quién se notifica y cuál es la vía documentada para publicar igualmente. Un presupuesto que no puede hacer fallar nada es una preferencia con una cifra al lado.

**7 — Dar a cada presupuesto un responsable y un punto de revisión.** La persona que responde cuando se incumple y que puede cambiarlo, y el hito en el que el presupuesto se vuelve a considerar. Un presupuesto del que nadie es responsable se sube en silencio la primera vez que resulta incómodo.

## Salida

`performance-budget.md`, en este orden:

- **1. Alcance y fecha** — qué sistema, de quién son los requisitos, quién los recogió y cuándo
- **2. Interacciones** — una línea cada una: la interacción, quién la espera y por qué importa
- **3. Presupuestos** — por interacción: la métrica, el umbral tal como se aportó, la unidad, el percentil y quién los aportó
- **4. Condiciones** — por presupuesto: clase de dispositivo, red, volumen de datos, estado de la caché
- **5. Medición** — por presupuesto: entorno, instrumento, los eventos que abren y cierran el intervalo, frecuencia de muestreo
- **6. Exigencia** — por presupuesto: la etapa de la tubería, avisar o bloquear, a quién se notifica, la vía documentada para saltárselo
- **7. Responsables y revisión** — por presupuesto: el responsable y el punto en el que se vuelve a considerar
- **8. Interacciones sin presupuesto** — las que siguen adelante sin umbral y quién debe aportarlo
- **9. Preguntas abiertas** — la pregunta, qué bloquea, quién puede responderla

## Validación

El presupuesto está listo cuando se cumple todo esto:

- Cada interacción de la sección 2 aparece en la sección 3 o en la 8, y en exactamente una de ellas
- Cada umbral de la sección 3 nombra a la persona que lo aportó
- Cada presupuesto de la sección 3 declara una unidad y un percentil
- Cada presupuesto tiene punto de medición en la sección 5 o está marcado como `inexigible`
- Cada presupuesto nombra a un responsable en la sección 7
- No aparece en el documento ningún umbral que no haya aportado quien lo pide

Falla la ejecución si un umbral, una unidad o un percentil aparecen sin la persona que los aportó, o si alguna cifra del documento ha salido de esta habilidad.

## Gestión de fallos

- **No se aportaron umbrales** — produce todas las secciones, lista todas las interacciones en la sección 8, marca el documento como `NO EXIGIBLE` y nombra a quién debe aportar las cifras.
- **No se puede medir nada en el entorno que importa** — registra el presupuesto con su punto de medición `desconocido`, márcalo como `inexigible` y declara qué instrumentación lo haría exigible.
- **Los umbrales contradicen las condiciones declaradas** — registra ambos, nombra ambas fuentes y eleva el conflicto como una decisión que debe tomar el responsable. No relajes uno de ellos para que encaje con el otro.
- **La tubería no puede bloquear** — registra la exigencia como `solo aviso`, nombra a quien recibe el aviso y declara que un aviso del que nadie es responsable es un presupuesto solo de nombre.
- **Material parcial** — presupuesta las interacciones que el material sostenga, lista el resto en la sección 8 y entrega. Un presupuesto corto que se exige vale más que uno completo que es una aspiración.
