Planificación del proyecto - UniExtremadura/proyecto-gps-25-26-gb05 GitHub Wiki

Modelo de proceso de desarrollo

El equipo ha barajado distintos modelos a la hora de desarrollar el producto. Entre estos modelos destacan: Modelo convencional, proceso unificado y SCRUM.

Dentro de estas opciones se han identificado las distintas ventajas e inconvenientes que cada uno de ellos presenta para así poder elegir el que mejor se adecúe al equipo de desarrollo.

Finalmente, después de debatirlo internamente, se ha elegido SCRUM como el más adecuado para este equipo y proyecto.

Equipo de trabajo

El equipo de trabajo estará conformado por los siguientes integrantes:

  • Alejandro Paniagua García — Product Owner (PO). Encargado del Product Backlog, comunicación con los stakeholders, creación de historias y seguimiento de los objetivos del cliente.
  • Miguel Alejandro García Sevilla — Scrum Master. Encargado de la organización de las reuniones, control del proceso y el tiempo, impulsor del equipo, gestión de retrospectivas, acuerdos de trabajo y comunicación dentro del equipo.
  • Iván Ruiz López — Tech Lead (TL). Visión principal en la arquitectura, estándares, proceso técnico (toma decisiones y gestiona deuda y riesgos técnicos). Descomposición de las historias del Product Backlog en tareas. Principal apoyo para los DevOps y Developers.
  • Pablo Rebanales Álvarez — DevOps/QA. Principal responsable de las pruebas del software, CI/CD, gestión de entornos, preproducción y despliegue del software.
  • Daniel Barrantes Pulido — Developer. Encargado del desarrollo de funcionalidades siguiendo las tareas técnicas definidas por el Tech Lead priorizando las historias del Product Backlog. Generador de código del software y de pruebas.

Product Backlog

El Product Backlog es el único punto de referencia y la lista priorizada de todo el trabajo que se debe realizar para mejorar, mantener y hacer evolucionar el producto. Sirve como un artefacto vivo y dinámico que refleja la visión y la estrategia del producto.

Este Backlog es una herramienta fundamental en el desarrollo ágil, ya que asegura que el equipo de desarrollo siempre esté trabajando en los elementos de mayor valor para los stakeholders y el usuario final. Los elementos del Product Backlog se detallan progresivamente, priorizan continuamente y se refinan para garantizar que el equipo tenga claro qué entregar en cada Sprint.

La tabla a continuación representa la lista actual de funcionalidades, requisitos, mejoras y correcciones, ordenados por prioridad, valor y estimación de esfuerzo, y servirá como la base de planificación para los próximos ciclos de desarrollo.

