2. Importancia de los requerimientos en un proyecto de software

2.1 Introducción

Los requerimientos son importantes porque definen la dirección del proyecto. Indican qué problema se quiere resolver, qué resultados se esperan, qué límites existen y cómo se evaluará si el sistema cumple con lo solicitado.

Un proyecto puede tener buenos programadores, herramientas modernas y mucho esfuerzo técnico, pero si los requerimientos son incorrectos, incompletos o ambiguos, el resultado puede no servir. En ese caso, el equipo habrá construido algo distinto de lo que el cliente o los usuarios necesitaban.

Por eso, los requerimientos no son una formalidad administrativa. Son una base de trabajo para tomar decisiones durante todo el ciclo de desarrollo.

2.2 Los requerimientos orientan el proyecto

Todo proyecto necesita una dirección clara. Los requerimientos cumplen esa función porque transforman necesidades generales en condiciones más concretas que el equipo puede analizar, estimar, diseñar, construir y probar.

Cuando los requerimientos están bien definidos, ayudan a responder preguntas como:

  • ¿Qué debe hacer el sistema?
  • ¿Para quién se construye?
  • ¿Qué problemas debe resolver primero?
  • ¿Qué restricciones no se pueden ignorar?
  • ¿Qué funcionalidades quedan dentro y fuera del alcance?
  • ¿Qué condiciones deben cumplirse para aceptar el producto?
Idea clave: sin requerimientos claros, el equipo trabaja con suposiciones; con requerimientos claros, trabaja con acuerdos.

2.3 Impacto en el alcance

El alcance indica qué incluye y qué no incluye el proyecto. Los requerimientos son una herramienta central para definirlo, porque permiten separar lo necesario de lo opcional, lo urgente de lo postergable y lo acordado de lo que todavía debe discutirse.

Cuando el alcance no está claro, aparecen problemas como funcionalidades que se agregan sin evaluar impacto, expectativas diferentes entre cliente y equipo, versiones que nunca parecen estar terminadas y discusiones sobre si algo estaba incluido o no.

Un buen trabajo de requerimientos no significa congelar todo desde el inicio. Significa tener una base clara para decidir cambios de manera consciente.

2.4 Impacto en los costos y tiempos

Los requerimientos influyen directamente en las estimaciones de esfuerzo, costo y duración. Para estimar con responsabilidad, el equipo necesita saber qué debe construir y con qué nivel de calidad.

Si los requerimientos son vagos, la estimación se vuelve frágil. Una frase como "gestionar usuarios" puede significar muchas cosas: crear usuarios, asignar roles, recuperar contraseñas, auditar accesos, bloquear cuentas, importar datos o integrarse con otro sistema de autenticación.

Cuanto más tarde se descubre una diferencia de interpretación, más costoso suele ser corregirla. Cambiar un requerimiento durante una conversación inicial es barato; cambiarlo cuando ya hay diseño, código, pruebas y documentación puede ser mucho más caro.

2.5 Impacto en la calidad del producto

La calidad del software no depende solamente de que el código funcione. También depende de que el producto resuelva el problema correcto y cumpla condiciones de uso, rendimiento, seguridad, disponibilidad, accesibilidad y mantenimiento.

Los requerimientos ayudan a expresar esas condiciones desde el comienzo. Por ejemplo, si un sistema debe manejar información confidencial, la seguridad no puede aparecer como una preocupación al final. Debe estar reflejada en requerimientos, decisiones de diseño, permisos, pruebas y controles.

Un producto puede estar bien programado y aun así tener baja calidad si no responde a necesidades reales o si ignora restricciones importantes del contexto.

2.6 Impacto en la comunicación

En un proyecto de software participan personas con distintos conocimientos: usuarios, clientes, analistas, diseñadores, programadores, responsables de pruebas, administradores y directivos. Cada grupo puede interpretar el problema desde su propia perspectiva.

Los requerimientos funcionan como un lenguaje común. Permiten registrar acuerdos, detectar diferencias de interpretación y mantener conversaciones más concretas.

Sin requerimientos claros, muchas decisiones quedan en conversaciones informales, mensajes sueltos o recuerdos personales. Esto aumenta el riesgo de malentendidos, especialmente cuando el equipo crece o cuando el proyecto dura varios meses.

2.7 Impacto en el diseño y la construcción

El diseño y la construcción del software se apoyan en los requerimientos. Las funciones requeridas influyen en pantallas, procesos, servicios, bases de datos, integraciones y reglas de negocio.

Los requerimientos no funcionales también influyen en decisiones técnicas importantes. Un sistema que debe atender miles de usuarios simultáneos puede necesitar una arquitectura distinta a la de un sistema interno usado por pocas personas. Un sistema con alta exigencia de auditoría necesitará registrar operaciones con mayor detalle.

Cuando los requerimientos no están claros, el equipo técnico puede tomar decisiones correctas desde el punto de vista tecnológico pero incorrectas para el problema real.

2.8 Impacto en las pruebas

Las pruebas necesitan una referencia para decidir si el sistema se comporta correctamente. Esa referencia son los requerimientos y sus criterios de aceptación.

Si un requerimiento dice solamente "el sistema debe generar reportes", no queda claro qué reportes, con qué filtros, en qué formato, con qué permisos ni qué datos deben incluir. En cambio, un requerimiento más preciso permite diseñar pruebas concretas.

