Inicio / Verificar lo que devuelve
Una verificación muy rigurosa puede aun así no ver nada
Cuanto más disciplinado es un método de control, más da la ilusión de haberlo cubierto todo, porque solo puede juzgar lo que ya existe, nunca lo que falta por completo.
Una revisión adversa, por muy disciplinada que sea, siempre responde a una pregunta cerrada: ¿este fragmento de código hace lo que dice hacer? Relee archivos, funciones, pantallas que ya existen en el entregable que se le somete. Una pantalla nunca construida, una función nunca escrita, un flujo nunca conectado no aparecen en ningún sitio dentro de ese alcance, así que ninguna revisión, por minuciosa que sea, puede encontrarlos ahí.
Un control solo puede juzgar lo que existe
No es una debilidad de método, es un límite estructural del propio gesto: solo se relee lo que se ha escrito. La prueba se reduce a un único comando, que fabrica él mismo el archivo que interroga antes de interrogarlo, en lugar de depender de una correspondencia viva del proyecto susceptible de ser modificada entre la redacción de esta lección y su lectura:
$ printf 'v2m3l1\nv2m3l2\nv2m3l3\nv2m3l4\nv2m3l5\nv2m3l6\nv2m3l7\nv2m3l8\nv2m3l9\n' > planning.txt
$ grep -c "v2m3l10" planning.txt
0
$ echo "code de sortie : $?"
code de sortie : 1
El comando devuelve cero ocurrencias en su salida estándar, porque ninguna cadena coincide, y sí señala algo por otra vía: su código de salida vale 1, la convención por la que grep indica la ausencia de coincidencia. El código de salida forma parte de la salida, igual que el texto mostrado, e ignorarlo equivale a perder una parte de la información ya dada. Sin embargo, esta señal no dice que falte una lección: que la décima lección del módulo se haya olvidado por el camino o que nunca se haya planificado, el comando daría exactamente el mismo cero y el mismo código 1 en ambos casos. Un control confinado a lo que contiene el archivo no distingue estas dos situaciones.
El rigor agrava la ilusión en lugar de corregirla
El resultado es contraintuitivo: cuanto más disciplinado es un método de control sobre lo que mira, más confianza inspira su veredicto positivo, y más engañosa se vuelve esa confianza respecto a lo que no ha mirado en absoluto. Como en una revisión centrada en el último diff, un verde obtenido por un método serio se lee como una cobertura total, cuando no dice nada de lo que está ausente del alcance examinado.
Lo que cierra el punto ciego
Ninguna disciplina adicional aplicada al mismo gesto colma este vacío, ya que el gesto recae por construcción sobre lo existente. Lo que lo colma es una pregunta distinta, planteada fuera del código releído: un recorrido de usuario completo en lugar de una lista de casos que verificar, confiado a un uso real, aunque sea muy breve, llevado a cabo pronto por la persona interesada. Un uso así no es más riguroso que una revisión disciplinada, examina un alcance distinto, el que incluye la ausencia total, allí donde una revisión de código solo puede, por construcción, examinar lo que se ha escrito.
Lo que el rigor cambia, y lo que nunca cambia
A menudo fallado
Un control laxo deja pasar defectos que, sin embargo, están presentes en el código.
Fallado también, sin sorpresa
Un control laxo evidentemente no ve lo que nunca se ha escrito.
Lo que el rigor realmente cambia
Un control disciplinado relee lo que existe con el cuidado debido, sin que eso diga cuántos defectos escapan todavía a ese mismo alcance.
Fallado de todos modos
El mismo control, por riguroso que sea, no puede decir nada de una pantalla, una función o un recorrido nunca construidos: no está dentro de su alcance.
Una correspondencia de planificación describe un módulo de diez lecciones, numeradas del uno al diez, para un equipo de redacción. Varios agentes adversos reciben cada uno los archivos de las nueve lecciones ya redactadas, con la instrucción de buscar defectos en ellos. Cada agente entrega un informe de defectos limitado a los archivos que se le han transmitido.
Escribe en una frase lo que este resultado establece, y en una frase lo que no establece.
Lo que esto establece: Estas revisiones juzgan los archivos de lecciones que se les sometieron, sin decir nada de un archivo ausente de lo que examinaron.
Lo que esto no establece: El silencio de estas revisiones no establece que la ausencia de la décima lección sea menor o sin consecuencias, ni que un nuevo pase de revisión la detectará.
Los tres calibrados falsos más frecuentes
- Demasiado amplio Este silencio establece que la correspondencia está completa y que no falta ninguna lección en este módulo.
- Demasiado estrecho Este silencio no establece nada en absoluto sobre el trabajo hecho por estos agentes, ya que no se encontró ningún defecto.
- Fuera de lugar Este silencio muestra que el número de agentes movilizados era insuficiente para este trabajo.
- Una revisión adversa, por disciplinada que sea, solo juzga lo que ya existe en el alcance que se le somete, nunca lo que está totalmente ausente de él.
- Un control confinado a archivos existentes da el mismo silencio ante un elemento olvidado y ante un elemento que nunca se previó: no distingue los dos casos.
- Cuanto más riguroso es un método de control sobre su alcance, más inspira su verde una confianza que desborda ampliamente lo que realmente ha cubierto.
- Un uso real breve no es más riguroso que una revisión disciplinada: examina un alcance distinto, el que incluye la ausencia total.
Abre un producto o un entregable que acabas de hacer revisar con cuidado, e intenta llegar a su objetivo final sin seguir ninguna instrucción ni documentación. Anota cada punto en el que te detienes sin saber qué hacer. El número de puntos de bloqueo es tu resultado verificable, y cada uno es un candidato a un elemento que la revisión de código nunca pudo ver.