Identificador Definición Historias de usuario Tipo de requisito Horas-Hombre Prioridad Escala MoSCoW Depende de
HU-01 Registrarse mediante OAuth. Como usuario y como artista, me gustaria poder registrarme en la plataforma Estructural 4 10 MUST HAVE
HU-02 Iniciar sesión mediante OAuth. Como usuario y como artista, me gustaria poder iniciar sesión en la plataforma Estructural 4 10 MUST HAVE HU-01
HU-04 Subir canciones y/o álbumes. Como artista, me gustaría subir mis canciones y mis álbumes Estructural 5 10 MUST HAVE
HU-05 Visualizar el perfil de un artista. Como usuario registrado, me gustaría ver el perfil del artista Estructural 4 10 MUST HAVE
HU-06 Modificar datos personales. Como usuario registrado y como artista, me gustaría modificar mis datos personales del perfil Estructural 3 10 MUST HAVE HU-02
HU-03 Comprar un producto. Como usuario registrado, me gustaría poder comprar un producto Estructural 7 10 MUST HAVE HU-04, HU-09
HU-07 Visualizar la información de un producto. Como usuario, me gustaría poder ver la información de los productos disponibles Estructural 4 9 MUST HAVE HU-04
HU-08 Modificar un lanzamiento (canción o álbum). Como artista, me gustaría cambiar la fecha de un lanzamiento Estructural 3 9 MUST HAVE HU-04
HU-09 Poner a la venta merchandising. Como artista, me gustaria poner a la venta productos de mis canciones o álbumes Estructural 6 8 SHOULD HAVE
HU-10 Buscar a artistas por diferentes filtros. Como usuario, me gustaría buscar artistas por su nombre y el tipo de música que crea Estructural 4 7 SHOULD HAVE HU-05
HU-11 Reproducir lanzamientos en soporte digital. Como usuario registrado, me gustaría escuchar desde la plataforma la música que compro Estructural 6 7 SHOULD HAVE HU-04
HU-12 Obtener estadísticas y el rendimiento de los lanzamientos. Como artista, me gustaría ver un resumen de cómo estan yendo mis lanzamientos Estructural 10 7 SHOULD HAVE
HU-13 Darse de baja (eliminar cuenta). Como usuario registrado y artista, me gustaría dejar de formar parte de la plataforma Estructural 1 7 SHOULD HAVE HU-02
HU-14 Buscar productos por diferentes filtros. Como usuario, me gustaría realizar búsquedas de productos por género, precio y año de publicación Estructural 4 6 COULD HAVE HU-04
HU-15 Personalizar el perfil de artista. Como artista, me gustaría poder modificar como se ve mi perfil Estructural 3 6 COULD HAVE HU-05
HU-16 Eliminar un producto. Como artista, me gustaría dejar de vender un producto Estructural 1 6 COULD HAVE HU-04, HU-09
HU-17 Consultar el centro de ayuda para resolver dudas. Como usuario, usuario registrado y artista, me gustaría que hubiera un sitio donde resolver las dudas frecuentes Estructural 3 4 COULD HAVE
HU-18 Recibir notificaciones sobre lanzamientos o eventos. Como usuario registrado, me gustaría recibir notificaciones de eventos o lanzamientos que haya dicho que me interesen Estructural 4 4 COULD HAVE
HU-19 Crear una lista de productos deseados. Como usuario registrado, me gustaría tener un sitio donde ver productos que me gustaía obtener Estructural 2 4 COULD HAVE
HU-20 Visualizar el perfil de un usuario. Como usuario, me gustaría ver los perfiles de otros usuarios registrados en la plataforma Estructural 3 3 COULD HAVE
HU-21 Personalizar el perfil de usuario. Como usuario registrado, me gustaría modificar mi perfil y personalizarlo Estructural 3 3 COULD HAVE HU-20
HU-22 Crear una lista de reproducción. Como usuario registrado, me gustaría poder crear una lista utilizando las canciones que tengo adquiridas Estructural 2 3 COULD HAVE
HU-23 Calificar o reseñar un lanzamiento. Como usuario registrado, me gustaría opinar sobre una canción o album de un artista Estructural 2 3 COULD HAVE HU-04
HU-24 Buscar usuarios por diferentes filtros. Como usuario, usuario registrado y artista, me gustaría buscar a ususario registrados por distintos filtros de búsqueda Estructural 4 3 COULD HAVE HU-20
HU-25 Gestionar el envío de un producto. Como usuario registradom me gustaría ver información sobre como va mi envío Estructural 5 3 COULD HAVE HU-03
HU-26 Plataforma accesible para usuarios con distintas discapacidades. Como usuario con discapacidad, me gustaría una plataforma para que cualquier persona con discapacidad pudiera acceder No estructural 8 2 WILL NOT HAVE
HU-27 Calificar o reseñar un producto de merchandising. Como usuario registrado, me gustaría dar mi opinión sobre los productos que vende un artista que no sean canciones o álbumes Estructural 2 1 WILL NOT HAVE HU-09
HU-28 Revisar las ediciones de mis lanzamientos mediante un historial de cambios. Como artista, me gustaría ver las distintas versiones que ha tenido uno de mis lanzamientos Estructural 12 0 WILL NOT HAVE HU-04, HU-08
HU-29 Preguntar a un chatbot para resolver dudas. Como usuario, usuario registrado o artista, me gustaria poder escribir con un bot para resolver dudas Estructural 3 0 WILL NOT HAVE

Esfuerzo del equipo

Horas/Hombre

Esta hoja de cálculo, "Capacidad del equipo", registra las horas de trabajo de los participantes en diferentes categorías. Incluye:

  • Participantes: Nombres de los individuos.
  • Horas de trabajo/día: El total de horas trabajadas por día.
  • Horas clase: Horas dedicadas a clases.
  • Otros proyectos: Horas asignadas a otros proyectos.
  • Tiempo personal: Horas dedicadas a tiempo personal.
  • Actividades SCRUM: Horas dedicadas a actividades SCRUM.
  • Totales: La suma total de las horas. El propósito de la hoja de cálculo es controlar las horas de trabajo de los participantes, desglosadas por diferentes tipos de actividades. alt

Selección final de requisitos

