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
📝 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
📦 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
📝 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
📦 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
📝 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
📦 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
⚠️ 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 |