Plan de trabajo sprints 1 2 3 S7 - JohannPaezU/MISW4501-MediSupply GitHub Wiki

📋 Plan de trabajo para los sprints 1, 2 y 3

📑 Tabla de contenidos


📊 Información general del proyecto

🎯 Objetivo del Proyecto Final 2

Desarrollar una solución integral para MediSupply que unifique los procesos de compras, inventarios, ventas y logística. El sistema debe lograr:

  • Incrementar ingresos: 10% anual durante 4 años
  • Reducir pérdidas: Disminuir vencimientos en 60% y pedidos rechazados en 30%
  • Mejorar eficiencia: Proveer inventario en tiempo real y optimización de rutas
  • Asegurar crecimiento: Habilitar escalabilidad y trazabilidad completa

⚙️ Metodología de trabajo

Aspecto Detalle
Framework Scrum
Duración del sprint 2 semanas
Equipo de desarrollo 4 desarrolladores multidisciplinarios
Herramientas Jira (gestión), GitHub (código), CI/CD automatizado

📊 Resumen de sprints

Sprint Duración Objetivos principales Estado
Sprint 1 🚀 2 semanas Configuración inicial, funcionalidades básicas de autenticación e inventario 🔄 Planificado
Sprint 2 🚀 2 semanas Módulos de pedidos, rutas logísticas y funcionalidades comerciales ⏳ Pendiente
Sprint 3 🚀 3 semanas Integración completa, optimizaciones y preparación para producción ⏳ Pendiente

🚀 Sprint 1

🎯 Objetivos del Sprint 1

  • Establecer la infraestructura base del proyecto y CI/CD
  • Implementar autenticación y autorización básica
  • Desarrollar funcionalidades core de inventario y consultas
  • Crear las bases para los módulos de administración y logística

⏰ Duración

  • Duración: 2 semanas

📝 Historias de usuario seleccionadas

Funcionalidades fundamentales para establecer la base del sistema:

ID Historia Título Descripción Estimación
HU02 Registro de proveedores y carga de productos (individual y masivo) Como administrador, quiero poder registrar proveedores y cargar productos de forma individual o masiva (CSV/Excel), con fichas técnicas, certificados sanitarios y condiciones de almacenamiento, para garantizar que el catálogo esté actualizado y cumpla normativas regulatorias 5 puntos
HU05 Consulta y localización de productos en bodegas Como operador logístico, quiero poder consultar y localizar productos en bodegas en menos de 1 segundo, con detalle de lote, fecha de vencimiento, condiciones y ubicación física, para agilizar la preparación de pedidos y reducir errores 3 puntos
HU11 Registro de cliente Como cliente institucional, quiero registrarme en la aplicación móvil de MediSupply, para poder acceder al catálogo de productos, crear pedidos y dar seguimiento a mis entregas de forma autónoma. 5 puntos
HU03 Registro de vendedores y creación de planes de venta Como gerente comercial, quiero poder registrar vendedores y asignarles planes de venta por producto, región y periodo, para monitorear el cumplimiento de metas y optimizar la estrategia comercial 5 puntos

🔧 Tareas técnicas del Sprint 1

  • ⚙️ Configuración inicial del proyecto
  • 🛠️ Setup de ambientes de desarrollo
  • 🔄 Configuración de CI/CD
  • 💻 Implementación de funcionalidades core
  • 🧪 Pruebas unitarias y de integración

📦 Entregables del Sprint 1

Entregable Descripción Responsable
API Backend Base Servicios de autenticación, gestión de usuarios y productos Juan Cervantes
Frontend Admin Módulos de registro de proveedores/vendedores Johann Páez
App Móvil Base Registro de clientes y autenticación Miguel Padilla
Base de Datos Esquema inicial con productos, usuarios y proveedores Julián Oliveros
CI/CD Pipeline GitHub Actions configurado con pruebas automatizadas Juan Cervantes

⚠️ Riesgos identificados

  • Riesgo de recursos: Disponibilidad del equipo en fechas académicas → Mitigación: Buffer de 1 día por sprint

🚀 Sprint 2

🎯 Objetivos del Sprint 2

  • Implementar funcionalidades comerciales y de visitas
  • Desarrollar módulo de pedidos con validación de inventario
  • Crear sistema de rutas y optimización logística
  • Integrar procesamiento de video

⏰ Duración

  • Duración: 2 semanas

📝 Historias de usuario seleccionadas

Funcionalidades comerciales y de pedidos:

ID Historia Título Descripción Estimación
HU06 Consulta de clientes por parte de los vendedores Como usuario comercial, quiero consultar mi lista de clientes asignados con su información de contacto y ubicación para preparar mis visitas y priorizarlas según la importancia del cliente. 3 puntos
HU07 Consulta de ruta de visita por fecha Como usuario comercial, quiero consultar mi ruta de visitas de una fecha específica con tiempos estimados de desplazamiento, para organizar mi jornada y optimizar el itinerario. 3 puntos
HU08 Registro de la visita de un cliente Como usuario comercial, quiero registrar la visita realizada a un cliente incluyendo observaciones, fecha y evidencia, para llevar un historial confiable de mis interacciones. 5 puntos
HU09 Creación de un pedido en línea con consulta de inventario en tiempo real Como usuario comercial, quiero crear pedidos desde la aplicación móvil validando la disponibilidad de inventario en tiempo real, para garantizar compromisos confiables de entrega al cliente. 5 puntos
HU10 Procesamiento de video y generación de recomendación Como usuario comercial, quiero adjuntar un video corto al registrar una visita, para que el sistema lo procese y me genere recomendaciones sobre productos o necesidades del cliente. 5 puntos

