El oficio: descubrir el problema antes de describir la solución
Un analista de requisitos no toma nota de lo que se le pide: averigua qué necesidad hay detrás y la deja escrita de forma que pueda construirse, comprobarse y, llegado el caso, cambiarse. La disciplina tiene un cuerpo de conocimiento reconocido (la guía BABOK del IIBA) y normas internacionales para la especificación (ISO/IEC/IEEE 29148, que sustituyó a la antigua IEEE 830).
Hay una razón económica para tomárselo en serio: un requisito mal entendido es el defecto más barato de evitar y el más caro de corregir. Descubrirlo en una conversación cuesta minutos; descubrirlo con el sistema en producción obliga a rehacer diseño, código, pruebas y, a veces, la confianza del cliente.
Si no lo es, se vuelve a la elicitación. Es el punto más barato para corregir.
Construcción y comprobación
Las seis áreas de conocimiento de BABOK
La guía organiza el trabajo del analista de negocio en áreas que conviene tener presentes como mapa:
| Área | Pregunta que contesta |
|---|---|
| Planificación y seguimiento | ¿Cómo vamos a hacer el análisis y con quién? |
| Elicitación y colaboración | ¿Cómo obtenemos la información y mantenemos la relación con los interesados? |
| Gestión del ciclo de vida de requisitos | ¿Cómo se rastrean, priorizan y cambian a lo largo del tiempo? |
| Análisis estratégico | ¿Cuál es la situación actual, el estado deseado y la brecha? |
| Análisis y diseño de la definición de requisitos | ¿Cómo se especifican y modelan para poder construirlos? |
| Evaluación de la solución | ¿Aporta el valor esperado una vez construida? |
Entender el contexto: interesados y objetivos
Antes de recoger ningún requisito hay que saber para qué se hace el proyecto y quién tiene voz en él.
Mapa de interesados
Un interesado (stakeholder) es cualquier persona u organización afectada por el sistema o con capacidad de afectarlo. Se suelen olvidar tres grupos: quien mantiene el sistema, quien opera la infraestructura y quien audita (legal, seguridad, protección de datos).
| Poder alto, interés alto | Poder alto, interés bajo |
|---|---|
| Gestionar de cerca: participan en las decisiones | Mantener informados de lo esencial y sin sorpresas |
| Poder bajo, interés alto | Poder bajo, interés bajo |
| Mantener informados y escuchar: suelen ser usuarios finales | Vigilar sin dedicarles esfuerzo |
Esta rejilla poder-interés (atribuida a Mendelow) no sustituye a la conversación, pero obliga a hacerse la pregunta: ¿a quién no hemos escuchado todavía?
Del objetivo al requisito
Un requisito que no se puede conectar con un objetivo de negocio es un candidato a eliminar. Conviene subir de nivel hasta encontrar el objetivo con preguntas encadenadas, como las cinco preguntas «por qué»:
- «Necesitamos un botón para exportar a hoja de cálculo.» ¿Por qué?
- «Para enviar un informe cada semana.» ¿Por qué?
- «Porque dirección pide ver las ventas por zona.» ¿Por qué?
- «Para decidir dónde abrir la siguiente tienda.»
El requisito real era un informe de ventas por zona que sirva para decidir aperturas. Quizá la exportación sea la solución, quizá no.
El mapa de impacto (Gojko Adzic) formaliza esta cadena: objetivo, actores que pueden ayudar a conseguirlo o estorbar, cambios de comportamiento deseados y, solo al final, entregables.
Elicitación: obtener información que nadie sabe que tiene
La elicitación no es preguntar «¿qué quieres?». Mucho conocimiento es tácito: quien lo posee no lo verbaliza porque para él es evidente.
Técnicas
Se usa para validar lo recogido con las otras técnicas.
| Técnica | Qué descubre bien | Limitación |
|---|---|---|
| Entrevista | Motivaciones, reglas de negocio, excepciones | Solo cuenta lo que la persona recuerda y quiere contar |
| Observación (en el puesto de trabajo) | Lo que de verdad se hace, los atajos y las hojas de cálculo paralelas | Cuesta tiempo y puede alterar el comportamiento observado |
| Taller facilitado | Conflictos entre áreas, consenso rápido | Dominan las voces más fuertes si no se modera |
| Análisis documental y de datos | Procesos reales, normativa, volúmenes | Los documentos suelen estar desfasados |
| Prototipado | Reacciones a algo tangible; requisitos de interfaz | Un prototipo vistoso se confunde con un producto terminado |
| Cuestionario | Opiniones de muchos usuarios a bajo coste | Preguntas cerradas, sin posibilidad de repreguntar |
| Análisis de sistemas existentes | Funciones que los usuarios dan por supuestas | Perpetúa defectos del sistema anterior |
Preguntar bien
- Preguntas abiertas para explorar («¿Cómo lo haces hoy?») y cerradas para confirmar («¿Siempre se aprueba antes del viernes?»).
- Pedir ejemplos concretos y casos recientes en lugar de generalidades.
- Preguntar por la excepción: «¿Qué pasa cuando falta ese dato?», «¿Quién lo aprueba si el responsable está de vacaciones?».
- Evitar preguntas que sugieren la respuesta o que proponen la solución.
- Cerrar cada sesión devolviendo un resumen por escrito para que el entrevistado lo corrija.
Jobs to be done
Otra forma de plantear la entrevista es preguntar por el trabajo que la persona intenta resolver y qué contrata hoy para hacerlo: «Cuando [situación], quiero [motivación], para [resultado esperado]». Es útil cuando los usuarios no saben describir la funcionalidad, pero sí cuentan con claridad qué les frustra.
Tipos y niveles de requisito
Clasificación
| Tipo | Ejemplo |
|---|---|
| De negocio | Reducir el plazo de facturación de diez a cinco días |
| De interesado | La contable necesita conciliar los cobros sin salir de la aplicación |
| De solución, funcional | El sistema deberá generar la factura en PDF al confirmar el pedido |
| De solución, no funcional | El PDF deberá generarse en menos de tres segundos |
| De transición | Los clientes actuales se migrarán sin reintroducir datos |
| Restricción | Los datos personales residirán en la Unión Europea |
Requisitos no funcionales con rigor
«Debe ser rápido» no es un requisito. La norma ISO/IEC 25010 ofrece una lista de características de calidad para no olvidar ninguna: adecuación funcional, eficiencia de desempeño, compatibilidad, usabilidad, fiabilidad, seguridad, mantenibilidad y portabilidad.
Para hacerlos medibles, la técnica del Software Engineering Institute son los escenarios de atributo de calidad, con seis partes: fuente del estímulo, estímulo, artefacto, entorno, respuesta y medida de la respuesta.
Fuente: usuario autenticado
Estímulo: solicita el listado de pedidos del último año
Artefacto: servicio de consulta de pedidos
Entorno: funcionamiento normal, hasta 200 usuarios simultáneos
Respuesta: se muestra la primera página de resultados
Medida: el 95 % de las peticiones responde en menos de 800 msCada línea elimina una ambigüedad: quién, cuándo, con qué carga y cómo se comprueba.
Cualidades de un buen requisito
La norma ISO/IEC/IEEE 29148 enumera las características que debe tener un requisito individual y el conjunto:
| Característica | Pregunta de control |
|---|---|
| Necesario | Si se elimina, ¿falta algo que importe? |
| Inequívoco | ¿Dos personas lo interpretarían igual? |
| Completo | ¿Se entiende sin leer otro documento? |
| Singular | ¿Expresa una sola cosa? Si lleva «y», quizá son dos |
| Factible | ¿Se puede lograr con el coste, plazo y tecnología disponibles? |
| Verificable | ¿Se puede demostrar que se cumple? |
| Consistente | ¿Choca con otro requisito? |
| Independiente de la solución | ¿Dice qué, no cómo? |
Palabras que delatan un requisito débil
- Subjetivas: rápido, fácil, intuitivo, robusto, moderno, flexible.
- Cuantificadores vagos: algunos, muchos, normalmente, a menudo.
- Escapatorias: «si es posible», «en la medida de lo posible», «etc.».
- Voz pasiva sin sujeto: «se notificará al usuario» (¿quién lo hace y cuándo?).
- Comparativos sin referencia: «más rápido», «mejor» (¿que qué?).
Plantillas de redacción: EARS
EARS (Easy Approach to Requirements Syntax) propone un puñado de frases con estructura fija. Reduce la ambigüedad sin exigir formación formal.
Condición que activa el requisito
Se combinan para casos complejos: mientras X, cuando Y, el sistema deberá Z.
Siempre: El sistema deberá registrar cada acceso en el registro de auditoría.
Evento: Cuando el usuario confirme el pedido, el sistema deberá enviarle un correo de confirmación.
Estado: Mientras la sesión esté inactiva más de quince minutos, el sistema deberá bloquear la pantalla.
No deseado: Si el pago es rechazado, entonces el sistema deberá conservar el carrito durante 24 horas.
Opcional: Donde el cliente tenga activada la autenticación en dos pasos, el sistema deberá pedir el segundo factor.Una norma práctica: «deberá» para lo obligatorio, «debería» para lo recomendable y «podrá» para lo opcional, usados siempre con el mismo sentido en todo el documento.
Historias de usuario
La historia es una promesa de conversación, no un contrato. Su forma habitual es la plantilla de rol, acción y beneficio, pero el valor está en lo que se habla alrededor de ella.
Las tres C de Ron Jeffries
- Card (tarjeta): el texto breve que identifica la historia.
- Conversation (conversación): el diálogo entre negocio y equipo que aclara los detalles.
- Confirmation (confirmación): los criterios de aceptación que dicen cuándo está terminada.
Criterio INVEST
Bill Wake propuso seis propiedades para saber si una historia está en condiciones de entrar a trabajar:
| Letra | Significa | Señal de fallo |
|---|---|---|
| I | Independiente | No se puede entregar sin otras tres historias |
| N | Negociable | Está tan detallada que no deja margen |
| V | Valiosa | Beneficia al equipo, no al usuario («crear la tabla») |
| E | Estimable | Nadie sabe por dónde empezar |
| S | Pequeña (small) | No cabe en una iteración |
| T | Comprobable (testable) | Nadie sabría decir cuándo está hecha |
Un ejemplo completo
Historia: Como cliente registrado, quiero recuperar mi contraseña por correo,
para volver a entrar sin tener que llamar a soporte.
Reglas:
- El enlace caduca a los 30 minutos.
- El enlace solo puede usarse una vez.
- La respuesta es la misma exista o no el correo en el sistema.
Fuera de alcance: recuperación por mensaje de texto.La tercera regla es una decisión de seguridad que sale de la conversación, no de la plantilla: no revelar qué correos están registrados.
Dividir historias grandes
Una historia que no cabe en una iteración se divide por cortes verticales: cada trozo atraviesa todas las capas y entrega algo utilizable.
Cortes verticales
Antipatrón: nada es utilizable hasta que están todas las capas.
Patrones de división que funcionan: por paso del flujo, por variante de datos o de rol, por regla de negocio, por operación (crear, consultar, modificar, borrar), por nivel de calidad (primero funciona, luego es rápido) o separando una investigación con tiempo limitado cuando hay mucha incertidumbre.
Mapa de historias
Jeff Patton propone ordenar las historias en un mapa: en horizontal, el recorrido del usuario (las actividades en el orden en que ocurren); en vertical, la prioridad de cada historia. La primera franja horizontal es el esqueleto andante (walking skeleton): lo mínimo que permite recorrer todo el flujo de principio a fin. Ayuda a ver el producto completo, algo que una lista plana de tareas esconde.
Criterios de aceptación y especificación por ejemplos
Un criterio es bueno cuando cualquier persona del equipo puede responder «sí» o «no» sin interpretar. Dos formatos habituales:
- Lista de comprobación: reglas breves, válidas para criterios sencillos.
- Escenarios Given-When-Then (Dado-Cuando-Entonces), del lenguaje Gherkin, ideales cuando hay precondiciones y variantes.
Característica: Recuperar contraseña
Escenario: Enlace válido
Dado un cliente registrado que ha solicitado recuperar su contraseña
Cuando abre el enlace antes de 30 minutos y escribe una contraseña nueva válida
Entonces la contraseña queda cambiada
Y el enlace deja de ser válido
Escenario: Enlace caducado
Dado un enlace de recuperación emitido hace más de 30 minutos
Cuando el cliente lo abre
Entonces ve un aviso de que ha caducado
Y se le ofrece solicitar uno nuevo
Esquema del escenario: Contraseña nueva no válida
Dado un enlace de recuperación vigente
Cuando el cliente escribe la contraseña "<valor>"
Entonces ve el mensaje "<mensaje>"Cada escenario describe comportamiento observable, no clics ni detalles de interfaz. El conjunto sirve a la vez de especificación, de prueba de aceptación y de documentación viva.
Los tres amigos y el mapa de ejemplos
La Specification by Example de Gojko Adzic y el mapa de ejemplos de Matt Wynne proponen una reunión corta, antes de desarrollar, entre negocio, desarrollo y pruebas.
Conversación previa
Mapa de ejemplos
Se usan cuatro colores de tarjeta: la historia, las reglas que la gobiernan, un ejemplo concreto por cada regla y las preguntas sin respuesta. Si salen demasiadas preguntas, la historia no está lista; si salen demasiadas reglas, probablemente es más de una historia.
Definición de listo y definición de hecho
| Concepto | Para qué sirve | Ejemplo de condición |
|---|---|---|
| Definition of Ready | Comprobar que una historia puede empezar | Tiene criterios, está estimada y no depende de nada pendiente |
| Definition of Done | Comprobar que el trabajo está terminado | Pruebas pasadas, revisada, documentada y desplegable |
Modelado: ver lo que el texto esconde
El texto es lineal y los sistemas no. Algunos modelos aclaran lo que cien párrafos no consiguen:
| Modelo | Aclara | Útil cuando |
|---|---|---|
| Diagrama de contexto | Qué queda dentro y fuera del sistema | Se discute el alcance |
| Proceso de negocio (BPMN) | El flujo, los roles y las decisiones | Hay varios actores y traspasos |
| Casos de uso | Interacciones de un actor con el sistema | Se necesita un inventario de funciones |
| Diagrama de estados | Ciclo de vida de una entidad (pedido, solicitud) | Hay reglas del tipo «solo se puede cancelar si…» |
| Modelo de datos y glosario | Qué conceptos existen y cómo se relacionan | Los términos se usan con sentidos distintos |
| Tabla de decisión | Combinaciones de condiciones y resultados | Hay muchas reglas encadenadas |
Glosario del dominio
Si «cliente», «usuario» y «cuenta» significan lo mismo para todos, nadie ha preguntado. Mantener un glosario compartido y usar siempre el mismo término evita buena parte de los malentendidos. Es, además, la base del lenguaje ubicuo del diseño orientado al dominio.
Priorización
Priorizar es decidir qué no se hace todavía. Sin un criterio explícito, manda la persona con más autoridad o más insistencia.
Criterios de comparación
Se revisa en cada iteración: la prioridad es una decisión viva.
| Técnica | Cómo funciona | Cuándo encaja | Riesgo |
|---|---|---|---|
| MoSCoW | Must, Should, Could, Won't (imprescindible, importante, deseable, no esta vez) | Alcance cerrado con fecha fija | Todo acaba siendo «imprescindible» |
| Valor frente a esfuerzo | Se grafican ambos y se empieza por alto valor y bajo esfuerzo | Producto en evolución | Las estimaciones son opiniones |
| RICE | Alcance por impacto por confianza, dividido entre esfuerzo | Hay datos de uso | Falsa precisión |
| Modelo de Kano | Clasifica en básicas, de rendimiento y de deleite | Se busca diferenciación | Exige investigar con usuarios |
| Coste del retraso | Cuánto se pierde por cada semana de espera | Hay ventanas de oportunidad | Difícil de cuantificar |
| Producto mínimo viable | Lo mínimo para aprender de usuarios reales | Idea sin validar | Se confunde con un producto malo |
El modelo de Kano merece atención: las características básicas no se agradecen cuando están, pero indignan cuando faltan; las de rendimiento satisfacen en proporción a cuánto se cumplen; las de deleite sorprenden porque nadie las esperaba. Con el tiempo, lo que deleita pasa a ser básico.
Validación y verificación
Son dos preguntas distintas y ambas necesarias:
- Validación: ¿estamos especificando lo que el negocio necesita? (se hace con los interesados)
- Verificación: ¿el sistema cumple lo que se especificó? (se hace con pruebas)
Técnicas de validación: revisión por pares o inspección, recorrido guiado con los usuarios, prototipo que se enseña antes de construir, escenarios que se leen en voz alta y pruebas de aceptación escritas antes del desarrollo.
Trazabilidad y gestión del cambio
La trazabilidad une cada requisito con su origen (objetivo, interesado) y con lo que lo cumple (diseño, código, pruebas).
Hacia delante
Para qué sirve en la práctica: saber qué prueba cubre cada requisito, qué se rompe si uno cambia (análisis de impacto), y detectar requisitos huérfanos (sin objetivo) o sin cubrir (sin prueba).
Un identificador estable y un estado bastan para empezar:
| Id | Requisito | Origen | Prueba | Estado |
|---|---|---|---|---|
| REQ-014 | El enlace de recuperación caduca a los 30 minutos | Política de seguridad | ESC-014a, ESC-014b | Verificado |
| REQ-015 | La respuesta no revela si el correo existe | Auditoría | ESC-015 | En desarrollo |
Control de cambios
Los requisitos cambian y eso es sano. Lo dañino es el cambio silencioso: modificaciones que entran sin que nadie evalúe su coste.
Decide quien responde del alcance, con la información delante.
Medir la volatilidad (cuántos requisitos cambian por iteración) da una señal temprana: si es alta, quizá el problema aún no se ha entendido bien.
Especificar el alcance también por exclusión
Una buena especificación enumera lo que no se hace. Es la mejor defensa contra la deriva del alcance (scope creep).
Dentro del alcance:
- Alta, consulta y baja lógica de proveedores.
- Importación inicial desde un fichero CSV.
Fuera del alcance (primera versión):
- Integración con el sistema contable.
- Aplicación para móvil.
Supuestos:
- Los proveedores tienen un identificador fiscal único.
Dependencias:
- El equipo de contabilidad entrega la lista de campos obligatorios antes del día 15.Los supuestos y las dependencias son requisitos disfrazados: cuando un supuesto resulta falso, hay que volver a analizar.
Compromisos habituales
| Tensión | Cómo se razona |
|---|---|
| Detalle frente a agilidad | Detallar a tiempo (just in time) lo que se va a construir pronto, y dejar en grueso lo lejano |
| Documento completo frente a conversación | Escribir lo que debe sobrevivir a las personas: reglas, decisiones, criterios |
| Estabilidad frente a adaptación | Congelar lo que cuesta caro cambiar; mantener flexible lo que se puede aprender |
| Lo que se pide frente a lo que se necesita | Documentar ambos y explicar la diferencia |
| Alcance, plazo y coste | Si dos se fijan, el tercero absorbe la variación; fijar los tres es una ilusión |
Lista de comprobación antes de dar por buena una especificación
- Cada requisito se enlaza con un objetivo de negocio.
- No hay palabras vagas sin un criterio medible.
- Los requisitos no funcionales relevantes están cuantificados.
- Hay criterios de aceptación con casos de error y casos límite.
- El alcance dice qué queda fuera.
- Los términos del dominio están definidos y se usan con coherencia.
- Hay un responsable por cada decisión pendiente y una fecha.
- Quien lo pidió ha leído y confirmado la versión final.
Errores y antipatrones
- Saltar a la solución. «Necesitamos una aplicación móvil» no es un requisito, es una respuesta a una pregunta que no se ha hecho.
- Análisis eterno. Intentar cerrar todo antes de empezar. La incertidumbre se reduce construyendo y enseñando, no solo escribiendo.
- Requisitos copiados de la competencia. Lo que otro ha construido no demuestra que sea lo que tu usuario necesita.
- Preguntar a un solo interesado y generalizar.
- Confundir deseos con necesidades. Si se preguntó a cada usuario lo que quería, hay una lista de funciones; si se observó lo que hace, hay un problema.
- Requisitos no funcionales como adorno. Una frase genérica de rendimiento no condiciona nada ni se puede probar.
- Historias técnicas disfrazadas. «Como desarrollador, quiero una tabla de pedidos» no tiene valor visible; mejor describir el resultado que obtiene un usuario.
- Criterios que describen la interfaz en lugar del comportamiento: se rompen al cambiar un botón de sitio.
- Dar por cerrada la especificación sin que nadie con autoridad la haya validado.
- Perder el porqué. Se guardan las decisiones pero no los motivos, y años después nadie sabe si se puede cambiar.