Definición de requisitos no funcionales
Convierte deseos de calidad en requisitos que se pueden comprobar — y pide cada cifra a quien lo solicita en lugar de aportarla.
Entregable
Un documento Markdown, nfr-specification.md, con la estructura fijada en Salida más abajo. Es la entrada de Especificación de arquitectura de sistema, que no puede dar forma a un despliegue sin ella.
Entradas obligatorias
- Para qué sirve el sistema — quién lo usa, para qué lo usa y qué se le rompe cuando el sistema se degrada.
- La carga esperada, tal como la declare quien lo solicita — cuántos usuarios, con qué frecuencia y cómo es el pico. Declarada por una persona o medida de un sistema; nunca deducida por esta habilidad.
- Las restricciones de operación — dónde corre el sistema, con qué debe interoperar y qué obligaciones carga.
Si falta el propósito, detente y repórtalo. Si faltan la carga o las restricciones, produce la especificación con cada umbral afectado marcado como sin resolver y nombra quién debe aportarlo. Una cifra de carga inventada aquí se comprobaría, se cumpliría y seguiría sin tener relación con el sistema.
Entradas opcionales
- Mediciones del sistema tal como funciona ahora, o del sistema al que sustituye
- Las obligaciones que aplican: regulatorias, contractuales, de accesibilidad, de residencia de datos
- Lo que el negocio asocia a la degradación y a la indisponibilidad, en sus propios términos
- Los entornos e instrumentación disponibles para medir cada atributo
- Los usuarios y sus condiciones: dispositivos, redes, tecnología de apoyo, idioma
- Los requisitos fijados para una versión anterior y cuáles de ellos se cumplieron de verdad
Una entrada opcional ausente nunca se convierte en un número. Cuando no hay medición disponible, el requisito nombra la métrica, el punto de observación y el método, y deja el umbral como sin resolver con la persona que debe fijarlo.
Ejecución
1 — Tomar los deseos literalmente. Registra cada afirmación sobre calidad con las palabras con que llegó, con quién la dijo y cuándo. Rápido, fiable y seguro se registran tal cual. Son la entrada de esta habilidad, no su salida, y reescribirlos en este punto pierde a la persona que está detrás.
2 — Asignar cada deseo a un atributo. Rendimiento, disponibilidad, escalabilidad, seguridad, operabilidad, accesibilidad, cumplimiento. Un deseo que toca varios se divide en uno por atributo para que cada uno se mida por separado. El que no encaje en ninguno se arrastra como sin resolver en lugar de forzarse en el epígrafe más cercano.
3 — Nombrar la métrica antes que el número. Por cada atributo en juego: qué se mide, en qué unidad y observado dónde — en el cliente, en la frontera del sistema o dentro de un componente. Una métrica acordada antes de discutir el umbral es una discusión sobre el sistema. Al revés, es una discusión sobre el número.
4 — Pedir el umbral a quien lo solicita. Cada umbral sale de la persona responsable del resultado o de una medición de un sistema en marcha. Un umbral que ninguna de las dos fuentes aporta se registra como sin resolver — lo debe fijar <nombre>. Esta habilidad no propone ningún valor: ni objetivo, ni mínimo, ni marcador conservador.
5 — Declarar la condición bajo la que se sostiene cada requisito. La carga, el volumen de datos, el entorno, la concurrencia y el periodo sobre el que se toma la medición. Un umbral sin condición declarada se cumple trivialmente: en reposo, sin datos, con un solo usuario y en la red más rápida disponible.
6 — Declarar la consecuencia de incumplirlo. Qué le pasa a la persona usuaria, qué le pasa al negocio y qué le pasa a la publicación. Un requisito cuya consecuencia es que no pasa nada es una preferencia: se registra como tal y sale del conjunto que bloquea una publicación, para que ese conjunto siga siendo creíble.
7 — Contrastar el conjunto consigo mismo. Los requisitos que no pueden cumplirse todos a la vez — el coste de uno contra la respuesta de otro, el aislamiento de uno contra la operabilidad de otro — se registran como una renuncia con la persona que debe resolverla. Nunca se promedian en un conjunto que parezca alcanzable.
Salida
nfr-specification.md, en este orden:
- 1. Entrada y fecha — el propósito, la carga declarada, las restricciones, quién aportó cada cosa y cuándo
- 2. Deseos tal como se recibieron — literales, con quién los dijo y cuándo
- 3. Requisitos — por requisito: atributo, métrica, unidad, punto de observación, umbral o
sin resolver, condición, método de medición, consecuencia
- 4. Sin resolver — por elemento: la métrica, por qué no existe umbral y la persona que debe fijarlo
- 5. Preferencias — deseos sin consecuencia, fuera del conjunto que bloquea y registrados como preferencias
- 6. Conflictos — requisitos que no pueden cumplirse a la vez y la persona que debe resolver la renuncia
- 7. Plan de medición — por métrica: cómo se mide, dónde, con qué frecuencia y quién la mide
- 8. Preguntas abiertas — la pregunta, qué bloquea, quién puede responderla
Validación
La especificación está lista cuando se cumple todo esto:
- Cada deseo de la sección 2 aparece exactamente una vez en la sección 3, 4 o 5
- Cada requisito de la sección 3 nombra una métrica, un punto de observación y un método de medición
- Cada requisito de la sección 3 lleva un umbral con su fuente o la marca
sin resolver
- Cada requisito de la sección 3 declara la condición bajo la que se sostiene y la consecuencia de incumplirlo
- No aparece ningún umbral cuya fuente no sea una entrada o una medición
- La sección 4 nombra a una persona junto a cada umbral sin resolver
Falla la ejecución si algún umbral aparece sin fuente, o si un deseo se ha convertido en un número que ninguna entrada aportó.
Gestión de fallos
- No se declara el propósito — detente. Informa de que los atributos de calidad no se pueden ordenar sin saber para qué sirve el sistema, y de que cada atributo parece imprescindible por separado.
- Sin cifras de carga — produce la especificación completa con cada umbral dependiente de la carga como
sin resolver, nombra quién debe aportar las cifras y declara que nada del conjunto se puede comprobar hasta que existan.
- Se exige un número y no existe ninguno — entrega la métrica, el punto de observación, el método y la condición, y deja el umbral como
sin resolver. Informa de que un umbral elegido aquí se mediría, se cumpliría y no significaría nada.
- Deseos contradictorios de personas distintas — registra ambos literalmente con los dos nombres y eleva el conflicto a la sección 6 para que lo resuelva una persona con nombre. No los fundas en un valor intermedio.
- Material parcial — especifica los atributos que el material sostenga, marca el resto como
INCOMPLETO — pendiente de <pregunta> y entrega.