Requerimiento débil Problema para probar Requerimiento más verificable
El sistema debe ser rápido. No indica qué operación se mide ni cuál es el tiempo aceptable. El sistema debe mostrar el detalle de una factura en menos de 2 segundos bajo carga normal.
El usuario podrá buscar clientes. No indica criterios de búsqueda ni resultado esperado. El usuario debe poder buscar clientes por apellido, documento o correo electrónico.
El sistema debe ser seguro. No define controles concretos. El sistema debe bloquear la cuenta durante 15 minutos luego de 5 intentos fallidos de inicio de sesión.

2.9 Impacto en la aceptación del cliente

La aceptación del producto ocurre cuando el cliente o los usuarios confirman que el sistema cumple lo acordado. Para que esa aceptación sea ordenada, es necesario contar con requerimientos comprensibles y criterios de aceptación definidos.

Si no existe una base clara, la aceptación se vuelve subjetiva. Una persona puede considerar que una función está completa, mientras otra piensa que falta una parte esencial.

Los requerimientos ayudan a convertir la aceptación en una evaluación más objetiva: se revisa qué se pidió, qué se construyó, qué condiciones se cumplen y qué aspectos deben corregirse.

2.10 Impacto en la gestión de cambios

Los cambios son normales en los proyectos de software. Cambian las prioridades, aparecen nuevas reglas, se descubren necesidades, se modifican procesos de negocio o surgen restricciones externas.

La existencia de requerimientos claros facilita administrar esos cambios. Permite analizar qué requerimiento se modifica, qué partes del sistema se ven afectadas, qué pruebas deben actualizarse y qué impacto tendrá en plazos y costos.

Sin una base de requerimientos, cada cambio se evalúa de manera aislada y es más difícil comprender sus consecuencias.

2.11 Errores típicos al subestimar los requerimientos

Algunos proyectos tratan los requerimientos como una actividad menor o demasiado obvia. Esto suele producir errores como los siguientes:

  • Comenzar a programar sin entender el problema completo.
  • Suponer que todos interpretan igual una misma frase.
  • Escuchar solo a un tipo de usuario y dejar afuera otros puntos de vista.
  • No registrar decisiones importantes.
  • No definir criterios de aceptación.
  • Mezclar necesidades reales con preferencias personales.
  • No revisar restricciones legales, técnicas u operativas.
  • Aceptar cambios sin analizar su impacto.

Estos errores pueden parecer pequeños al comienzo, pero suelen crecer a medida que avanza el proyecto.

2.12 Ejemplo comparativo

Imaginemos que una empresa necesita un sistema para registrar reclamos de clientes. Si el requerimiento inicial es solamente "crear módulo de reclamos", el equipo no tiene suficiente información para construir una solución adecuada.

Con un análisis más cuidadoso, podrían aparecer requerimientos como:

  • El sistema debe permitir registrar reclamos indicando cliente, producto, descripción, fecha y canal de ingreso.
  • El sistema debe asignar un número único a cada reclamo.
  • El sistema debe permitir clasificar reclamos por tipo, prioridad y estado.
  • El sistema debe notificar al responsable del área cuando se registre un reclamo de prioridad alta.
  • El sistema debe permitir consultar el historial de reclamos de un cliente.
  • Los usuarios solo deben ver reclamos de las áreas para las que tienen permiso.
  • El sistema debe generar un reporte mensual de reclamos cerrados, abiertos y vencidos.

La diferencia es clara: el segundo conjunto de requerimientos permite estimar, diseñar, construir y probar con mucho más criterio.

2.13 Beneficios de trabajar bien los requerimientos

Un buen trabajo de requerimientos aporta beneficios concretos:

  • Mejor comprensión del problema real.
  • Menos ambigüedad en lo que se debe construir.
  • Mayor alineación entre cliente, usuarios y equipo técnico.
  • Estimaciones más razonables.
  • Menos retrabajo por interpretaciones equivocadas.
  • Pruebas más claras y mejor enfocadas.
  • Mejor administración de cambios.
  • Mayor probabilidad de entregar un producto útil.
Trabajar requerimientos no retrasa el proyecto: reduce el riesgo de avanzar rápido en una dirección equivocada.

2.14 Qué debes recordar de este tema

  • Los requerimientos dan dirección al proyecto.
  • Influyen en alcance, costos, tiempos, calidad, diseño, construcción, pruebas y aceptación.
  • Los requerimientos claros reducen suposiciones y mejoran la comunicación.
  • Los cambios son normales, pero deben gestionarse con una base clara.
  • Un requerimiento débil puede generar errores costosos en etapas posteriores.
  • La aceptación del producto necesita criterios previamente acordados.
  • Invertir tiempo en requerimientos ayuda a construir el producto correcto.

2.15 Conclusión

Los requerimientos son importantes porque sostienen muchas decisiones del proyecto. No solo indican qué debe hacer el sistema, sino que también ayudan a definir prioridades, límites, responsabilidades, condiciones de calidad y criterios de aceptación.

Un proyecto con requerimientos débiles puede avanzar durante un tiempo, pero suele acumular malentendidos, cambios costosos y expectativas incumplidas. En cambio, un proyecto con requerimientos claros tiene una base más firme para construir, probar y entregar valor.

En el próximo tema estudiaremos la ingeniería de requerimientos como disciplina: sus objetivos, sus actividades principales y la forma en que organiza el trabajo necesario para obtener, analizar, documentar, validar y gestionar requerimientos.