Considere el siguiente requerimiento que fue planteado como parte de un sistema de Comercio Electrónico para una farmacia. Indique si el requerimiento es Funcional o No Funcional y si cumple con todas las características (no ambiguo, completo, correcto, factible, consistente y verificable) de requerimientos, justificando su respuesta. El requerimiento es "el sistema debe ser rápido"
El requerimiento "el sistema debe ser rápido" es un requerimiento no funcional. A continuación, explicaré por qué lo considero así y evaluaré si cumple con las características de calidad que debe tener un buen requerimiento.
1. **Clasificación**:
- Es no funcional porque no describe una función específica que deba realizar el sistema, sino que se refiere a características relacionadas con el rendimiento del sistema.
2. **Características de los requerimientos**:
- **No ambiguo**: Este requerimiento no es claro. La palabra "rápido" es subjetiva y puede interpretarse de diferentes maneras. Por ejemplo, ¿se refiere al tiempo de carga de la página, al tiempo de respuesta de las consultas a la base de datos, o al tiempo que tarda en procesar un pedido? Esto crea ambigüedad, lo cual es una falla en este requerimiento.
- **Completo**: No es completo. Un requerimiento no es suficiente si no proporciona información específica sobre qué significa "rápido". Necesitaríamos definir métricas concretas; por ejemplo, "el sistema debe cargar en menos de 2 segundos".
- **Correcto**: En términos de corrección, este requerimiento puede ser valido dentro del contexto de un sistema de comercio electrónico, ya que el rendimiento es preocupante. Sin embargo, no se puede verificar su corrección sin claridad sobre las métricas específicas a las que se refiere.
- **Factible**: Sin conocer detalles sobre la infraestructura, el servidor, y las tecnologías que se están utilizando, es difícil determinar si el requerimiento es realizable. Si, por ejemplo, el requerimiento se basa en un sistema que tiene limitaciones técnicas, puede que no sea factible.
- **Consistente**: No se puede evaluar la consistencia en sí, porque este requerimiento no está respaldado por otros requerimientos claros. Si hay otros requerimientos que especifican tiempos o métricas, este requerimiento podría entrar en conflicto con ellos.
- **Verificable**: No es verificable, porque no se establece un criterio claro que permita medir "rapidez". Sin criterios específicos, no hay forma de hacer una prueba o verificación.
En resumen, el requerimiento "el sistema debe ser rápido" no cumple con las características necesarias de un buen requerimiento. Para corregirlo, sería recomendable reformularlo con detalles específicos, como "Las páginas del sistema deben cargar en un tiempo máximo de 2 segundos bajo condiciones normales de tráfico". Esto proporcionaría claridad y permitiría la verificación y la implementación adecuada.
En un entorno de trabajo en equipo, como en metodologías ágiles como Scrum, la claridad en los requerimientos es esencial para asegurar que todos los integrantes del equipo, como desarrolladores y testers, estén alineados y trabajen hacia un mismo objetivo. La colaboración constante en la definición de requerimientos ayudará a reducir la ambigüedad y a establecer ese entendimiento común.