Metodología
Como metodología de trabajo para el proyecto se empleará Combat Agile[]. Esta metodología se basa en el marco de trabajo Scrum, heredando todas sus fases y productos. Los desarrollos basados en Scrum dividen el trabajo en Sprints, los cuales son etapas de aproximadamente 4 semanas de duración. A lo largo de cada Sprint se realizan una serie de hitos que permiten identificar el trabajo pendiente y auditar si el desarrollo progresa hacia el objetivo.
Los hitos se describen a continuación:
-
Sprint Planning:
Se define el trabajo del Product Backlog (PB) que se realizará durante el Sprint. Los desarrolladores desglosan cada ítem del PB seleccionado en tareas concretas llamadas Issues. Durante esta fase también se establece el objetivo del Sprint y se crea el Sprint Backlog, que incluye el objetivo, los PBIs seleccionados y los Issues generados a partir de estos PBIs. -
Daily Scrum:
Reunión diaria de máximo 15 minutos en la que el equipo informa sobre las tareas realizadas, las pendientes y los impedimentos encontrados. -
Sprint Review:
Al finalizar el Sprint, se presenta el trabajo completado a los stakeholders para recibir retroalimentación y actualizar el Product Backlog según sea necesario. -
Sprint Retrospective:
El equipo analiza cómo ha trabajado durante el Sprint y propone mejoras a implementar en los siguientes Sprints. En esta reunión se abordan únicamente aspectos metodológicos, no relacionados con el producto.
Basándose en los principios del Manifiesto Ágil[] y en Scrum, la metodología Combat Agile se caracteriza por cinco puntos clave:
- Flexible: Permite trabajar con distintas configuraciones de equipo y diferentes niveles de urgencia (estratégico o de combate).
- Eficiente: Emplea un enfoque "only-once" que fomenta la autodocumentación y el diseño emergente, siguiendo buenas prácticas y promoviendo la colaboración entre perfiles funcionales y técnicos mediante Behavior-Driven Development (BDD).
- Accesible: Se implementa de forma rápida y fácil de asimilar por todos los integrantes, adoptándose progresivamente con herramientas mínimas para facilitar su propagación.
- Enfocado: Prioriza las tareas que generan mayor valor, reduciendo incertidumbre mediante retroalimentación temprana.
- Lean: Se revisa cada proceso para optimizar su eficiencia en cada iteración.
Tecnología
El frontend en Vue.js ofrece una interfaz de usuario dinámica y receptiva, permitiendo una interacción fluida y eficiente con el backend. Mediante llamadas API RESTful, el frontend se comunica con el backend para ejecutar operaciones basadas en los permisos de los usuarios. El backend gestiona la lógica de negocio y las operaciones de datos utilizando el arquetipo "Medusa", que integra Spring Data, su propia seguridad y autenticación contra Active Directory, y emplea Spring Data Rest para exponer el API con endpoints HATEOAS de nivel 3[]. Por último, MySQL proporciona un almacenamiento rápido y eficiente para datos estructurados.
Arquitectura
La arquitectura de la aplicación web se basa en un enfoque full stack[], con un frontend desarrollado en Vue.js versión 3 y un backend robusto utilizando el arquetipo de defensa "Medusa" y MySQL como gestor de base de datos.
Calendario de plazos
El desarrollo de Deméter se dividirá en diferentes Sprints hasta alcanzar, como mínimo, un MVP.
| Plazos | Etapa |
|---|---|
| 01-30 septiembre | Sprint 3 |
| 01-28 octubre | Sprint 4 |
| 29 octubre - 18 noviembre | Sprint 5 |
| 1-2 diciembre | Exposición Resultados |
Tecnologías y entornos
- FrontEnd: Desarrollo basado en HTML5, CSS y JavaScript, utilizando Vue.js versión 3 con Options API y Bootstrap versión 5.
- BackEnd: Desarrollo de API REST en Java con Spring Boot y el arquetipo de defensa "Medusa".
- Almacenamiento de Datos: Base de datos gestionada con MySQL.
- Herramientas de desarrollo: IDE Eclipse para Java y Spring Boot; IDE Visual Studio Code para frontend.
- Control de versiones: Uso de Git para control de versiones, con repositorio en GitLab.