Hablemos de la Especificación de Requerimientos
Es imposible que el equipo de desarrollo memorice toda la información del producto. A lo largo del proyecto, los miembros del equipo tendrán preguntas, habrá suposiciones y ocurrirán otras situaciones que causarán que haya un entendimiento diferente de lo que debe y no debe hacer el software. No resolver rápidamente las dudas o que haya esa comprensión dispar de los requerimientos nos conducirá a retrabajo, retrasos y descontento entre los stakeholders.
Además, para sistemas ya construidos, es importante que exista información que permita entender cómo y por qué se tomaron las decisiones y qué implica hacerle cambios.
Por eso debemos especificar los requerimientos. Esto significa documentar los acuerdos sobre lo que debe hacer el software y las restricciones existentes.
Ahora, una de las mayores dificultades que enfrentan los equipos de software es saber lo que sí se debe especificar. La información importante que siempre debes registrar en tus especificaciones es la que te permita responder las siguientes preguntas:
¿Qué se va a resolver y por qué es importante hacerlo?
¿En quiénes estamos teniendo impacto?
¿Qué es lo que quieren hacer los usuarios con el software?
¿Qué funciones tendrá el software?
¿Cuál es el ambiente en que estará operando el software?
¿Cómo se usarán las interfaces con otro software y hardware?
¿Hay alguna restricción con la tecnología?
¿Cómo evaluaremos el cumplimiento de los requerimientos no funcionales?
¿A cuáles estándares nos debemos apegar?
¿Qué se va a resolver y por qué es importante hacerlo?
Los requerimientos de negocio, que están en lo más alto de los niveles, marcan la dirección del proyecto, los objetivos que persigue el usuario u organización y una visión de cómo el producto ayudará a alcanzarlos.
Para que los involucrados siempre tengan presente por qué es importante hacer este proyecto, haz un resumen ejecutivo con lo siguiente:
El estado actual y la problemática que se enfrenta.
El estado deseado, expresado en objetivos SMART y criterios de éxito
El enunciado que describe la visión del software
Las funciones principales que ejecutará
Los riesgos del proyecto
Recuerda que esta especificación hablará en el lenguaje del negocio, por lo que debes evitar incluir muchos conceptos técnicos y ser muy concreto en la descripción de la visión.
Por ejemplo, tu especificación de la visión y sus funciones principales puede ser: "Un sistema distribuido en web y dispositivos móviles que permitirá registrar clientes, crear rutas de reparto, notificar los cambios de estado de los pedidos y administrar el almacén". La descripción detallada de cómo se hará cada función se hará, pero es parte de otras especificaciones.
¿En quiénes estamos teniendo impacto?
Todas las decisiones que se toman para el producto tienen un impacto en y reciben influencia de la comunidad de Stakeholders. Debemos establecer un acuerdo de quiénes son y cuál es su rol en la comunidad. En esta especificación, deberás definir:
Quiénes son los usuarios directos
Quiénes son los patrocinadores del proyecto
Quiénes son usuarios indirectos
Quiénes definen reglamentos, estándares y leyes
Los patrocinadores suelen tener el poder de aceptar o rechazar el proyecto, así que establecen los objetivos del mismo. Los usuarios directos utilizarán las funciones del software. Los usuarios indirectos reciben un beneficio aunque no usen el producto (por ejemplo, para una aplicación de GPS, los restaurantes se benefician de que los conductores puedan llegar a sus locales mediante el mapa y el gps). Los definidores de reglas establecen lineamientos a los que el software debe apegarse (como el Gobierno).
El Stakeholder especificado será el nombre del rol, no debes poner el nombre de cada persona. Como "Director", "Gerente", "Empleado", etc. Puedes agregar información adicional, como los intereses principales,