Metodología
Como metodología de trabajo para el proyecto se utilizará Combat Agile[]. Esta metodología está basada en el marco de trabajo Scrum, por lo que hereda de esta todas sus fases y productos generados. Los desarrollos basados en Scrum dividen el trabajo en Sprints, los cuales son etapas que cuentan con una duración aproximada de 4 semanas. A su vez a lo largo de cada Sprint tienen lugar una serie de hitos los cuales determinan cuál es el trabajo pendiente por realizar y auditan si el desarrollo avanza hacia el objetivo.
A continuación se detalla en qué consiste cada uno de los hitos:
-
Sprint Planning: Se define qué trabajo del PB se va a realizar durante el sprint. Para ello, los desarrolladores deben desglosar cada PBI seleccionado en las tareas concretas que se deben realizar. Cada una de estas tareas se denomina Issue. Además, durante el Sprint Planning se establece el objetivo del sprint para crear el Sprint Backlog. El Sprint Backlog es un artefacto compuesto por el objetivo del sprint, los PBIs seleccionados y los Issues generador a partir de los PBIs.
-
Daily Scrum: Reunión diaria de 15 minutos como máximo donde el equipo de desarrolladores informa sobre lo que hizo, lo que va a hacer y los impedimentos que han encontrado.
-
Sprint Review: Al final de cada sprint, se presenta el trabajo completado a los stakeholders para recibir feedback y actualizar el Product Backlog según sea necesario.
-
Sprint Retrospective: El equipo Scrum analiza cómo ha trabajado durante el sprint y propone mejoras a implementar durante los próximos sprints. En esta reunión tan solo se tratan aspectos relativos a la metodología, no al producto.
A partir de los principios descritos en el Manifiesto Agil[], y teniendo como referencia Scrum, la metodología Combat Agile se caracteriza por enfatizar en 5 puntos:
- Flexible: permitiendo el desarrollo con distintas configuraciones de equipos y para distintos niveles de urgencia (estratégico o de combate). Para ilustrarlo: “No podemos cambiar el viento, pero podemos ajustar las velas para alcanzar el destino”.
- Eficiente: estableciendo un método tipo “only-once” que provoque la autodocumentación y el diseño emergente que observe las buenas prácticas y fomente la colaboración entre funcional y técnico usando Behavior-Driven Development (BDD).
- Accesible: siendo rápido y fácil de transmitir y asimilar por funcionales y técnicos. Se adopta progresivamente con las mínimas herramientas. Así no existen barreras para empezar a usarlo, facilitando su capacidad de propagarse a cualquier espacio.
- Enfocado: fomenta el coraje para empezar con las tareas que entreguen el máximo valor, independientemente de su riesgo, y que despejen la mayor incertidumbre sobre el proyecto con un feedback temprano.
- Lean: Pilar transversal que obliga a revisar cada proceso que se realiza para convertirlo en más eficiente con 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. A través de llamadas API RESTful, el frontend se comunica con el backend para realizar operaciones basadas en los permisos de los usuarios. El backend maneja la lógica de negocio y las operaciones de datos utilizando el arquetipo "Medusa" que ya incorpora Spring Data, su propia seguridad y autenticación contra Active Directory, apoyandose en Spring Data Rest para exponer el API con "endpoints" "HAETOAS" nivel 3[]. Por último MySql nos proporciona un almacenamiento rápido y eficiente para datos estructurados como los que haremos uso.
Arquitectura
La arquitectura de la aplicación web se basa en un enfoque de arquitectura de 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, como mínimo, obtener un MVP
| Plazos | Etapa |
|---|---|
| 01-30 septiembre | Sprint 3 |
| 01-28 octubre | Sprint 4 |
| 29 octubre -18 noviembre | Spring 5 |
| 1-2 diciembre | Exposición Resultados |
Tecnologías y entornos
- FrontEnd: Desarrollo de FrontEnd basado en HTML5, CSS y Java Script mediante el uso de los framework vue.js en su versión 3 con options api y boostrap en su version 5.
- BackEnd: Desarrollo de API Rest en lenguaje de programación JAVA con el uso del framework Spring Boot y el arquetipo de Defensa "Medusa".
- Almacenamiento de Datos: Base de datos con gestor MySql.
- Herramientas de desarrollo: IDE de desarrollo Eclipse para JAVA y Spring Boot. IDE de desarrollo Visual Studio Code para FrontEnd.
- Control de versiones: Uso de git para control de versiones utilizando como repositorio GitLab.
Equipo Scrum
- Scrum Master: Capitán D. Ignacio Ovidio Muñoz Nicolás.
- Product Owner/Desarrolladores: Capitán D. Manuel de Blas Pino, Teniente D. Daniel Dominguez Cancela