Con la priorización final de los requisitos utilizando la Escala MoSCoW, se ha definido con claridad el alcance del producto. Los elementos clasificados como MUST HAVE son los requisitos fundamentales e imprescindibles que el producto debe incluir para ser viable y funcional en su primera versión. Estos, como el registro, inicio de sesión (HU-01, HU-02) y la subida de contenido (HU-04). Los requisitos SHOULD HAVE se consideran de alta importancia y se incluirán si el tiempo lo permite, mientras que los COULD HAVE son deseables pero de baja prioridad inmediata. Finalmente, los elementos marcados como WILL NOT HAVE se han descartado de este backlog y del alcance del proyecto actual, asegurando así que el equipo se concentre exclusivamente en entregar el máximo valor en el menor tiempo posible.

Los requisitos a implementar son los siguientes:

Identificador Definición Prioridad Escala MoSCoW Viabilidad en el Sprint
HU-01 Registrarse mediante OAuth. 10 MUST HAVE Viable
HU-02 Iniciar sesión mediante OAuth. 10 MUST HAVE Viable
HU-04 Subir canciones y/o álbumes. 10 MUST HAVE Viable
HU-06 Modificar datos personales. 10 MUST HAVE Viable
HU-07 Visualizar la información de un producto. 9 MUST HAVE Viable
HU-08 Modificar un lanzamiento (canción o álbum). 9 MUST HAVE Viable
HU-13 Darse de baja (eliminar cuenta). 7 SHOULD HAVE Viable
HU-14 Buscar productos por diferentes filtros. 6 COULD HAVE Viable
HU-03 Comprar un producto. 10 MUST HAVE Viable
HU-09 Poner a la venta merchandising. 8 SHOULD HAVE Viable
HU-11 Reproducir lanzamientos en soporte digital. 7 SHOULD HAVE Viable
HU-16 Eliminar un producto. 6 COULD HAVE Viable
HU-17 Consultar el centro de ayuda para resolver dudas. 4 COULD HAVE Viable
HU-18 Recibir notificaciones sobre lanzamientos o eventos. 4 COULD HAVE Viable
HU-19 Crear una lista de productos deseados. 4 COULD HAVE Viable
HU-22 Crear una lista de reproducción. 3 COULD HAVE Viable
HU-23 Calificar o reseñar un lanzamiento. 3 COULD HAVE Viable
HU-25 Gestionar el envío de un producto. 3 COULD HAVE Viable
HU-05 Visualizar el perfil de un artista. 10 MUST HAVE Viable
HU-10 Buscar a artistas por diferentes filtros. 7 SHOULD HAVE Viable
HU-12 Obtener estadísticas y el rendimiento de los lanzamientos. 7 SHOULD HAVE Viable
HU-15 Personalizar el perfil de artista. 6 COULD HAVE Viable
HU-20 Visualizar el perfil de un usuario. 3 COULD HAVE Viable
HU-21 Personalizar el perfil de usuario. 3 COULD HAVE Viable
HU-24 Buscar usuarios por diferentes filtros. 3 COULD HAVE Viable

Los requisitos que hemos decidido que no implementaremos en el proyecto son los últimos cuatro mostrados en product backlog(HU-26, HU-27, HU-28, HU-29). A continuación, se explicarán los motivos de por qué se han dejado fuera del alcance del proyecto.

  • La implementación del requisito HU-26 supondría añadir estándares de accesibilidad (como WCAG), estos requieren un esfuerzo significativo y revisión en todo el sistema.

  • El requisito HU-27, aunque es un requisito estructural, no se implementará en esta etapa debido a que queremos centrarnos en la gestión de venta de productos fisicos, no en la gestión de reseñas y valoraciones de los mismos.

  • Con respecto al requisito HU-28, el implementar un historial de versiones supondría una gran inversión de tiempo y conocimientos complejos para poder guardar, acceder y cambiar las distintas versiones que se hicieron.

  • Para finalizar, el requisito HU-29 no se implementará debido a que se necesita un conocimiento que ninguno de los integrantes del grupo tiene actualmente. Ponerse a aprender el funcionamiento de un chatbot añadiría horas extras, posibles retrasos y la calidad del mismo sería muy baja.

Planificación de tareas

