Skip to content

4 Análisis y Priorización

🎯 Introducción al Análisis y Priorización

Section titled “🎯 Introducción al Análisis y Priorización”

El análisis y priorización de requerimientos es un proceso crítico en la ingeniería de software que permite determinar qué requerimientos deben implementarse primero, considerando múltiples factores como valor de negocio, riesgo técnico, dependencias y recursos disponibles.


📊 Clasificación por Importancia o Urgencia

Section titled “📊 Clasificación por Importancia o Urgencia”

La clasificación de requerimientos es el proceso de categorizar y ordenar los requerimientos según diferentes dimensiones que reflejan su relevancia para el proyecto y el negocio.

  1. Importancia (Valor de Negocio)

    Mide el impacto que tiene el requerimiento en los objetivos del negocio.

    Criterios de evaluación:

    • Contribución a objetivos estratégicos
    • Impacto en ingresos o reducción de costos
    • Ventaja competitiva proporcionada
    • Número de usuarios beneficiados
    • Cumplimiento regulatorio o legal
  2. Urgencia (Tiempo)

    Mide la presión temporal para implementar el requerimiento.

    Criterios de evaluación:

    • Fechas límite contractuales
    • Dependencias con otros proyectos
    • Ventanas de oportunidad de mercado
    • Compromisos con clientes
    • Eventos externos (regulaciones, competencia)
  3. Riesgo Técnico

    Mide la complejidad e incertidumbre de implementación.

    Criterios de evaluación:

    • Complejidad técnica
    • Tecnologías no probadas
    • Dependencias externas
    • Disponibilidad de expertise
    • Impacto en arquitectura
  4. Costo de Implementación

    Mide los recursos necesarios para desarrollar el requerimiento.

    Criterios de evaluación:

    • Esfuerzo de desarrollo (persona-horas)
    • Infraestructura requerida
    • Licencias de software
    • Capacitación necesaria
    • Costos de mantenimiento

La matriz de Eisenhower, originalmente para gestión del tiempo, se adapta efectivamente para priorización de requerimientos.

Diagrama UML

Técnica de priorización que clasifica requerimientos en cuatro categorías.

Categorías:

CategoríaSignificadoDescripción% Típico
Must haveDebe tenerRequerimientos críticos sin los cuales el sistema no funciona60%
Should haveDebería tenerImportantes pero no críticos, pueden posponerse si es necesario20%
Could havePodría tenerDeseables pero no necesarios, se implementan si hay tiempo/recursos15%
Won’t have (this time)No tendrá (esta vez)Fuera del alcance actual, considerados para futuras versiones5%

Ventajas:

  • Simple y fácil de entender
  • Comunicación clara con stakeholders
  • Enfoque en lo esencial

Desventajas:

  • Tendencia a clasificar todo como “Must have”
  • No considera esfuerzo de implementación
  • Puede ser demasiado simplista para proyectos complejos
MétodoComplejidadMejor paraVentajasDesventajas
MoSCoWBajaProyectos pequeños, comunicación con stakeholdersSimple, fácil de entenderSubjetivo, no considera esfuerzo
KanoMediaProductos orientados al usuarioEnfoque en satisfacción del clienteRequiere investigación de usuarios
Valor vs CostoMediaOptimización de ROI (Return on Investment)Balance entre beneficio y esfuerzoRequiere estimaciones precisas
WSJFAltaEntornos ágiles a escalaConsidera múltiples factoresComplejo, requiere métricas

Los conflictos en requerimientos son inevitables cuando múltiples stakeholders tienen intereses, perspectivas y prioridades diferentes. La resolución efectiva de conflictos es crucial para el éxito del proyecto.

Diagrama UML
  1. Negociación

    Proceso de diálogo para llegar a un acuerdo mutuamente aceptable.

    Estrategias:

    • Win-Win: Buscar soluciones que beneficien a ambas partes
    • Trade-offs: Intercambiar concesiones
    • Priorización conjunta: Usar métodos objetivos (MoSCoW, WSJF)
  2. Análisis de Impacto

    Evaluación objetiva de las consecuencias de cada opción mediante matriz de decisión con criterios ponderados.

  3. Mediación por Terceros

    Involucrar a una persona neutral para facilitar la resolución.

    Roles de mediador:

    • Product Owner (en metodologías ágiles)
    • Arquitecto de Software
    • Gerente de Proyecto
    • Comité de Change Control
  4. Prototipado

    Crear prototipos para validar opciones en conflicto con evidencia tangible y testing con usuarios reales.

  5. Escalamiento

    Elevar el conflicto a niveles superiores de autoridad cuando otras técnicas fallan.