🔧 Tareas técnicas del Sprint 2

  • 🚀 Desarrollo de funcionalidades avanzadas
  • 🔗 Integración con sistemas externos
  • 🔒 Implementación de medidas de seguridad
  • ⚡ Optimización de rendimiento
  • 🧪 Pruebas de integración completas

📦 Entregables del Sprint 2

Entregable Descripción Responsable
Módulo Comercial Gestión de clientes, visitas y rutas Julían Oliveros
Sistema de Pedidos Creación y validación de pedidos con inventario Miguel Padilla
Motor de Rutas Algoritmo de optimización de rutas de entrega Juan Cervantes
App Móvil Comercial Funcionalidades completas para vendedores Johann Páez

⚠️ Riesgos identificados

  • Riesgo técnico: Dependencias entre módulos comerciales → Mitigación: APIs bien definidas desde Sprint 1
  • Riesgo de integración: Sincronización móvil-backend para pedidos → Mitigación: Pruebas de integración continuas
  • Riesgo de rendimiento: Validación de inventario en tiempo real → Mitigación: Cache distribuido y optimización de consultas

🚀 Sprint 3

🎯 Objetivos del Sprint 3

  • Completar funcionalidades de cliente y entrega
  • Implementar sistema de reportes
  • Optimizar rendimiento y generar rutas automáticas
  • Preparar sistema para producción con monitoreo

⏰ Duración

  • Duración: 3 semanas

📝 Historias de usuario seleccionadas

Funcionalidades finales y optimización:

ID Historia Título Descripción Estimación
HU01 Generación de rutas de entrega Como planificador logístico, quiero poder generar rutas de entrega óptimas en menos de 3 segundos y visualizar en tiempo real la ubicación de los camiones, para garantizar entregas en los tiempos comprometidos y reducir costos logísticos. 5 puntos
HU12 Creación de pedido por cliente Como cliente institucional, quiero poder crear un pedido desde la aplicación móvil, para adquirir insumos médicos de manera ágil y segura sin depender de un asesor comercial. 5 puntos
HU13 Consulta estado de pedidos Como cliente institucional, quiero consultar en la aplicación móvil el estado actual de mis pedidos, para conocer su progreso y anticipar acciones logísticas en mi institución. 3 puntos
HU14 Consulta entregas programadas Como cliente institucional, quiero consultar las entregas programadas en la aplicación móvil, para organizar la recepción de insumos y coordinar recursos internos de mi institución. 3 puntos
HU04 Consulta de reportes e informes de los vendedores Como director comercial, quiero poder consultar reportes e informes por vendedor y zona geográfica, para evaluar desempeño, comparar resultados y tomar decisiones basadas en datos 3 puntos

🔧 Tareas técnicas del Sprint 3

  • ✅ Finalización de todas las funcionalidades
  • 👥 Pruebas de usuario y usabilidad
  • 🚀 Preparación para despliegue en producción
  • 📚 Documentación técnica y de usuario
  • ⚡ Optimizaciones finales

📦 Entregables del Sprint 3

Entregable Descripción Responsable
Módulo Cliente Final App móvil completa para clientes institucionales Miguel Padilla
Sistema de Reportes Dashboard analítico y reportes comerciales Juan Cervantes
Optimización Rutas Generación automática de rutas < 3 seg Julián Oliveros
Monitoreo y Logs Sistema de observabilidad en producción Johann Páez
Documentación Documentación técnica y de usuario Todo el equipo

⚠️ Riesgos identificados

  • Riesgo de calidad: Presión de tiempo en sprint final → Mitigación: Definition of Done estricta, pruebas automatizadas
  • Riesgo de producción: Configuración de ambientes cloud → Mitigación: Infraestructura como código, ambientes duplicados
  • Riesgo de entrega: Coordinación final de todos los componentes → Mitigación: Pruebas E2E diarias, integración continua

🛠️ Recursos necesarios

👥 Equipo de desarrollo

Rol Nombre
Developer Miguel Fernando Padilla Espino
Developer Johann Sebastian Páez Campos
Developer Juan Sebastian Cervantes Restrepo
Developer Julián Oliveros Forero

🔧 Herramientas y tecnologías