Hemos definido un plan de trabajo basado en tres ciclos de desarrollo (Sprints). Durante la planificación de cada Sprint, se distribuirán los requisitos entre los integrantes del equipo. Las tareas se abordarán de forma individual o en pares, según sea necesario para equilibrar la dificultad y la carga de trabajo. Como regla estricta de planificación, nos aseguraremos de que la suma de las estimaciones en Horas-Hombre de las tareas asignadas a cualquier desarrollador no supere su capacidad de trabajo semanal disponible, evitando la sobrecarga. Cuando empiece el desarrollo, los sprints se harán de miércoles a miércoles.

La división de los requisitos por sprint es la siguiente:

Identificador Definición Sprint Asignados
HU-01 Registrarse mediante OAuth. 1 Alejandro Paniagua-Iván
HU-02 Iniciar sesión mediante OAuth. 1 Alejandro Paniagua-Iván
HU-04 Subir canciones y/o álbumes. 1 Miguel Alejandro
HU-06 Modificar datos personales. 1 Pablo
HU-07 Visualizar la información de un producto. 1 Daniel
HU-08 Modificar un lanzamiento (canción o álbum). 1 Daniel
HU-13 Darse de baja (eliminar cuenta). 1 Iván
HU-14 Buscar productos por diferentes filtros. 1 Pablo
HU-03 Comprar un producto. 2 Miguel Alejandro
HU-09 Poner a la venta merchandising. 2 Pablo
HU-11 Reproducir lanzamientos en soporte digital. 2 Daniel
HU-16 Eliminar un producto. 2 Miguel Alejandro
HU-17 Consultar el centro de ayuda para resolver dudas. 2 Alejandro Paniagua
HU-18 Recibir notificaciones sobre lanzamientos o eventos. 2 Alejandro Paniagua
HU-19 Crear una lista de productos deseados. 2 Pablo
HU-22 Crear una lista de reproducción. 2 Iván
HU-23 Calificar o reseñar un lanzamiento. 2 Daniel
HU-25 Gestionar el envío de un producto. 2 Iván
HU-05 Visualizar el perfil de un artista. 3 Daniel
HU-10 Buscar a artistas por diferentes filtros. 3 Pablo-Iván
HU-12 Obtener estadísticas y el rendimiento de los lanzamientos. 3 Iván-Alejandro Paniagua
HU-15 Personalizar el perfil de artista. 3 Daniel
HU-20 Visualizar el perfil de un usuario. 3 Miguel Alejandro
HU-21 Personalizar el perfil de usuario. 3 Miguel Alejandro
HU-24 Buscar usuarios por diferentes filtros. 3 Pablo-Alejandro Paniagua

Estudio de viabilidad

Viabilidad general

La estimación de la capacidad del equipo nos ha arrojado una cifra de 8,4 horas/hombre x día, lo que significa que para cada sprint de 5 días, el equipo tiene una capacidad de 42 horas.

Si comparamos esta cifra, con las horas que se estimaron que supondría completar cada uno de los requisitos de cada sprint, podemos obtener la siguiente gráfica:

Pudiéndose apreciar que las horas estimadas para cada sprint son siempre inferiores a 42 horas, por lo que en términos generales, el proyecto parece viable.

Viabilidad por rol

Para apreciar la viabilidad de cada rol, se hace uso de la herramienta de vista de “Histogramas” por recurso que provee el software ProjectLibre.

Las líneas negras enmarcan la disponibilidad del recurso y el relleno verde indica el esfuerzo estimado que se espera tenga el rol durante las fechas indicadas, por lo que si está por debajo de la línea negra significa que es viable el trabajo que se le ha asignado.

  • Alejandro Paniagua García — Product Owner (PO).

  • Miguel Alejandro García Sevilla — Scrum Master.

  • Iván Ruiz López — Tech Lead (TL).

  • Pablo Rebanales Álvarez — DevOps/QA.

  • Daniel Barrantes Pulido — Developer.

Comprobándose que el proyecto también es viable para cada uno de los roles del equipo.

Coste del proyecto

Tras la información recopilada en el software ProjectLibre, se esperar que cada rol del equipo suponga el siguiente coste para el proyecto:

  • Alejandro Paniagua García — Product Owner (PO): 1250.00€.
  • Miguel Alejandro García Sevilla — Scrum Master: 1080,00€.
  • Iván Ruiz López — Tech Lead (TL): 840,00€.
  • Pablo Rebanales Álvarez — DevOps/QA: 725,00€.
  • Daniel Barrantes Pulido — Developer: 580,00€.

Por lo tanto, se espera que el coste del proyecto en conjunto sea de unos 4475,00€.