Módulo 10: Proyecto Final Integral
Curso de introducción al rol de Analista
El proceso de definición de requisitos y análisis completo es una de las actividades fundamentales en el rol de un analista de sistemas y negocio. Su objetivo es capturar de manera detallada las necesidades del cliente y del sistema, documentarlas, y validarlas con todos los stakeholders para asegurar que los desarrolladores puedan crear una solución que cumpla con los objetivos deseados.
1. Definición de Requisitos Funcionales y No Funcionales
La definición de requisitos implica desglosar los objetivos y necesidades del cliente en elementos específicos que el sistema debe cumplir. Para ello, se diferencian dos tipos clave de requisitos:
- Requisitos Funcionales:
- Definición: Los requisitos funcionales describen lo que el sistema debe hacer, es decir, las funciones y capacidades que debe implementar.
- Ejemplos: Un sistema de e-commerce puede tener requisitos funcionales como:
- Permitir a los usuarios registrarse y crear cuentas.
- Facilitar la búsqueda de productos por categoría o palabra clave.
- Procesar pagos en línea y confirmar órdenes.
- Propósito: Estos requisitos son esenciales para la funcionalidad directa del sistema y para satisfacer las necesidades del usuario final.
- Requisitos No Funcionales:
- Definición: Son características del sistema que definen cómo debe funcionar, como el rendimiento, la seguridad, la usabilidad y la compatibilidad.
- Ejemplos:
- Rendimiento: El sistema debe responder a las solicitudes en menos de 2 segundos.
- Escalabilidad: La aplicación debe manejar hasta 10,000 usuarios concurrentes.
- Seguridad: Debe cumplir con las normativas de GDPR y proteger datos personales.
- Propósito: Estos requisitos garantizan la calidad del sistema y su capacidad para operar de manera efectiva y segura.
Para definir ambos tipos de requisitos, el analista utiliza técnicas como entrevistas, cuestionarios, y análisis de sistemas previos, asegurando que cada requisito tenga criterios de aceptación claros y medibles.
2. Análisis de Requisitos Funcionales y No Funcionales
El análisis de requisitos implica descomponer y estudiar cada requerimiento para evaluar su viabilidad, riesgos asociados y su impacto en el proyecto. Este análisis incluye las siguientes actividades:
- Evaluación de Viabilidad:
- El analista determina si el sistema actual (si existe) o el nuevo proyecto puede cumplir con los requisitos solicitados, o si es necesario ajustar expectativas o limitar ciertas características.
- Se evalúan las tecnologías disponibles y se proponen alternativas en caso de que un requisito no sea viable en el marco del proyecto.
- Identificación de Dependencias:
- Es común que algunos requisitos estén interrelacionados. Por ejemplo, para habilitar una función de pago en línea, deben existir módulos de autenticación de usuarios y cifrado de datos.
- Los analistas deben identificar estas dependencias para planificar adecuadamente el desarrollo.
- Evaluación de Riesgos y Prioridades:
- Determinar qué requisitos son críticos y cuáles pueden considerarse de menor prioridad es fundamental para la planificación del proyecto.
- Los riesgos asociados con requisitos no viables o costosos se documentan y comunican a los stakeholders, y se propone una planificación de contingencias si es necesario.
- Criterios de Aceptación y Pruebas:
- Cada requisito debe definirse con criterios de aceptación específicos que permitan verificar su cumplimiento al final del desarrollo.
- Esto implica establecer casos de prueba o escenarios que validen si los requisitos se han implementado correctamente.
3. Documentación de Requisitos
La documentación de requisitos permite crear una referencia clara y estructurada para todos los miembros del equipo, desde desarrolladores hasta testers y stakeholders. Los documentos de requisitos suelen contener:
- Descripción Detallada de Requisitos Funcionales y No Funcionales:
- Cada requisito debe tener una descripción clara, objetivos específicos y criterios de aceptación.
- En metodologías ágiles, se emplean historias de usuario, mientras que en enfoques más tradicionales se utilizan documentos de especificación funcional.
- Plantillas y Herramientas para Documentación:
- Especificaciones funcionales: Describen cada función del sistema y su flujo de trabajo.
- Historias de Usuario (en Ágil): Capturan los requisitos desde la perspectiva del usuario.
- Herramientas como Jira, Confluence o Microsoft Word son útiles para centralizar la documentación y permitir la colaboración en equipo.
- Documentación Visual:
- Para mejorar la claridad, los diagramas de flujo, casos de uso y UML (Unified Modeling Language) son herramientas efectivas para documentar interacciones y dependencias.
- Estas representaciones gráficas simplifican la comprensión de los requisitos, especialmente cuando se trata de flujos complejos o sistemas con múltiples componentes.
- Actualización y Gestión de Cambios:
- Es importante gestionar adecuadamente cualquier cambio en los requisitos para evitar desalineaciones. Esto se logra a través de herramientas de gestión de cambios que rastrean cada modificación y notifican al equipo de desarrollo.
- Los analistas pueden utilizar herramientas como Jira o ServiceNow para registrar, revisar y aprobar cambios en los requisitos antes de implementarlos.
Ejemplo Práctico
Imaginemos que se está desarrollando un sistema para la gestión de citas en una clínica médica. Algunos de los requisitos definidos podrían ser:
- Requisitos Funcionales:
- Permitir a los pacientes reservar citas en línea.
- Enviar recordatorios automáticos de citas por email y SMS.
- Permitir al personal médico acceder y actualizar la información de los pacientes.
- Requisitos No Funcionales:
- Seguridad: Cumplir con las regulaciones de protección de datos de salud (como la HIPAA).
- Usabilidad: La plataforma debe ser accesible para usuarios de todas las edades y fácil de navegar en dispositivos móviles.
Estos requisitos se documentarían en plantillas con descripciones detalladas, se realizaría un análisis de viabilidad y se establecerían criterios de aceptación. Los diagramas de flujo de procesos y casos de uso ayudarían a visualizar cómo los pacientes y el personal interactúan con el sistema.
La definición y análisis completo de requisitos permite que el equipo de desarrollo comprenda en profundidad las necesidades del cliente y la funcionalidad esperada. Una documentación exhaustiva, acompañada de un análisis de viabilidad y riesgos, asegura que el proyecto se mantenga alineado con los objetivos estratégicos y se ejecute de manera organizada. Con herramientas y técnicas adecuadas, el analista de sistemas y negocio facilita el desarrollo de soluciones efectivas y alineadas con las expectativas del cliente.