|
Grado en Ingeniería Informática |
TRABAJOS FIN DE GRADO curso: 2018-19
Desarrollo ágil de un servicio web de auto-organización de turnos de trabajo |
Tecnologías Específicas
Ingeniería del Software
Descripcion y Objetivos
En entornos de trabajo donde los diferentes turnos (de día, noche, finde de semana, festivos y puentes,...) son cubiertos por equipos grandes y un solo coordinador, es común que cualquier asignación o petición de cambio sufra colas de espera para ser procesadas. Además, es bastante posible que la actualización del cuadrante que contiene la última versión del coordinador no sea advertida por todo el equipo, dando lugar a problemas de organización.
Este tipo de organización centralizada en un coordinador con equipos grandes se da en el servicio de enfermería del CHUA. Cuando una enfermera desea preguntar si alguien le puede cambiar un turno, el proceso seguido, comúnmente, consiste en la petición al grupo de enfermeras de confianza creando problemas de compromiso. Por otro lado, si la petición es una sustitución larga, entonces se hace a la coordinación. Además, cualquier actualización en el cuadrante por parte de la coordinadora solo se refleja en un tablón de anuncios, que no es revisado a diario por todo el equipo de enfermería.
Así, se propone la creación de una utilidad software que permita a cada miembro de enfermería solicitar y/o aceptar cambios, avisando la coordinadora para tener a su disposición en todo momento la última versión del cuadrante siempre disponible.
Para ser accesible a todo el equipo de enfermería, la solución se presentará como un servicio web con diseño adaptativo. De manera que el equipo pueda pasar a ser auto-organizativo, manteniendo la supervisión de coordinación.
Metodología y Competencias
La metodología de desarrollo será ágil, aunque todavía está por determinar si será Scrum o FDD (feature-driven development). El alumno tendrá la última palabra en esta decisión, debiendo justificar la misma. El alumno mantendrá reuniones por iteración cada 2-4 semanas con los tutores, en los que se realizará una revisión+planificación para la siguiente iteración.
Se procurará crear una pipeline de trabajo de Integración y Despliegue continuos [2], siguiendo las mejores prácticas recomendadas por DevOps [1].
Competencias de la intensificación que se pretenden cubrir:
- Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la Ingeniería del Software
- Capacidad para valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto mediante la búsqueda de compromisos aceptables dentro de las limitaciones derivadas del coste, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones
- Capacidad de identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales.
- Capacidad de dar solución a problemas de integración en función de las estrategias, estándares y tecnologías disponibles
Medios a utilizar
Bibliografía sobre el proceso de desarrollo ágil (DevOps)
Herramientas de gestión del proyecto (YouTrack, GitHub, TravisCI)
Herramientas de modelado UML
Herramientas y librerías de desarrollo y test
Bibliografía
1. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations. Gene Kim et al. IT Revolution Press (2016)
2. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Jez Humble et al. Addison-Wesley (2010)
Tutores BERMEJO LOPEZ, PABLO MONTERO SIMARRO, FRANCISCO | Alumno BÁEZ SORIANO, JOSÉ MANUEL
|
| |