Auditoría de documentación
Lee un conjunto de documentación contra el sistema que describe e informa de cada punto en el que ambos discrepan.
Entregable
Un documento Markdown, documentation-audit.md, con la estructura fijada en Salida más abajo. Sus hallazgos son la entrada de Redacción de documentación técnica y de la corrección de cada documento que nombra.
Entradas obligatorias
- El conjunto de documentación — los documentos dentro del alcance y dónde vive cada uno.
- El sistema que describen — acceso de lectura al código, la configuración y las interfaces sobre las que los documentos afirman cosas.
- El lector al que sirve el conjunto — la auditoría informa de lo que falta, y lo que falta solo tiene sentido frente a un lector.
Sin los documentos y sin el sistema, detente e informa de cuál falta. La documentación no se puede auditar contra sí misma; un conjunto puede ser coherente por dentro y estar equivocado entero.
Entradas opcionales
- Un entorno donde se puedan ejecutar los comandos documentados
- La historia del sistema, para distinguir un comportamiento retirado de uno que nunca existió
- Las preguntas que los lectores hacen de verdad al soporte
- El dueño de cada documento, para que los hallazgos tengan a dónde ir
- Auditorías anteriores, y cuáles de sus hallazgos se aceptaron
- La entrega respecto a la que los documentos deberían estar al día
Sin un entorno, los ejemplos se comprueban leyendo en lugar de ejecutando, y cada hallazgo así se marca comprobado leyendo para que nadie lo dé por probado. Los dueños ausentes se registran como desconocido, no se asignan.
Ejecución
1 — Inventariar el conjunto. Cada documento dentro del alcance: dónde vive, qué dice cubrir, quién lo posee y cuándo cambió por última vez. Un documento que nadie nombró lo sigue leyendo alguien, así que recorre el árbol en lugar de trabajar con la lista que te dieron.
2 — Extraer las afirmaciones comprobables. De cada documento, cada afirmación que el sistema puede confirmar o contradecir: comandos, rutas, parámetros, nombres de opciones, valores por defecto, secuencias y comportamientos declarados. Las opiniones y los razonamientos no son comprobables y no se auditan aquí.
3 — Comprobar cada afirmación contra el sistema. Para cada una, encuentra el código o la configuración que la zanja. Registra juntas la ubicación en el documento y la ubicación en el sistema; un hallazgo que solo cita el documento es una opinión, y quien escribió el documento la tratará como tal.
4 — Ejecutar lo que se pueda ejecutar. Ejecuta los comandos y los ejemplos documentados en un entorno seguro y registra qué ocurrió. Donde no se pueda ejecutar nada, marca el hallazgo como comprobado leyendo y dilo en el informe, no en una nota al pie.
5 — Clasificar lo encontrado. Una afirmación contradicha por el sistema, un comando o una ruta que ya no existe, un ejemplo que fallaría, un comportamiento retirado que se sigue documentando y un comportamiento que existe y no está documentado en ninguna parte. Cada uno es una reparación distinta, así que cada uno lleva su propia lista.
6 — Encontrar lo que le falta al lector. Recorre la tarea que el lector debe completar y marca cada punto en el que tendría que adivinar, leer el código o preguntar a alguien. Un paso no documentado es un hallazgo aunque todo lo escrito sea correcto.
7 — Ordenar por el coste de creerlo. Ordena los hallazgos por lo que le ocurre a quien se fía de la afirmación equivocada — datos perdidos, accesos concedidos, tiempo tirado — y no por lo fácil que sea arreglarlo. Después registra qué quedó sin cubrir.
Salida
documentation-audit.md, en este orden:
- 1. Alcance y fecha — los documentos auditados, el estado del sistema contra el que se comprobaron y cuándo
- 2. Método — qué se ejecutó, qué se comprobó leyendo y qué no se comprobó en absoluto
- 3. Afirmaciones contradichas — por hallazgo: la ubicación en el documento, la afirmación, la ubicación en el sistema y qué es cierto en realidad
- 4. Procedimientos rotos — comandos, rutas o pasos que ya no existen, cada uno con su ubicación en el documento
- 5. Ejemplos que fallan — el ejemplo, dónde está y qué ocurrió al ejecutarlo o por qué fallaría
- 6. Comportamiento retirado aún documentado — qué se describe y la evidencia de que ya no está
- 7. Comportamiento sin documentar — qué existe, dónde y qué lector lo necesita
- 8. Huecos para el lector — el punto de la tarea en el que el lector tendría que adivinar, y qué necesita
- 9. Hallazgos por coste — cada hallazgo ordenado por la consecuencia de creerlo, con un dueño o
desconocido
- 10. Sin cubrir — documentos o afirmaciones que la auditoría no pudo comprobar, y por qué
Validación
El informe está listo cuando se cumple todo esto:
- Cada hallazgo de las secciones 3 a 7 cita una ubicación en el documento y una en el sistema
- Cada hallazgo está marcado como ejecutado o como
comprobado leyendo
- La sección 9 contiene todos los hallazgos de las secciones 3 a 8, ordenados por consecuencia
- Ningún hallazgo propone reescribir algo sin nombrar la afirmación que está mal
- La sección 10 no está vacía, o declara explícitamente que se comprobó el conjunto entero
- No aparece ninguna afirmación sobre el sistema que no se haya leído del sistema
Falla la ejecución si un hallazgo cita un documento sin citar la ubicación del sistema que lo contradice, o si se asigna una gravedad sin declarar la consecuencia que la sostiene.
Gestión de fallos
- Sin acceso al sistema — detente. Informa de que una auditoría sin el sistema compara documentos entre sí, y eso es corrección de estilo, no una auditoría.
- Sin entorno donde ejecutar — audita leyendo, marca cada hallazgo como
comprobado leyendo y declara en la sección 2 que no se ejecutó nada.
- El sistema está a mitad de un cambio — audita contra un estado con nombre, regístralo en la sección 1 y marca como
pendiente de <cambio> los hallazgos que ese cambio en curso resolvería.
- Un documento sin dueño — registra
desconocido en la sección 9 y lístalo en la sección 10. Un documento sin dueño acumula hallazgos y no se le arregla ninguno.
- El conjunto es demasiado grande para cubrirlo — audita primero los documentos de la tarea principal del lector, declara el límite en la sección 1, lista el resto en la sección 10 como sin cubrir y marca el informe como
PARCIAL.