Categoría Herramienta Propósito
Gestión de proyecto Jira Software Planificación y seguimiento de sprints
Backend FastAPI + Python API REST y lógica de negocio
Frontend Web Angular 17 Aplicación web administrativa
Móvil Android + Kotlin Aplicación móvil para comerciales y clientes
Testing Backend Pytest + pytest-asyncio Pruebas unitarias e integración
Testing Frontend Jest + Angular Testing Library Pruebas de componentes web
Testing Móvil Espresso Pruebas de UI Android
Testing E2E Playwright Pruebas end-to-end web
CI/CD GitHub Actions Integración y despliegue continuo
Cloud Google Cloud Platform Infraestructura y servicios
Contenedores Docker + Kubernetes Orquestación y despliegue
Monitoreo GCP Monitoring + Logging Observabilidad y métricas

🏗️ Infraestructura

Ambiente Descripción Configuración
Desarrollo Entorno local con Docker Compose FastAPI + PostgreSQL local, hot-reload habilitado
Testing Ambiente de pruebas automatizadas CI/CD en GitHub Actions, base de datos en memoria
Staging Pre-producción en GCP Kubernetes cluster, réplicas mínimas, datos sintéticos
Producción Ambiente productivo en GCP Auto-scaling, load balancing, backup automatizado

✅ Criterios de éxito

📊 Métricas de calidad

  • Cobertura de pruebas: ≥ 70% en backend, ≥ 70% en frontend
  • Tiempo de respuesta: < 3 segundos para consultas de inventario
  • Disponibilidad del sistema: ≥ 99.5% uptime en producción
  • Calidad del código: Grade A en SonarQube, 0 vulnerabilidades críticas

🎯 Criterios de aceptación del proyecto

  • Funcionalidad completa: Todas las 14 historias de usuario implementadas y probadas
  • Rendimiento objetivo: Generación de rutas < 3 seg, consultas inventario < 1 seg
  • Integración exitosa: Módulos web, móvil y backend funcionando en conjunto
  • Despliegue funcional: Sistema desplegado en GCP
  • Pruebas exitosas: Todas las pruebas E2E pasando en ambiente de staging

✅ Definition of Done

  • Código completado: Feature implementada según especificaciones
  • Pruebas automatizadas: Unitarias, integración y E2E pasando al 100%
  • Code review aprobado: Al menos 1 revisión de código por desarrollador
  • Despliegue exitoso: Feature funcionando en ambiente de staging
  • Pruebas de aceptación: Usuario valida y acepta la funcionalidad

⚠️ Riesgos generales del proyecto

🔧 Riesgos técnicos

Riesgo Probabilidad Impacto Plan de Mitigación
Integración móvil-backend Media Medio APIs bien documentadas, pruebas de integración continuas
Rendimiento en tiempo real Alta Alto Cache distribuido, optimización DB, load testing temprano
Escalabilidad en GCP Baja Alto Arquitectura cloud-native, auto-scaling configurado

⏰ Riesgos de cronograma

Riesgo Probabilidad Impacto Plan de Mitigación
Retrasos en Sprint 1 Media Alto Buffer de 1 día por sprint, tareas críticas priorizadas
Dependencias entre módulos Alta Medio Definir APIs temprano, desarrollo paralelo con mocks
Disponibilidad del equipo Media Medio Comunicación anticipada, redistribución de tareas
Complejidad subestimada Alta Alto Re-estimación continua, scope reduction si es necesario
Integración final compleja Media Alto Integración continua desde Sprint 1, pruebas E2E diarias

👥 Riesgos de recursos

Riesgo Probabilidad Impacto Plan de Mitigación
Sobrecarga académica Alta Medio Planificación con calendario académico, flexibilidad en fechas
Conocimiento técnico limitado Media Medio Capacitación cruzada, documentación detallada, pair programming
Disponibilidad de GCP Baja Alto Cuenta de respaldo, ambiente local como fallback
Herramientas de desarrollo Baja Bajo Alternativas open source identificadas, licencias estudiantiles
Coordinación del equipo Media Medio Daily standups obligatorios, herramientas de comunicación claras

📞 Plan de comunicación

🔄 Ceremonias de Scrum

Ceremonia Frecuencia Duración Participantes
Daily Standups Diario 15 minutos Equipo de desarrollo
Sprint Planning Al inicio del sprint 2 horas Todo el equipo
Sprint Review Al final del sprint 1 hora Equipo + Stakeholders
Sprint Retrospective Al final del sprint 1 hora Equipo de desarrollo

📊 Reportes y seguimiento

  • Daily metrics: Velocity charts, burndown por sprint en Jira
  • Weekly reports: Estado de user stories, bloqueadores, métricas de calidad
  • Sprint reviews: Demos funcionales con stakeholders cada 2 semanas
  • Retrospectivas: Mejora continua con acciones específicas por sprint

📅 Cronograma general

🎯 Hitos importantes

Hito Fecha Descripción
Fin Sprint 1 Semana 2 del proyecto Final 2 Entrega de infraestructura base y módulos de registro
Fin Sprint 2 Semana 4 del proyecto Final 2 Entrega de funcionalidades comerciales y sistema de pedidos
Fin Sprint 3 Semana 7 del proyecto Final 2 Entrega de producto completo con optimizaciones
Entrega final Semana 8 del proyecto Final 2 Presentación y documentación final del proyecto