Diagrama UML

La validación con el cliente es el proceso de confirmar que los requerimientos capturados, analizados y priorizados reflejan correctamente las necesidades del negocio y son técnicamente viables.

Diagrama UML
  1. Revisiones Formales

    Sesiones estructuradas donde stakeholders revisan y aprueban requerimientos.

    Tipos:

    • Walkthroughs: Presentación informal de requerimientos
    • Inspecciones: Revisión formal con checklist
    • Revisiones técnicas: Evaluación de viabilidad técnica
  2. Prototipado

    Validar requerimientos mediante representaciones visuales o funcionales del sistema.

    Beneficios:

    • Validación temprana de usabilidad
    • Identificación de requerimientos faltantes
    • Reducción de ambigüedad
  3. Casos de Prueba

    Crear casos de prueba a partir de requerimientos para verificar su testabilidad.

    Criterio: Si no se puede crear un caso de prueba, el requerimiento es ambiguo.

  4. Simulaciones y Modelado

    Usar modelos para validar comportamiento del sistema antes de implementar.

    Técnicas:

    • Diagramas de flujo
    • Modelos de datos
    • Diagramas de secuencia
  5. Validación con Usuarios Finales

    Involucrar a usuarios reales para confirmar que los requerimientos satisfacen sus necesidades.

    Métodos:

    • Focus groups
    • Entrevistas de validación
    • Sesiones de demostración
Diagrama UML

Los criterios de aceptación son condiciones específicas y medibles que deben cumplirse para que un requerimiento se considere satisfactoriamente implementado.

Características de buenos criterios:

CaracterísticaDescripciónEjemplo
EspecíficoDetallado y sin ambigüedad”El sistema debe procesar pagos en < 3 segundos”
MedibleCuantificable y verificable”Disponibilidad de 99.9%“
AlcanzableTécnicamente factible”Soportar 10,000 usuarios concurrentes”
RelevanteAlineado con objetivos”Reducir tiempo de checkout en 50%“
TemporalCon marco de tiempo”Implementar en Sprint 3”
Plantilla de Sesión de Validación
SESIÓN DE VALIDACIÓN DE REQUERIMIENTOS
Proyecto: [Nombre del Proyecto]
Fecha: [DD/MM/AAAA]
Versión del Documento: [v1.0]
PARTICIPANTES:
- Cliente: [Nombre, Rol]
- Product Owner: [Nombre]
- Analista: [Nombre]
- Arquitecto: [Nombre]
REQUERIMIENTOS REVISADOS:
Total: [X requerimientos]
- Funcionales: [Y]
- No Funcionales: [Z]
RESULTADOS DE LA VALIDACIÓN:
✅ Aprobados sin cambios: [Lista de IDs]
- RF-001: Login de usuario
- RF-005: Carrito de compras
- RNF-010: Seguridad TLS 1.3
⚠️ Aprobados con modificaciones: [Lista de IDs]
- RF-015: Procesamiento de pagos
Cambio: Agregar soporte para PayPal además de tarjetas
- RNF-020: Tiempo de respuesta
Cambio: Ajustar de < 1s a < 2s (más realista)
❌ Rechazados: [Lista de IDs]
- RF-030: Integración con blockchain
Razón: Fuera de alcance, posponer para v2.0
🆕 Nuevos requerimientos identificados:
- RF-035: Recuperación de carrito abandonado
Prioridad: Should have
- RNF-040: Compatibilidad con navegadores
Detalle: Chrome, Firefox, Safari últimas 3 versiones
ACCIONES A TOMAR:
1. Actualizar documento de requerimientos con cambios aprobados
2. Crear RF-035 y RNF-040 en backlog
3. Revisar estimaciones afectadas por cambios
4. Programar próxima sesión de validación: [Fecha]
APROBACIÓN:
Cliente: _________________ Fecha: _______
Product Owner: ___________ Fecha: _______
PRÓXIMOS PASOS:
- Establecer baseline de requerimientos v1.0
- Iniciar proceso de change control
- Comunicar cambios al equipo de desarrollo

🐝