4dim / Notas

Un cuestionario que se relee con su versión

Alguien contesta en marzo, reescribes la pregunta en julio, y en noviembre el documento de marzo dice algo que esa persona nunca respondió. No da error y no hay forma de detectarlo leyéndolo. Cómo se cierra, y cuándo sube la versión.

La respuesta que ya no quiere decir lo mismo

Si guardas respuestas de un formulario y alguna vez vas a cambiar las preguntas —y vas a cambiarlas—, esta nota te ahorra descubrir dentro de un año que tus datos históricos no se pueden comparar.

Tienes un cuestionario. Alguien lo contesta en marzo. En julio reescribes una pregunta porque no se entendía. En noviembre alguien abre el diagnóstico de marzo.

¿Qué pregunta le enseñas? Si le enseñas la de julio, estás poniendo una respuesta de marzo debajo de una pregunta que esa persona nunca vio. Y si la reescritura cambió el sentido, el diagnóstico entero dice algo falso.

No es un error de programa. Es un documento que miente y que nadie puede detectar leyéndolo.

Lo peor es que no hay síntoma. La pantalla se pinta perfecta. Solo está mal.

Las preguntas viven en el código, no en la base

Primera decisión, y va en contra de lo que suele hacerse. El banco de preguntas está escrito en el código. No hay una tabla de preguntas ni una pantalla para editarlas.

El argumento tiene dos mitades. Una pregunta sin nada que la lea no sirve: cada pregunta existe porque algo la califica y la usa, y eso está programado. Poder inventar una desde una pantalla produciría preguntas que nadie interpreta.

Y al revés: afinar el texto de una pregunta no debería exigir un cambio de estructura en la base de datos. Si las preguntas estuvieran en tablas, cambiar una coma sería una operación sobre datos en producción.

Es el mismo criterio que aplicamos al catálogo de permisos, y por lo mismo: lo que define el comportamiento vive donde vive el comportamiento. Lo que se guarda son las respuestas.

Cada respuesta guarda con qué versión se contestó

La segunda decisión resuelve el problema del apartado 01.

El banco tiene un número de versión. Cada diagnóstico guarda la versión del banco que lo produjo, junto a las respuestas. Al abrirlo, se relee con su versión, no con la de hoy.

Eso convierte un documento que envejece mal en uno que no envejece: el de marzo sigue diciendo exactamente lo que dijo en marzo, para siempre, aunque el cuestionario cambie diez veces.

La regla de cuándo subir la versión es la parte que hay que escribir y que casi nadie escribe:

Cambio¿Sube la versión?
Corregir una tilde o una errataNo
Reordenar las opcionesNo
Cambiar lo que la pregunta quiere decirSí
Añadir o quitar opciones de respuestaSí

El criterio es el significado, no el texto. Subir la versión por cada corrección de estilo llenaría el histórico de versiones que no distinguen nada, y entonces nadie se fiaría del número.

Los rótulos cambian; las claves internas, no

Este es el detalle práctico que hace que todo lo anterior funcione, y es el que más fácil se rompe.

Al pasar a la segunda versión de nuestro cuestionario cambiamos las etiquetas de la primera pregunta: lo que se leía en pantalla pasó a ser «Rápido / Recomendado / Avanzado», que el prospecto entiende sin rodeos.

Pero las claves internas se quedaron como estaban. Lo que se guarda en la base sigue siendo el mismo identificador de siempre.

Si las hubiéramos cambiado a la vez, los diagnósticos de la primera versión guardarían valores que la nueva no sabe leer. La versión los protegería del cambio de sentido, pero no de un cambio de vocabulario.

Lo que se ve y lo que se guarda son dos cosas. Renombrar lo primero es gratis; renombrar lo segundo es una migración.

Lo que la segunda versión añadió

Vale la pena contar qué justificó subir de versión, porque enseña cuándo un cuestionario se ha quedado corto.

La primera versión ramificaba solo por profundidad: cuánto tiempo decía tener quien contestaba. Rápido, menos preguntas.

La segunda ramifica además por sector y por lo que ya se ha respondido. No tiene sentido preguntarle a una clínica por su catálogo de productos, ni insistir en campañas a quien acaba de decir que no hace publicidad.

Y se añadió una sección entera sobre operación, para cubrir los tres usos reales que le da un negocio a su base de clientes: atender, vender y hacer campañas. Faltaba, y se notaba en que los diagnósticos salían parecidos entre sí.

Ese es un buen indicador, por cierto: si todos tus diagnósticos se parecen, el problema no es la gente, son las preguntas.

Qué hacer entonces

  • Guarda con cada respuesta la versión del cuestionario. Aunque hoy tengas una sola versión. Añadirlo después obliga a adivinar qué versión contestó cada quien.
  • Escribe cuándo sube la versión. Por significado, no por texto. Si no está escrito, cada persona lo decidirá distinto.
  • Separa el rótulo de la clave. Lo que lee la persona cambia cuando quieras; lo que se guarda, casi nunca.
  • Al abrir un documento viejo, reléelo con su versión. Nunca con la de hoy, aunque sea más cómodo.
  • Si tus formularios salen todos parecidos, cambia las preguntas.Y cuando lo hagas, sube la versión: acabas de cambiar el significado.

Esta nota sale de nuestro trabajo en Desarrollo de Software a medida.

← todas las notas