Documento de lecciones aprendidas - JohannPaezU/MISW4501-MediSupply GitHub Wiki

Lecciones aprendidas - Proyecto MediSupply

Este documento recoge las principales lecciones aprendidas durante el desarrollo del proyecto MediSupply a lo largo de las 8 semanas del curso. Se documentan tanto los éxitos como los desafíos enfrentados, con el objetivo de mejorar futuros proyectos y proporcionar retroalimentación valiosa para el equipo.

1. Lecciones aprendidas en arquitectura de software

1.1 Diseño de arquitectura

✅ Logros:

  • La iteración continua en los modelos de arquitectura permitió refinar y mejorar el diseño
  • El uso de patrones arquitectónicos establecidos facilitó la comunicación entre el equipo
  • La documentación visual (diagramas) fue fundamental para el entendimiento común

⚠️ Desafíos:

  • Inicialmente subestimamos la complejidad de integración entre componentes móviles y web
  • Los cambios en requisitos de calidad (de Latencia a Disponibilidad) requirieron ajustes significativos en la arquitectura

📚 Aprendizajes clave:

  • La flexibilidad en el diseño arquitectónico es crucial para adaptarse a cambios en requisitos
  • Es importante validar decisiones arquitectónicas temprano mediante experimentos
  • La documentación debe evolucionar junto con el diseño

1.2 Experimentos de arquitectura

✅ Logros:

  • Los experimentos de Disponibilidad y Seguridad proporcionaron evidencia para validar decisiones
  • Los resultados permitieron ajustar la arquitectura antes de la implementación completa

⚠️ Desafíos:

  • La configuración inicial de los experimentos tomó más tiempo del estimado
  • Algunos resultados requirieron múltiples iteraciones para ser concluyentes

📚 Aprendizajes clave:

  • Los experimentos de arquitectura son inversiones valiosas que ahorran tiempo en fases posteriores
  • Es importante definir métricas claras y criterios de éxito antes de ejecutar experimentos
  • La documentación detallada de experimentos facilita la replicación y validación

2. Lecciones aprendidas en gestión de proyecto

2.1 Planificación y estimación

✅ Logros:

  • La estructura de EDT proporcionó claridad en el alcance del proyecto
  • La división en sprints facilitó el seguimiento y control del progreso
  • El uso de herramientas como Jira mejoró la visibilidad del estado del proyecto

⚠️ Desafíos:

  • Las estimaciones iniciales fueron optimistas en algunas tareas técnicas complejas
  • La coordinación entre miembros del equipo requirió más esfuerzo del anticipado

📚 Aprendizajes clave:

  • Las estimaciones deben incluir tiempo para investigación y aprendizaje
  • La comunicación frecuente es esencial en equipos distribuidos
  • Los buffers de tiempo son necesarios para manejar imprevistos

2.2 Gestión de cambios

✅ Logros:

  • El equipo se adaptó exitosamente al cambio de ASR (de Latencia a Disponibilidad)
  • Los procesos de revisión y refinamiento fueron efectivos

⚠️ Desafíos:

  • Los cambios en requisitos impactaron la planificación

📚 Aprendizajes clave:

  • Los cambios son inevitables y deben ser gestionados proactivamente
  • Es importante documentar las razones detrás de los cambios
  • La flexibilidad en los procesos permite adaptarse mejor a los cambios

3. Lecciones aprendidas en tecnología

3.1 Selección de frameworks y herramientas

✅ Logros:

  • La evaluación sistemática de frameworks resultó en decisiones bien fundamentadas
  • Las herramientas seleccionadas se alinearon con los objetivos del proyecto
  • La documentación de criterios de selección facilitó futuras decisiones

⚠️ Desafíos:

  • La compatibilidad entre herramientas requirió investigación adicional

📚 Aprendizajes clave:

  • La selección de tecnología debe considerar no solo características técnicas sino también factores del equipo
  • Es importante hacer pruebas de concepto antes de comprometerse con una tecnología
  • La documentación de decisiones tecnológicas es valiosa para el mantenimiento futuro

3.2 Estrategia de pruebas

✅ Logros:

  • La definición temprana de la estrategia de pruebas proporcionó claridad en los objetivos de calidad
  • La selección de frameworks de pruebas se alineó con las tecnologías principales del proyecto

⚠️ Desafíos:

  • La selección de los tipos de pruebas a aplicar tomó más tiempo de lo esperado

📚 Aprendizajes clave:

  • Las pruebas deben ser consideradas desde las fases tempranas del proyecto
  • La estrategia de pruebas debe evolucionar con el proyecto

4. Lecciones aprendidas en diseño de UX/UI

4.1 Desarrollo de prototipos

✅ Logros:

  • Los prototipos iterativos permitieron validar conceptos de diseño tempranamente
  • La consistencia entre versiones web y móvil se mantuvo efectivamente
  • Las herramientas de prototipado (Figma) facilitaron la colaboración

⚠️ Desafíos:

  • Algunos aspectos de usabilidad solo se harán evidentes durante la construcción real del proyecto

📚 Aprendizajes clave:

  • Los prototipos son herramientas valiosas para comunicar ideas de diseño
  • Es importante validar prototipos con usuarios potenciales cuando sea posible
  • La consistencia en diseño requiere establecer y mantener guías de estilo

5. Lecciones aprendidas en trabajo en equipo

5.1 Colaboración y comunicación

✅ Logros:

  • El equipo desarrolló una dinámica de trabajo efectiva
  • La distribución de responsabilidades fue clara y equilibrada
  • Se establecieron canales de comunicación efectivos

⚠️ Desafíos:

  • La coordinación de horarios para reuniones sincrónicas fue compleja
  • Algunas decisiones técnicas requirieron más consenso del anticipado

📚 Aprendizajes clave:

  • La comunicación asíncrona efectiva es crucial en equipos distribuidos
  • Es importante establecer roles y responsabilidades claras desde el inicio
  • Las reuniones regulares de sincronización son esenciales para mantener alineación

5.2 Gestión del conocimiento

✅ Logros:

  • La documentación sistemática facilitó el seguimiento del progreso
  • El intercambio de conocimiento entre miembros del equipo fue efectivo

⚠️ Desafíos:

  • La transferencia de conocimiento requirió esfuerzo adicional

📚 Aprendizajes clave:

  • La documentación es fundamental para la gestión del conocimiento
  • Es importante distribuir el conocimiento crítico entre múltiples miembros del equipo

6. Conclusiones

El proyecto MediSupply ha sido una experiencia de aprendizaje valiosa que ha permitido aplicar conceptos teóricos en un contexto práctico. Las lecciones aprendidas destacan la importancia de:

  • Flexibilidad y adaptabilidad en el diseño y gestión del proyecto
  • Comunicación efectiva como base para el éxito del equipo
  • Validación temprana de decisiones críticas mediante experimentación
  • Documentación sistemática para facilitar el mantenimiento y evolución del proyecto

Estas lecciones proporcionan una base sólida para abordar futuros proyectos con mayor experiencia y mejores prácticas establecidas.