Full text
Recuérdame 3.0: Mejorando una aplicación de apoyo para el tratamiento de personas con problemas de memoria mediante terapias basadas en reminiscencia Trabajo de Fin de Grado Curso 2023–2024 Autores Bryan Eduardo Córdova Ascurra Rubén Martín Castro Steven Alexis Pérez Salinas Samuel Rodríguez Gómez Directoras Virginia Francisco Gilmartín Susana Bautista Blasco Grado en Ingeniería del Software Facultad de Informática Universidad Complutense de Madrid
Recuérdame 3.0: Mejorando una aplicación de apoyo para el tratamiento de personas con problemas de memoria mediante terapias basadas en reminiscencia Trabajo de Fin de Grado Departamento de Ingeniería de Software e Inteligencia Artificial Autores Bryan Eduardo Córdova Ascurra Rubén Martín Castro Steven Alexis Pérez Salinas Samuel Rodríguez Gómez Directoras Virginia Francisco Gilmartín Susana Bautista Blasco Convocatoria : Junio 2024 Grado en Ingeniería del Software Facultad de Informática Universidad Complutense de Madrid 27 de mayo de 2024
Autorización de difusión Los abajo firmantes, matriculados en el Grado de Ingeniería de Software de la Facultad de Informática, autorizan a la Universidad Complutense de Madrid (UCM) a difundir y utilizar con fines académicos, no comerciales y mencionando expresamente a sus autores el presente Trabajo Fin de Grado: “Recuérdame 3.0: Mejorando una aplicación de apoyo para el tratamiento de personas con problemas de memoria mediante terapias basadas en reminiscencia”, realizado durante el curso académico 2023/2024 bajo la dirección de Virginia Francisco Gilmartín y Susana Bautista Blasco en el Departamento de Ingeniería de Software e Inteligencia Artificial, y a la Biblioteca de la UCM a depositarlo en el Archivo Institucional E-Prints Complutense con el objeto de incrementar la difusión, uso e impacto del trabajo en Internet y garantizar su preservación y acceso a largo plazo. Bryan Eduardo Córdova Ascurra Rubén Martín Castro Steven Alexis Pérez Salinas Samuel Rodríguez Gómez 27 de mayo de 2024 v
Agradecimientos En primer lugar, queremos expresar nuestra más profunda gratitud a nuestras tutoras, Virginia y Susana, por todo el apoyo que nos han brindado a lo largo de este proyecto. Su ánimo constante y ayuda en los momentos de duda han sido fundamentales. Nos sentimos profundamente afortunados de haber contado con ellas, especialmente con Virginia, cuya vocación por la enseñanza y excepcional desempeño nos han inspirado durante todos estos años. Gracias a su dedicación, hemos tenido la confianza para completar nuestro grado con ella. Agradecemos también a la Universidad Complutense de Madrid por todas las enseñanzas recibidas durante nuestra formación. Cada lección y experiencia ha sido crucial para nuestro crecimiento académico y personal. Queremos extender nuestro agradecimiento a todos los profesores que han dejado su huella en nosotros. Especialmente, queremos agradecer al Dr. Iván de Rosende Caleiro, quien, como terapeuta, dedicó parte de su valioso tiempo para evaluar nuestra aplicación. Su perspectiva y comentarios han sido esenciales para la mejora de la herramienta, y esperamos sinceramente que le facilite su labor en el futuro. Finalmente, el equipo de “Recuerdame 3.0” quieren agradecer de todo corazón a nuestros familiares, parejas y amigos por el apoyo incondicional, amor y ánimo que nos han brindado en todo momento. Su presencia y aliento han sido fundamentales para completar este proyecto. Habéis sido un pilar para cada uno de nosotros. A todos, muchas gracias. vii
Resumen Este TFG presenta la creación de una aplicación, Recuérdame 3.0, para ayudar a los terapeutas en la realización de terapias basadas en reminiscencia para pacientes con Alzheimer, haciéndolas más cómodas, fáciles, rápidas y eficientes. Continuamos con el desarrollo de la aplicación Recuérdame 2.0, abordando la corrección de errores e implementando nuevas funcionalidades para ofrecer más ayudas a los usuarios. Los principales cambios efectuados respecto a la versión anterior son un rediseño de la interfaz para facilitar el acceso a las funcionalidades existentes, la modificación del almacenamiento del contenido multimedia para hacerlo externo a la aplicación, la introducción de escalas personalizadas, la posibilidad de elegir el tamaño del texto y de las imágenes y mejoras en los resúmenes generados en la aplicación. Además, esta nueva versión incluye nuevas funcionalidades: narración automática de los recuerdos para aquellas personas que tengan dificultades para leer ya sea por problemas de vista derivados de la edad o por problemas cognitivos, un chatbot para que los pacientes puedan realizar terapia desde su casa con la ayuda de un cuidador y sin la intervención del terapeuta, un chatbot de ayuda para los usuarios de la aplicación para que puedan preguntarle cualquier duda que les surja sobre como funciona Recuérdame 3.0, y la detección automática de emociones en los recuerdos para hacer más eficiente la creación de recuerdos y liberar de trabajo al terapeuta. La nueva versión de la aplicación creada durante este TFG ha sido evaluada por un terapeuta familiarizado con las terapias basadas en reminiscencia. Los resultados de esta evaluación fueron muy positivos, todas las tareas que se plantearon fueron consideradas por el terapeuta como fáciles de realizar y la puntuación del cuestionario SUS realizada al terapeuta indica un nivel de usabilidad más que aceptable. El terapeuta indicó que la nueva versión supone una mejora muy significativa respecto a las versiones anteriores y que todas las mejoras introducidas se corresponden con necesidades reales que tienen el terapeuta en su trabajo y los usuarios en su tratamiento. Durante esta evaluación también recogimos algunas sugerencias que servirán para seguir mejorando la herramienta. La aplicación está disponible en http://caliope.fdi.ucm.es1y el código se encuentra alojado en el repositorio https://github.com/NILGroup/TFG-23-24-R 1Los usuarios los cuales están disponibles en la aplicación son: correo.terap[email protected] y terap[email protected], ambos con contraseña “terapeuta”. Para usuarios cuidador: [email protected] y [email protected], ambos con contraseña “cuidador”. ix
Índice de figuras 3.1. Formulario de registro de paciente . . . . . . . . . . . . . . . . . . . . 13 3.2. Historia de vida generada . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3. Calendario de actividades . . . . . . . . . . . . . . . . . . . . . . . . 14 3.4. Vista de relacionar personas con recuerdos . . . . . . . . . . . . . . . 14 3.5. Formulario de registro de terapeuta . . . . . . . . . . . . . . . . . . . 15 3.6. Nueva dropzone ampliada . . . . . . . . . . . . . . . . . . . . . . . . 17 3.7. Calendario con sesiones y actividades . . . . . . . . . . . . . . . . . . 17 3.8. Modal de asignación de archivos a recuerdo con descripción . . . . . . 18 3.9. Escalas con la posibilidad de adjuntar archivos . . . . . . . . . . . . . 18 3.10. Ejemplo de modal anidado . . . . . . . . . . . . . . . . . . . . . . . . 18 3.11. Vista de creación de diagnóstico inicial . . . . . . . . . . . . . . . . . 19 3.12. Gráfica de seguimiento del paciente . . . . . . . . . . . . . . . . . . . 19 3.13. Ejemplo de búsqueda en listado de sesiones . . . . . . . . . . . . . . . 20 4.1. Tablero Kanban de Recuérdame 3.0 . . . . . . . . . . . . . . . . . . . 24 4.2. Políticas Explícitas de Recuérdame 3.0 . . . . . . . . . . . . . . . . . 25 4.3. Representación de la técnica del velero . . . . . . . . . . . . . . . . . 29 4.4. Resultado retrospectiva del velero realizada el 01/10/2023 . . . . . . 30 4.5. Resultado análisis FODA realizado el 29/10/2023 . . . . . . . . . . . 33 4.6. Resultado de la reunión de retrospectiva con el método “Estrella de Mar” realizada el 03/12/2023 . . . . . . . . . . . . . . . . . . . . . . 37 4.7. Resultado de la reunión de retrospectiva con el método utilizado en una empresa realizada el 26/12/2023 . . . . . . . . . . . . . . . . . . 39 4.8. Imagen generada para la dinámica realizada el 29/01/2024 . . . . . . 42 4.9. Representación de la técnica de las 4L realizada el 29/01/2024 . . . . 43 4.10. Resultado retrospectiva de las 4L realizada el 29/01/2024 . . . . . . . 43 4.11. Resultado de la actividad de la línea de tiempo, realizada el 25/02/2024 45 4.12. Resultado de la dinámica para romper el hielo en la retrospectiva del 17/03/2024 ................................ 49 4.13. Resultado retrospectiva de los 3 cerditos el 17/03/2024 . . . . . . . . 51 4.14. Resultado retrospectiva de Start, Stop y Continue realizada el 21/04/2024 54 6.1. Resultado del brainstorming del logo Recuérdame 3.0 . . . . . . . . . 68 xvii
6.2. Resultados provisionales del logo Recuérdame 3.0 . . . . . . . . . . . 69 6.3. Comparación y resultado final del logo Recuérdame 3.0 . . . . . . . . 69 6.4. Botones Cancelar - Finalizar Recuérdame 2.0 VS en Recuérdame 3.0 . 70 6.5. Botones modificados en Recuérdame 3.0 . . . . . . . . . . . . . . . . 70 6.6. Libro de historia de vida en Recuérdame 3.0 . . . . . . . . . . . . . . 71 6.7. Menú de configuración de tamaños . . . . . . . . . . . . . . . . . . . 72 6.8. Libro de historia de vida por defecto (arriba) VS Libro de historia de vida con texto e imagen modificado en tamaño (abajo) . . . . . . . . 73 6.9. Imagen abierta en otra pestaña (Recuérdame 2.0) . . . . . . . . . . . 73 6.10. Imagen ampliada, mostrada directamente sobre el libro de historia de vida .................................... 74 6.11. Generación del pdf de un libro con imágenes . . . . . . . . . . . . . . 75 6.12. Nueva opción de vídeos en el navbar . . . . . . . . . . . . . . . . . . 76 6.13. Nueva vista para la generación de vídeos . . . . . . . . . . . . . . . . 76 6.14. Imagen de la nueva vista para la generación de resúmenes . . . . . . 77 6.15. Imagen de la antigua vista para la generación de resúmenes y videos . 77 6.16. Imagen del script generador de resúmenes después del cambio . . . . 77 6.17. Modificación pdf informe de seguimiento . . . . . . . . . . . . . . . . 78 6.18. Nueva gráfica con escalas personalizadas . . . . . . . . . . . . . . . . 79 6.19. Iconos para la reproducción del audio en los recuerdos . . . . . . . . . 85 6.20. Terapeuta preparando sesión virtual . . . . . . . . . . . . . . . . . . . 86 6.21. Calendario cuidador con sesión virtual . . . . . . . . . . . . . . . . . 87 6.22. Botón para iniciar la sesión virtual . . . . . . . . . . . . . . . . . . . 87 6.23. Vista de la sesión virtual iniciada, puede observarse el botón “Copiar recuerdos de la sesión” en la parte superior . . . . . . . . . . . . . . . 87 6.24. Respuesta de TherapEase, con preguntas basadas en el recuerdo de lasesión.................................. 88 6.25. Botón flotante “Nemo” . . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.26. Nuevo ChatBot de ayuda, expandido desde la parte inferior de la pantalla .................................. 90 6.27. Nueva distribución para generar sentimiento automáticamente . . . . 91 6.28. Extracto de la clasificación que usamos para la incorporación de datos reales. ................................... 93 7.1. Plantilla para pruebas de sistema . . . . . . . . . . . . . . . . . . . . 96 C.1. iframe con el código para mostrar TherapEase . . . . . . . . . . . . . 137 C.2. script para mostrar Nemo . . . . . . . . . . . . . . . . . . . . . . . . 138
Índice de tablas 3.1. TablaGDS-MEC.............................. 10 xix
Cap´ ıtulo 1 Introducción En este capítulo veremos los motivos que nos han llevado a realizar este TFG, los objetivos que tenemos y como vamos a afrontarlo. 1.1. Motivación En la actualidad, la disminución de la memoria es un desafío que afecta a una amplia proporción de la población. Esta disminución, aunque sea leve, resulta en una reducción de la calidad de vida del afectado, así como de sus familiares, cuidadores y personas cercanas. Según la OMS (Organización Mundial de la Salud), actualmente 55 millones de personas en todo el mundo padecen demencia, siendo el Alzheimer la forma más común. Además, la demencia es la séptima causa de defunción y una de las principales causas de discapacidad y dependencia en todo el mundo. Las técnicas no farmacológicas han demostrado ser muy efectivas para mantener activa la memoria, conservar las habilidades cognitivas y preservar los recuerdos, lo que a su vez retrasa el deterioro de la memoria. Estos métodos, que se centran en ayudar al individuo afectado a revisar su propia historia personal, implican que la persona con demencia haga un registro personal de las experiencias, personas y lugares más importantes de su vida. El objetivo es que el paciente converse sobre diversos temas, eventos pasados, sucesos históricos, etc. Se ha comprobado que estos ejercicios ayudan a preservar habilidades como el razonamiento, la autoestima, la confianza y las habilidades sociales. Hoy en día, uno de los métodos más usados y que mejores resultados están obteniendo son las terapias de reminiscencia consistente en rememorar eventos de la historia personal del sujeto mediante la estimulación de los recuerdos con significado personal y que susciten sentimientos positivos, a estos recuerdos se les llama historia de vida. Los terapeutas que utilizan estas terapias para tratar a los pacientes tienen que crear manualmente las historias de vida de los pacientes, teniendo que revisar todos los documentos en papel, lo que les lleva bastante tiempo con cada paciente. Es importante mencionar que existen aplicaciones que están facilitando este proceso. Por ejemplo, algunas aplicaciones digitales permiten a los terapeutas recopilar y organizar la información relevante de manera más eficiente. Este es el caso de 1
2Capítulo 1. Introducción “Recuérdame 1.0” y “Recuérdame 2.0”, desarrollados en cursos pasados. En la primera versión de la aplicación, aunque con funciones limitadas, se sentaron las bases para la segunda versión, mucho más completa y que cuenta con varias funciones, no solo para organizar las historias de vida, sino también para facilitar la labor del terapeuta. Por otro lado, las nuevas tecnologías en auge, como la IA, abren nuevas posibilidades para mejorar esta aplicación, facilitando a los especialistas su uso con nuevas funciones y ayudas. 1.2. Objetivos El objetivo principal de nuestro TFG se centra en la mejora y ampliación de la aplicación Recuérdame 2.0, una herramienta destinada a agilizar el proceso de gestión y preparación de terapias de reminiscencia para terapeutas, además de permitir su uso a los cuidadores pudiendo realizar una revisión de los recuerdos que componen la historia de vida de los pacientes. Como objetivos específicos proponemos: Realizar en Recuérdame 2.0 todas las modificaciones que surgieron durante la evaluación que se realizó con los usuarios finales. Mejora de la aplicación para un mejor uso del terapeuta y cuidador en: •Mejora a la hora de generar Historia de Vida, en la versión anterior de la herramienta, se mostraban una lista donde estaban todos los recuerdos del paciente, para esta versión sustituiremos dicha lista por una narración de los mismos. •Mejora a la hora de generar resúmenes, la aplicación permite la posibilidad de generar unos resúmenes automáticos de los recuerdos del paciente para facilitar el labor de los terapeutas y si este quiere podrá hacer distintas modificaciones. Se conseguirá que la generación del resumen aprenda de las modificaciones hechas por los terapeutas para futuros resúmenes automáticos. •Mejora en los vídeos generados automáticamente, en los vídeos el texto que aparece en los subtítulos se descuadra a medida que avanzan las imágenes, para ello sincronizaremos las imágenes con los subtítulos. Añadir nuevas funcionalidades para ayudar al usuario final: •Se añadirá un bot con el cual se podrá hacer terapia mediante preguntas automáticas a partir de las imágenes de la historia de vida del paciente, si el usuario no recuerda algo, el bot proporcionará una serie de pistas. •Se añadirá mensajería entre terapeuta y cuidador. •Se añadirá una nueva funcionalidad en la aplicación para que pueda identificar automáticamente la polaridad (Positiva o Negativa) de los recuerdos en las Historias de Vida del usuario. Para lograr este objetivo se explorará la posibilidad de realizar un etiquetado a nivel léxico, es decir,
1.2. Objetivos 3 que la herramienta pueda analizar las palabras que aparecen en el recuerdo y así determinar la polaridad del evento, considerando las emociones que se reflejen en el recuerdo el usuario. Se seguirá un Diseño Centrado en el Usuario (DCU) para garantizar que las expectativas de los usuarios finales quedan completamente cubiertas. Este proyecto tiene como propósito, aplicar de manera integral los conocimientos adquiridos a lo largo de la carrera. La elección de un enfoque colaborativo y el uso de nuevas tecnologías nunca vistas en el grado se consideraron como aspectos beneficiosos, ya que plantean desafíos académicos en el ámbito de la arquitectura web, un campo de interés compartido por todos los miembros del Trabajo de Fin de Grado de cara al futuro laboral.
Chapter 2 Introduction In the following sections, we will delve into the reasons that have compelled us to undertake this Bachelor’s Thesis, outline our objectives, and elucidate our approach to addressing them. 2.1. Motivation Currently, memory decline is a challenge that affects a large proportion of the population. This decline, even if mild, results in a reduction in the quality of life for the affected individual, as well as their family members, caregivers, and close associates. According to the WHO (World Health Organization), 55 million people worldwide currently suffer from dementia, with Alzheimer’s being the most common form. Additionally, dementia is the seventh leading cause of death and one of the main causes of disability and dependency globally. Non-pharmacological techniques have proven to be very effective in keeping memory active, preserving cognitive abilities, and maintaining memories, which in turn delays memory deterioration. These methods focus on helping the affected individual review their own personal history, involving the person with dementia in creating a personal record of the most important experiences, people, and places in their life. The goal is for the patient to discuss various topics, past events, historical happenings, etc. It has been shown that these exercises help preserve skills such as reasoning, self-esteem, confidence, and social abilities. Nowadays, one of the most used methods that is yielding the best results is reminiscence therapy, which involves recalling events from the individual’s personal history by stimulating memories with personal significance that elicit positive feelings. These memories are referred to as a life story. Therapists using these therapies to treat patients have to manually create the life stories of the patients, which requires reviewing all the paper documents, taking a considerable amount of time for each patient. It is important to mention that there are applications that are facilitating this process. For example, some digital applications allow therapists to gather and organize relevant information more efficiently. This is the case with "Recuérdame 1.0" 5
12 Capítulo 3. Estado de la Cuestión saber datos objetivos del paciente a través de una entrevista oral que se le realiza, la estructura es más abierta, permitiendo la creatividad con la persona, decidiendo el número y los títulos de los capítulos durante dichas entrevistas. En ambos contextos, la Historia de Vida no es simplemente un ejercicio de recolección de datos, sino una herramienta terapéutica muy valiosa. En psicoterapia, sirve como una sustitución menos estructurada de la anamnesis8, permitiendo una comprensión más profunda y subjetiva del paciente. En investigación, adopta una perspectiva fenomenológica, buscando comprender la vida de las personas desde sus propios marcos de referencia, siendo un diseño inductivo, abierto y emergente. Las Historias de Vida no solo se presentan como un vehículo para explorar la vida de un individuo, sino que también proporciona una perspectiva para comprender las realidades sociales, culturales y contextuales de un momento histórico particular. Su adaptabilidad y enfoque cooperativo la transforman en una herramienta invaluable tanto para la terapia personalizada como para la investigación cualitativa en los campos de las ciencias sociales y de la salud. Dicho proceso suele dar mayor resultado positivo con el acompañamiento de un familiar o ser querido del paciente, ya que motiva al usuario, facilita la colaboración y comunicación en durante el desarrollo de las terapias. 3.4. Aplicaciones relacionadas Esta sección está dedicada a las versiones anteriores de Recuérdame 3.0 que fueron desarrolladas como parte de otros TFG, incluyendo su finalidad, funcionalidades, tecnologías aplicadas, mejoras implementadas y proceso de desarrollo. 3.4.1. Recuérdame 1.0 Recuérdame 1.0 (Barquilla Blanco et al. (2022)), fue un TFG desarrollado durante el curso 2021-2022 cuyo objetivo era proporcionar una herramienta dirigida tanto para los usuarios finales (pacientes), que podrían repasar los recuerdos de sus vivencias en forma de historias de vida y evitar o retrasar en la medida de lo posible dichos recuerdos, como para los terapeutas que podrían preparar sus terapias basadas en reminiscencia o almacenar y acceder los datos de sus pacientes. Con el objetivo de obtener el mejor producto posible, los desarrolladores de Recuérdame 1.0 se reunieron con terapeutas, obteniendo así la información necesaria sobre que necesidades debería cubrir la herramienta. El resultado final de su trabajo fue una aplicación web basada en el modelo vista controlador (MVC9), con una interfaz de usuario creada con HTML/CSS y un backend programado con el lenguaje PHP. Era responsive10 gracias al uso de las 8Conjunto de datos que se recogen en la historia clínica de un paciente con un objetivo diagnóstico. 9Patrón de arquitectura de software comúnmente empleado, se centra en la separación de la lógica de negocio y la interfaz de usuario 10Capacidad que pose una aplicación o sitio web de adaptarse y funcionar correctamente en diferentes sistemas y tamaños de pantalla
3.4. Aplicaciones relacionadas 13 librerías de Bootstrap11 y compatible con diversos sistemas operativos. Las funcionalidades desarrolladas en esta primera versión de Recuérdame fueron las siguientes: Listado de registros (pacientes, sesiones, informes de seguimiento,...) con la posibilidad de añadir nuevos (figura 3.1), dar de baja a los ya existentes o modificarlos. Figura 3.1: Formulario de registro de paciente Generación de libros de historias de vida (figura 3.2) y posibilidad de generar archivos PDF a partir de ellos. Figura 3.2: Historia de vida generada Gestión de un calendario (figura 3.3) con las actividades de los pacientes. 11https://getbootstrap.com/
14 Capítulo 3. Estado de la Cuestión Figura 3.3: Calendario de actividades Añadir recuerdos existentes a las sesiones y actualizar recuerdos añadiendo nuevas personas relacionadas previamente (figura 3.4) creadas mediante el botón “Añadir existente”. Figura 3.4: Vista de relacionar personas con recuerdos Creación de informes sobre sesiones realizadas. Registro de nuevos terapeutas o cuidadores (figura 3.5). Una vez terminada la implementación, se realizó una evaluación con los usuarios finales. En general, la aplicación tuvo una recepción positiva y se propusieron los siguientes cambios y nuevas funcionalidades: Implementar un sistema de mensajería entre terapeuta y cuidador.
3.4. Aplicaciones relacionadas 15 Figura 3.5: Formulario de registro de terapeuta Implementar filtros para facilitar la búsqueda en los apartados multimedia de la aplicación. Mejorar la visualización de las imágenes en los PDFs. Añadir a los informes de sesiones la duración y la hora de inicio de la sesión. Añadir el número de sesiones realizadas en los informes de seguimiento. Mejorar los filtros con posibilidad de escoger varias opciones distintas para cada filtro. Añadir los campos “localidad/residencia”, “nivel de contacto con el paciente” y “observaciones” en Personas Relacionadas. Permitir al usuario escribir el tipo de relación cuando escoja la opción “otros”. Implementar un calendario que ayude al terapeuta a organizar sus sesiones y actividades. Añadir la opción de adjuntar imágenes a las actividades. Añadir nuevos campos en el paciente con información suya, además de poder añadir una foto del paciente.
16 Capítulo 3. Estado de la Cuestión Incluir la posibilidad de asignar más de un cuidador al mismo paciente, también poder visualizar todos los cuidadores encargados de un paciente. Añadir al cuidador campos con su lugar de residencia y el grado de parentesco. Incluir la capacidad de marcar las actividades como realizadas en la vista del cuidador. Eliminar en los recuerdos información de poco interés para el cuidador. Mostrar un carrusel de recuerdos como pantalla de inicio en la vista del cuidador. Implementar una narración automática de los recuerdos. Implementar la opción de mostrar pistas sobre un recuerdo mediante un botón para ayudar al paciente a rememorarlo. Implementar la capacidad de mostrar las historias de vida en forma de videos junto a una narración de los recuerdos. Implementar la opción de actualizar la información de los recuerdos utilizados durante una sesión a través de su informe de sesión. Implementar un Chat Bot con la capacidad de asistir al cuidador en lugar del terapeuta. 3.4.2. Recuérdame 2.0 Recuérdame 2.0 (Díez Sobrino et al. (2023)) fue creada con el objetivo de mejorar el proceso de creación de historias de vida y gestión de terapias de reminiscencia ya implementado previamente en su versión anterior, Recuérdame 1.0. También fue desarrollada con la intención de mejorar la seguridad de la aplicación, realizar una refactorización del código, dotándolo de una mayor limpieza, aplicar un framework para PHP e incorporar nuevas funcionalidades teniendo en cuenta el trabajo que quedó pendiente tras la finalización de Recuérdame 1.0. Inicialmente se decidieron las herramientas que se utilizarían durante el desarrollo de la segunda versión de Recuérdame. Entre ellas se escogió Laravel como framework PHP, las librerías utilizadas por el equipo de Recuérdame 1.0 fueron mantenidas y se añadieron algunas nuevas para mejorar la interfaz de la aplicación. Se realizaron grandes cambios en la interfaz, haciéndola más intuitiva e interactiva, responsiva, cambiando la paleta de colores e incluso diseñando un nuevo logotipo más acorde con la nueva versión de la aplicación. También se aplicaron patrones de diseño de interfaz para mejorar el resultado final. Las principales mejoras que se realizaron en esta nueva versión fueron las siguientes: Se mejoró la subida de ficheros, ampliando el área dropzone (figura 3.6) donde se arrastran y sueltan los archivos que el usuario desea subir, facilitándole el proceso. Además se configuró el dropzone para que solo permitiera subir un archivo en el caso de la foto de perfil de pacientes, personas relacionadas y cuidadores.
3.4. Aplicaciones relacionadas 17 Figura 3.6: Nueva dropzone ampliada El calendario fue mejorado (figura 3.7), añadiendo la posibilidad para los terapeutas de gestionar (crear, ver, modificar o borrar) las sesiones, cuando en Recuérdame 1.0 esto solo era posible para las actividades. También se añadieron filtros al calendario para mostrar solo las actividades o los recuerdos si es necesario, facilitando la navegación. Figura 3.7: Calendario con sesiones y actividades Se implementó el control de correos electrónicos ya registrados, cosa que no sucedía en Recuérdame 1.0, de forma que en el caso de que se intente crear un usuario con un e-mail ya registrado, aparecerá una ventana emergente informando de que el usuario ya está registrado. Se modificó la funcionalidad de asignar archivos a un recuerdo (figura 3.8), incluyendo la posibilidad de agregar una descripción breve a cada archivo que ayude a identificarlos. Se añadió la posibilidad de adjuntar un archivo con información relevante para
18 Capítulo 3. Estado de la Cuestión Figura 3.8: Modal de asignación de archivos a recuerdo con descripción los terapeutas a cada escala presente en los informes de seguimiento (figura 3.9), de forma que se puedan subir estos archivos cuando se crea o modifica un informe de seguimiento. Figura 3.9: Escalas con la posibilidad de adjuntar archivos Se aplicó el uso de ventanas emergentes en forma de modales anidados (figura 3.10) para evitar los reenvíos a páginas con formularios que se realizaban en Recuérdame 1.0, siendo esto más cómodo para el usuario que mantiene el control sobre la aplicación en todo momento. Esta lógica se aplicó en las opciones de añadir persona relacionada a un recuerdo, en la asignación de recuerdos a sesiones, en la creación de nuevas sesiones desde el calendario y en la modificación de recuerdos mientras se crea un informe de sesión. Figura 3.10: Ejemplo de modal anidado
3.4. Aplicaciones relacionadas 19 Tras finalizar los cambios sobre la primera versión, se incorporaron las siguientes funcionalidades: Se implementó la creación de diagnósticos iniciales para los pacientes (figura 3.11), permitiendo al terapeuta especificar la enfermedad que afecta a un paciente, sus antecedentes y observaciones de relevancia, además de facilitar un seguimiento de la evolución de la enfermedad del paciente de forma visual mediante una gráfica (figura 3.12) en la que se reflejan las diferentes escalas que permiten determinar su estado actual, siendo estas las escalas GDS, Minimental y CDR. Figura 3.11: Vista de creación de diagnóstico inicial Figura 3.12: Gráfica de seguimiento del paciente Para otorgar a los terapeutas la posibilidad de repetir una sesión ya realizada sin tener que crear una nueva sesión desde cero, se implementó la capacidad de vincular varios informes distintos a la misma sesión, modificando la base de datos para desacoplar sesión e informe y relacionándolos entre ellos.
20 Capítulo 3. Estado de la Cuestión Se crearon buscadores para cada uno de los listados de la aplicación (figura 3.13), con el objetivo de facilitar la búsqueda de datos en concreto, especialmente cuando hay presente un gran volumen de estos. Para ello, además de implementar las barras de búsqueda en cada listado, se hizo uso de las funcionalidades presentes en la librería DataTables. Figura 3.13: Ejemplo de búsqueda en listado de sesiones Se introdujo la generación automática de resúmenes de historias de vida. Para ello se hizo uso de GPT, capaz de generar textos en lenguaje natural a partir de las indicaciones introducidas por los usuarios, también en lenguaje natural. Para incorporar esta funcionalidad, se utilizó la API proporcionada por GPT. Otra de las funcionalidades incorporadas fue la generación de vídeos narrados a partir de los recuerdos de las historias de vida, lo que facilita su repaso eliminando la necesidad de leerlas. Para generar los vídeos se utilizó la API de Creatomate, capaz de generar vídeos a partir de imágenes. Por otro lado, para generar la narración se utilizó la API Voice RSS, la cual permite generar narraciones a partir de texto en múltiples idiomas y voces diferentes. Esta generación se realiza de forma asíncrona para permitir que el usuario se mueva por la aplicación mientras espera a que se complete la generación del vídeo. Una vez implementada la nueva versión de Recuérdame, esta fue evaluada por los usuarios finales. Las futuras mejoras que surgieron de esta evaluación fueron: El campo que muestra el número de sesiones desde el anterior informe a veces contiene información errónea y debe ser revisado. Añadir notificaciones flash como nuevo sistema de notificaciones para evitar que la actualización de la página provoque que se muestren notificaciones pasadas. Informar cuando la generación de un vídeo finalice. Modificar el vinculado de cuidadores a un paciente como alternativa a la muestra de todos los cuidadores. Incorporar un sistema de mensajería terapeuta-cuidador para facilitar su comunicación. Pistas generadas de forma automática para los pacientes para apoyarles en caso de que tengan problemas para rememorar un recuerdo
3.4. Aplicaciones relacionadas 21 Chat bot que pueda hacer de terapeuta y de soporte a los cuidadores sin la necesidad de acudir a un terapeuta real. Al finalizar el desarrollo, quedaron varias tareas que por motivos de tiempo no pudieron ser finalizadas, estas forman parte del trabajo que realizaremos en este TFG: Añadir ubicación, como herramienta para los usuarios que permitiría localizar en un mapa los lugares donde se desarrollan los recuerdos tratados durante las sesiones. Visualizar imágenes, una herramienta para visualizar las imágenes de forma sencilla e interactiva ampliándolas por encima del resto de los elementos visuales de la vista, ofreciendo la posibilidad examinarlas en detalle. Entrenar una IA para generar los resúmenes, para evitar la dependencia de ChatGPT, esto permitiría controlar los textos de salida, adecuándolos al contexto de una sesión de terapia de reminiscencia y eliminando el uso de una clave de API que tiene peticiones gratuitas limitadas. Validación de los resúmenes generados para los vídeos narrados, ya que esta se genera de manera automática de forma independiente puede resultar en un texto que no sea adecuado desde el punto de vista del terapeuta, para evitarlo es necesario que el resumen generado pueda ser visualizado y editado antes de convertirlo en audio. Corregir la sincronización del audio con el vídeo para evitar que la voz narradora esté desacompasada con las imágenes mostradas durante el vídeo, lo cual puede dificultar el entendimiento del contenido de la historia de vida. Compatibilidad, es necesario mejorar la compatibilidad con diferentes plataformas, sobre todo en el apartado visual, existen varios problemas con los distintos dispositivos con tamaños de pantalla diferentes y navegadores que pueden tener problemas para cargar las vistas de la aplicación. Legalidad, al manejar datos personales es necesario asegurarse de que se cumple la legislación europea en materia de protección de datos personales (RGPD), sobre todo si la aplicación pretende usarse en un contexto de trabajo con datos de personas reales, los cuales no pueden verse comprometidos.
28 Capítulo 4. Metodología de gestión del proyecto: Kanban ¿Cuál es tu talento oculto?. Si pudieras ser un personaje de ficción por un día ¿Cuál serías?. Qué es lo más loco que has hecho por diversión?. ¿Prefieres los juegos de equipo o individuales?. Las siguientes cinco preguntas se enfocaron en aspectos más personales: ¿Por qué estas más agradecido?. ¿Cuál es tu mayor lección de vida hasta ahora y como te ha cambiado?. si pudieras cenar con un famoso, ¿con quién sería y por qué?. ¿Cuál es tu mayor debilidad y cómo la estás trabajando?. ¿Cuál es tu mayor deseo para el futuro y qué estás haciendo para lograrlo?. Las siguientes 3 preguntas se centraron en los enfoques individuales hacia nuestro proyecto de fin de grado. Las preguntas fueron: ¿Qué tipo de roles o responsabilidades te gustaría asumir en el equipo?. ¿Cuál es tu estilo de trabajo preferido y cómo podemos adaptarnos para trabajar de manera más efectiva?. ¿Cómo prefieres recibir feedback y cómo podemos asegurarnos de que todos nos sintamos cómodos compartiéndolo?. Los objetivos de esta dinámica eran: Conocernos en mayor profundidad, porque aunque ya hemos trabajado juntos anteriormente, siempre hay más por descubrir entre nosotros. Crear un ambiente relajado que permitiera dar respuestas sinceras durante la retrospectiva. Conocer las preferencias de trabajo de cada integrante, para encontrar un punto intermedio donde todos nos sintamos cómodos y motivados. Somos conscientes que este proyecto reclamará más tiempo de lo que estamos preparados, pero no queremos que sea una experiencia estresante sino todo lo contrario, que sea una experiencia enriquecedora y donde podamos mejorar nuestros conocimientos en varios campos, como puede ser la redacción, la gestión del trabajo y desarrollo de código. Durante la dinámica, cada miembro se tomó el tiempo necesario para responder y escuchar a los demás. En cuanto a las preguntas y respuestas de cada miembro, Steven se encargo de anotar las respuestas, se puede consultar el resultado de la
4.3. Reuniones de Retrospectiva 29 dinámica en el apéndice A. Respecto a los resultados, la dinámica logró alcanzar sus objetivos. Conseguimos crear un ambiente relajado en el que profundizar en nuestros conocimientos y conocer la preferencia de trabajo de cada integrante. Pudimos concluir lo siguiente: Durante el desarrollo del proyecto mantendremos una comunicación constante. Estamos dispuestos a enfocarnos en memoria o código según las necesidades de cada semana. El feedback lo daremos de manera oral durante las reuniones semanales. Después de la dinámica de grupo, Steven decidió llevar a cabo la retrospectiva, utilizando la técnica del “velero”, que podemos observar en la figura 4.3. Esta técnica se centra en identificar aquello que ayuda o impide el progreso del equipo hacia su objetivo, de una manera similar a como un velero se mueve en función de lo que le impulsa y las fuerzas que lo detienen. Durante la retrospectiva, se representó al equipo como un velero en un escenario con varios elementos: el viento, que representa lo que impulsa al equipo hacia adelante y hacia el logro de nuestro objetivo, el ancla representa aquellos obstáculos que frenan el avance, los iceberg, identifican aquellos riesgos que vamos a encontrar durante el camino, el sol que refleja aquello que nos da seguridad y ,por último, la isla representa el destino final del proyecto: el logro de un trabajo de fin de grado de calidad y que mejore significativamente la aplicación Recuérdame 2.0. Durante la retrospectiva utilizamos turnos aleatorios para abordar y completar cada uno de los puntos del velero. El resultado final de la reunión se muestra en la figura 4.4. Figura 4.3: Representación de la técnica del velero Como nos encontrábamos motivados, empezamos con el apartado del iceberg, es decir, aquellos riesgos que vamos a encontrar durante el camino hacia nuestro objetivo. Identificamos los siguientes puntos en este : La carga de trabajo entre asignaturas, trabajo y proyecto, ya que otras responsabilidades pueden impactar en nuestro desempeño.
30 Capítulo 4. Metodología de gestión del proyecto: Kanban Figura 4.4: Resultado retrospectiva del velero realizada el 01/10/2023 El cansancio relacionado con la finalización del Trabajo de Fin de Grado (TFG) y cursar nuestro ultimo año de universidad, considerando el agotamiento mental y físico que esto puede causar. Posible bloqueo en tareas especificas que pueden ralentizar el avance del proyecto. La sobrecarga de trabajo cara a la siguiente reunión con las directoras, donde debemos ser realistas con las directoras y nosotros mismos a cerca de el trabajo máximo que podemos asignarnos. Problemas con aplicaciones externas, en particular, las dificultades experimentadas con Creatomate para la generación de vídeos.
4.3. Reuniones de Retrospectiva 31 A continuación, abordamos el apartado del ancla, donde discutimos sobre aquellos factores que nos frenan. Los puntos encontrados aquí fueron los siguientes: Entendimiento de la aplicación, ya que al ser un proyecto heredado de otros equipos, debemos familiarizarnos con la estructura de carpetas, los procesos de envío de formularios y las variables utilizadas, entre otros aspectos. Aprendizaje de nuevas tecnologías como Látex y PHP, lo que requiere tiempo para adquirir habilidades y puede provocar retraso en las tareas al necesitar entender la teoría antes de aplicarla prácticamente. La disparidad de horarios durante este año, ya que son escasas las horas en las que todos estamos libres, lo cual provoca la imposibilidad de realizar reuniones presenciales. Seguidamente exploramos el apartado del viento, donde discutimos lo que impulsa al equipo hacia el logro de nuestro objetivo. Los puntos identificados fueron: Nuestra experiencia previa trabajando juntos nos permite saber nuestros métodos de trabajo individuales. El entusiasmo inicial por empezar el proyecto nos brinda una alta energía, debemos aprovecharla y centrarnos en mantenerla. El apoyo de las directoras, Virginia y Susana, asegura la calidad del trabajo que realizaremos. La comunicación interna del equipo es clave para resolver posibles problemas durante el desarrollo del proyecto. Conocer a los autores de la versión anterior de “Recuérdame 2.0” nos da la posibilidad de acudir a ellos y consultarles sobre aspectos del proyecto que no comprendemos. Finalmente, discutimos el apartado del sol, es decir, aquellas cosas que nos brindan seguridad y bienestar. Los puntos que identificamos en este apartado fueron los siguientes: El buen ambiente de trabajo que existe debido a nuestra larga trayectoria juntos durante la carrera. La especialización de cada integrante en áreas específicas del proyecto, lo cual nos permite resolver cualquier tarea con el apoyo y colaboración de los demás. La proactividad en ayudarnos mutuamente, lo cual beneficia a la calidad del proyecto al garantizar un esfuerzo conjunto. La disponibilidad de tecnología de calidad en nuestros hogares, ofrecida para realizar pruebas del proyecto. Todos contamos con ordenadores de alto rendimiento para llevar a cabo todas las pruebas oportunas al proyecto sin necesidad de que alguna de estas falle..
32 Capítulo 4. Metodología de gestión del proyecto: Kanban Una vez realizada la reunión de retrospectiva. Se discutió entre los miembros del equipo cuales son las acciones de mejora propuestas. Estas fueron: Debido a los diferentes horarios del equipo, se realizaran reuniones extraordinarias en los momentos libres de los participantes y la cual será desarrollada de manera online a través del canal de Discord llamado “TFG-Recuérdame 3.0”. Para el aprendizaje de nuevas tecnologías se ha propuesto observar tutoriales básicos a cerca del tema a aprender. Si alguien un área de especialización, lo comunicará al equipo para enfocarse en ello. Toda ayuda que utilicemos para el aprendizaje y desarrollo de las tareas, deberá estar referenciada en la bibliografía del proyecto. Debemos tener en cuenta la carga de trabajo entre asignaturas, trabajo y proyecto, por lo tanto, podremos posponer las reuniones con las directoras o no entregar todas las tareas a tiempo si es necesario. En caso de que un integrante se encuentre bloqueado con una tarea, este lo comunicará a través de WhatsApp en el grupo de “TFG-Recuérdame 3.0” y la ayuda que recibirá será primero de un integrante, si los dos integrantes no pueden resolver la tarea, solicitarán ayuda a un integrante más y en caso de tampoco poder solucionarlo, se pondrán con la tarea todos los integrantes del grupo. De esta manera se evitará que todos los miembros estén trabajando con una misma tarea bloqueada y se podrá agilizar la solución al bloqueo ocasionado Para facilitar el entendimiento de la aplicación, en caso de que algún miembro no consiga comprender algún punto de la aplicación, si alguien del equipo lo sabe, este le enseñara como es el funcionamiento. Si existe el caso de que nadie lo sabe, este miembro se comprometerá a entenderlo por su cuenta y una vez lo haya comprendido, este va a compartir el nuevo conocimiento adquirido con el resto del equipo. Si llega a ocurrir que dicho miembro aún habiendo investigado no consigue comprender la aplicación, solicitará ayuda a los autores de la versión anterior de “Recuérdame 2.0”. 4.3.2. Retrospectiva del 29 de Octubre de 2023 La segunda reunión de retrospectiva fue organizada por Rubén, quien decidió realizar un análisis FODA como actividad de retrospectiva. El análisis FODA (Fortalezas, Oportunidades, Debilidades y Amenazas) tiene como objetivo evaluar el desempeño actual del equipo y concretar nuevas políticas que ayuden a mejorarlo. Para realizar un análisis FODA, se divide un tablero en cuatro cuadrantes y a cada uno se le asigna una de las iniciales de FODA, entonces el equipo propone aspectos del trabajo realizado por el equipo hasta entonces que puedan corresponder a una de las iniciales y se coloca en el cuadrante que corresponda. Al terminar las propuestas, el equipo analiza y discute en base a los resultados, mostrando cada uno de los miembros su punto de vista sobre el trabajo realizado y proponiendo cambios que puedan ayudar al equipo.
4.3. Reuniones de Retrospectiva 33 La reunión comenzó con la explicación de la actividad por parte de Rubén al resto de los miembros del equipo, acto seguido se presentó el tablero ya dividido y se propusieron diferentes ideas por parte de cada miembro del grupo, empezando con aspectos correspondientes a la parte de arriba del tablero (Fortalezas y Debilidades) y finalizando con los correspondientes a la parte de abajo (Oportunidades y Amenazas), el resultado final fue el que se puede ver en la figura 4.5 Figura 4.5: Resultado análisis FODA realizado el 29/10/2023 Entre nuestras Fortalezas destacaron el hecho de que siempre nos hemos ayudado entre nosotros cada vez que lo hemos necesitado y que las directoras del TFG se han mostrado atentas y disponibles para cualquier duda o problema que nos surgiese. En lo que se refiere a las Debilidades, fue especialmente relevante nuestra dificultad a la hora de redactar la memoria, la cual quedo con muchos fallos, la carencia de una política SQA definida y plasmada en texto, lo cual fue un problema para la calidad y la falta de una revisión adecuada de las tareas, especialmente por parte de alguien que no se haya encargado de la propia tarea, otra debilidad importante fue la generalización de las tareas, lo que provocaba que algunas tareas fueran excesivamente complejas, mientras que otras eran demasiado sencillas como para constituir
34 Capítulo 4. Metodología de gestión del proyecto: Kanban una tarea. En cuanto a las Oportunidades, nos fijamos en que teníamos un servidor privado, proporcionado por Samuel, que nos permitiría alojar la aplicación para su acceso online en el caso de que no pudiéramos disponer de un servidor proporcionado por la universidad, también tuvimos en cuenta las nuevas tecnologías basadas en la inteligencia artificial que se han desarrollado recientemente y podrían ser de gran ayuda en un futuro. Entre las amenazas, destacamos el trabajo externo al TFG, el cual podría reducir el tiempo dedicado al TFG o dificultar el establecimiento de fechas para reuniones y que podría darse el caso de que las API utilizadas por la aplicación dejasen de estar disponibles sin manera de recuperarlas. Al finalizar. Los miembros del equipo tuvimos un debate sobre propuestas de mejora. Se tomaron las siguientes decisiones: Debemos definir nuestra política de SQA para tener claro que estándares debe cumplir una tarea para ser marcada como completada. Para mejorar y organizar la revisión de las tareas aprovecharemos las issues de Github, las cuales mandan siempre un aviso al creador de las mismas cada vez que alguien realiza un comentario en ellas. Para utilizar estos avisos a nuestro favor, el creador de una tarea no podrá realizarla, pero será el encargado de revisarla cuando reciba el aviso por parte de Github de que la tarea ha sido realizada por otro miembro del equipo. Para evitar desequilibrios en la carga de trabajo, se intentará, siempre que sea posible, que cada miembro del equipo cree el mismo número de issues. Una tarea solo podrá ser marcada como completada por su creador. Para aprovechar mejor las reuniones, se establecerán sus objetivos un día antes de realizarlas, también se especificará su duración o se modificará el día/hora de la misma en caso de ser necesario. Para evitar la generalización de tareas, dividiremos aquellas tareas que resulten demasiado largas o complejas en varias tareas más sencillas. Los miembros del equipo aprenderemos L A TEXsobre la marcha y compartiremos los conocimientos que adquiramos con el resto del equipo para mejorar nuestro desempeño, esto también aplica para el resto de tecnologías que estaremos utilizando. Para evitar problemas derivados del trabajo externo al TFG, los miembros del equipo comunicarán al resto del equipo en el caso de que por razones externas no estén disponibles para asistir a alguna reunión, o su trabajo en el TFG pueda verse afectado. En caso de no poder disponer de un servidor proporcionado por la Universidad Complutense, aprovecharemos el servidor privado del que disponemos. Tras la actividad de retrospectiva, Rubén propuso una dinámica de grupo que nos ayudase a mejorar nuestra capacidad para redactar la memoria. La actividad
4.3. Reuniones de Retrospectiva 35 propuesta fue la dinámica del Cuento Colectivo, esta tiene como objetivo mejorar la comunicación escrita entre los miembros del equipo, la comprensión lectora y la redacción e imaginación a la hora de escribir textos. Esta actividad consiste en escribir un cuento con la participación de todo los miembros del equipo, cada uno de los cuales debe escribir en orden un fragmento del mismo, tratando de mantener siempre la coherencia y un hilo narrativo. Se decidió que cada miembro escribiría una oración corta en menos de treinta segundos, dando paso al siguiente miembro el cual leería todo lo escrito y añadiría su propia oración. Continuaríamos el cuento por turnos hasta que se decidiese que la historia estaba finalizada. Tras concluir que la historia estaba finalizada, Rubén la leyó en alto para todos los miembros del equipo siendo el resultado final el siguiente: Corría el año 2076, Pepe caminaba con prisa por las calles de un Madrid futurista. Mientras pasaba por las calles llenas de gente y robots tropezó con Emma, una alienígena del planeta Tergadeen b. Empezaron una conversación, que sin saber cómo, terminó en una invitación de Emma a Pepe hacia su casa. Una vez en casa, Pepe no dudó y le pidió el LinkedIn a Emma para ampliar la red intergaláctica. Gracias a su astucia y a la ayuda de Emma, Pepe obtuvo un nuevo trabajo como transportista espacial. Tomó rumbo hacía el planeta de Emma junto a ella para realizar la entrega de un adaptador multiverse de frecuencia. Durante el trayecto, Pepe se percató que su furgoneta intergaláctica se quedaba sin gasolina eléctrica galáctica. Debido a la angustia que eso le provocaba decidió bailar breakdance, asustando fuertemente a Emma. Ante tal acontecimiento, Emma solamente pudo hacer una cosa, rápidamente tomó su Iphone 71 Pro MAX Ultra Definitive Fuji Apple Edition X Extra y llamó a la policía galáctica. La policía transgaláctica acudió rápidamente y entró en la nave de Emma con las armas en las manos. Cuando la policía entró, se pudo percatar que Pepe era uno de los criminales más buscados a nivel intergaláctico. Le detuvieron acusándole de fuga espacial y sacar los pasos prohibidos sin licencia. Al final Pepe terminó sin dinero, sin trabajo y sin Emma, la moraleja de esta historia es: No confíes en Tergadeenbenenses porque acabas en la cárcel. Una vez finalizado el cuento, nos dispusimos a analizarlo y evaluarlo, las conclusiones extraídas fueron las siguientes: Lo positivo: la historia fue original y entretenida a la vez que contó con unos cuantos elementos sorpresa como el hecho de que Pepe era un criminal buscado, todo esto mientras se mantenía una narración fluida y fácil de seguir por el lector. Lo negativo: se dieron pocos detalles sobre el mundo en el que se desarrollaba la historia, la trama a veces saltaba de manera abrupta de un evento a otro, faltó algo de desarrollo de los personajes (su pasado, sus objetivos, ...) y el final fue precipitado y dejó preguntas sin responder (¿que le ocurrió a Emma?).
36 Capítulo 4. Metodología de gestión del proyecto: Kanban 4.3.3. Retrospectiva del 3 de Diciembre de 2023 La tercera reunión de retrospectiva fue organizada por Eduardo y se utilizó la técnica de la Estrella de mar3. Dicha técnica consiste en usar un diagrama de líneas con forma de estrella para poder separar en 5 áreas los temas a tratar en el equipo. Las áreas son: Seguir haciendo: En esta sección se especifican las acciones que están funcionando bien y que el equipo debería seguir realizando para mantener o mejorar la eficiencia del trabajo. Hacer más: Esta sección se centra en intensificar ciertas acciones o actividades que están siendo beneficiosas para el equipo y que podrían contribuir aún mas al trabajo. Empezar a hacer: En esta sección se identifican las acciones positivas que el equipo debería implementar o adoptar en un futuro para mejorar el rendimiento. Hacer menos: Esta sección se centra en identificar que acciones no están resultando como se esperaba y que podrían tener impacto negativo en el equipo, es preferible evitarlas. Dejar de hacer: En esta sección se identifican las acciones que no son beneficiosas o no son útiles para el equipo y deben ser modificadas o eliminadas. Los miembros del equipo son los encargados de rellenar la estrella por turnos que designó el organizador previamente. Durante cada turno, los miembros colocaron una idea sobre la parte de la estrella que consideraban más adecuada, para realizar más tarde un debate entre todo el equipo sobre la idea propuesta, de esta manera se evaluaba si el tema debía quedarse en esa sección de la estrella, buscar una solución o la manera de mantenerla en el tiempo. Este procedimiento se siguió hasta que todos los miembros del equipo no tuvieran más temas que tratar. El resultado de esta retrospectiva se puede ver en la imagen 4.6. En el apartado de “Comenzar a hacer”, destaca el hecho de mejorar la revisión de la memoria, el método que se tenía no estaba dando buenos resultados y el organizador de la retrospectiva propuso afrontar las nuevas revisiones una vez acabada la dinámica posterior a la reunión, ya que podía servir como una nueva forma de hacer revisiones de memoria. Entre otros temas, se propuso trabajar directamente en el servidor de la maquina virtual proporcionada por la UCM, de esta manera todos los cambios que se hagan en la base de datos quedarán guardados y el equipo podrá verlos al instante. Por último, acordamos mencionar las dudas que nos surgieran a Virginia y Susana, ya que hasta el momento se esperaba a la reunión con ellas para mencionarlas y algunas eran bloqueadoras de tareas, se acordó que si aparecen dudas importantes tendremos que escribir correos para no paralizar las tareas de código. 3https://www.elartedepresentar.com/2015/06/la-retrospectiva-estrella-de-mar/
4.3. Reuniones de Retrospectiva 37 Figura 4.6: Resultado de la reunión de retrospectiva con el método “Estrella de Mar” realizada el 03/12/2023 En el apartado de “Más de”, nos pusimos de acuerdo en desarrollar más la aplicación con las tareas de código debido a que habíamos hecho poco en comparación al nivel que tenemos de programación web, cabe destacar que acordamos seguir al pie de la letra las políticas explícitas mientras se realizan las tareas, ya que dichas políticas fueron creadas en el transcurso de la pasada reunión y esta. En el apartado de “Seguir haciendo”, se remarca el buen trabajo y los buenos resultados que dan las dinámicas grupales, generando buen ambiente y positivismo en el grupo, lo que cual fomenta que pidamos ayuda no solo para tareas del proyecto, si no para apoyarnos en otros aspectos de la carrera, que influyen indirectamente al trabajo de desarrollo en Recuérdame 3.0. En el apartado de “Menos de”, se habló sobre el hecho del retraso de tareas tanto en código como en memoria por diversos motivos, ya sea por aclaración de dudas, bloqueo en resolución de problemas de código etc. Para enfrentar este obstáculo se dejó claro que sería difícil que se volviera a repetir ya que con todas las reglas y normas que hemos acordado, dejar de lado tareas no iba a ser una opción. En el apartado de “Dejar de hacer”, no se volverán a dejar dudas importantes, del cual depende la realización de las tareas, para mencionarlas con Virginia y Susana en la próxima reunión, mejor se escribirán por correo como ya se ha mencionado en el apartado de “Comenzar a hacer”. Como las políticas explícitas se redactaron durante el trascurso de la pasada reunión y esta, algunos miembros del equipo no
44 Capítulo 4. Metodología de gestión del proyecto: Kanban Reconocimos la necesidad de una comunicación más fluida entre nosotros para mantenernos al tanto de los avances en las tareas asignadas. Finalmente, discutimos lo que echamos de menos durante el último sprint. Rubén y Samuel señalaron que extrañaron la disponibilidad de sus compañeros, ya que Steven y Eduardo estaban ocupados con exámenes y no pudieron contribuir plenamente en las tareas. Una vez completadas las cuatro secciones de la retrospectiva, debatimos entre los miembros del equipo las acciones de mejora propuestas, que incluyeron: Para garantizar una revisión exhaustiva de las tareas, el responsable de la misma deberá seguir con detenimiento el plan SQA en un plazo de 3 días. La revisión debe contemplar todos los escenarios posibles donde el nuevo desarrollo podría tener un impacto. De igual manera, antes de comenzar la revisión, se verificará que la tarea no haya sido realizada con anterioridad o que ya no sea necesaria. Para optimizar el seguimiento del progreso individual y del equipo, se implementará una comunicación fluida a través de nuestros canales habituales con una frecuencia de dos días. Cada miembro del equipo compartirá sus avances hasta el momento y sus objetivos para la próxima reunión, que se llevará a cabo cada domingo. Esta comunicación constante permitirá identificar y abordar de manera oportuna cualquier obstáculo que pueda afectar el desarrollo del proyecto. Para aprovechar al máximo la disponibilidad actual del equipo, se optimizará la planificación del sprint mediante la definición precisa de las tareas a realizar. Cada tarea tendrá un responsable asignado y un plazo de finalización establecido en función de su dificultad. 4.3.6. Retrospectiva del 25 de Febrero de 2024 La sexta reunión de retrospectiva fue organizada por Rubén y comenzó con una dinámica llamada la línea de tiempo. Esta dinámica consiste en la creación de una linea temporal en la que los miembros del equipo colocan los distintos eventos (aciertos, errores o cambios) que se han dado desde la última reunión en orden cronológico. Una vez finalizada la línea del tiempo, el equipo discute sobre que ha podido provocar los errores, como hemos aprovechado nuestros aciertos y afrontado los cambios y que medidas deberíamos tomar de cara al futuro a partir del resultado del debate. El resultado de esta dinámica se muestra en la figura 4.11. Inicialmente nos repartimos las diferentes tecnología que decidimos implementar en la aplicación. Una vez repartidas nos dispusimos a abordar el primero de los eventos, en este caso fue el problema del almacenamiento de los contenidos multimedia, el cual se realizaba directamente en el servidor, provocando esto la imposibilidad de mostrar las imágenes en la aplicación al haber migrado la aplicación a un nuevo servidor. Para solucionar este problema, decidimos realizar el primer cambio, este consistió en utilizar Azure BLOB storage para almacenar el contenido multimedia en un almacén de datos
4.3. Reuniones de Retrospectiva 45 Figura 4.11: Resultado de la actividad de la línea de tiempo, realizada el 25/02/2024 externo e independiente del servidor. Sin embargo, nos encontramos con nuestro segundo problema al iniciar la transición a Azure BLOB Storage, este problema surgió por la dificultad de implementar el servicio de Azure mediante peticiones directas
46 Capítulo 4. Metodología de gestión del proyecto: Kanban a la API de Azure, esto supuso un retraso en varias de nuestras tareas, sobre todo aquellas relacionadas con el contenido multimedia. Ante nuestras dificultades con la API de Azure, decidimos dejar de lado temporalmente su implementación y centrarnos en investigar más sobre maneras alternativas de implementarla, este primer acierto nos ayudó a despejar la mente y nos condujo a nuestro segundo acierto. Durante nuestra investigación, descubrimos la SDK de Azure para PHP, la cual contaba con librerías que facilitaron en gran medida el acceso al servicio de Azure BLOB Storage, gracias a ella, conseguimos realizar la primera petición con éxito a Azure. Tras el éxito con Azure, nos encontramos con nuestro último problema, la cuenta que utilizábamos para acceder a la API de ChatGPT había agotado todas sus peticiones gratuitas. Para solucionarlo, realizamos nuestro cambio final, el cual fue utilizar una nueva cuenta para obtener más peticiones gratuitas. La conclusión a la que llegamos fue que tuvimos muchas dificultades para adaptarnos a los problemas y cambios inesperados que se dieron durante el desarrollo, especialmente, el problema con la implementación de Azure BLOB Storage que fue debido a no investigar lo suficientemente a fondo sobre ella, lo cual dio como resultado varios retrasos que nos impidieron completar todas las tareas que nos habíamos propuesto en la anterior reunión. Por el otro lado, pudimos realizar las investigaciones sobre las diferentes herramientas que utilizaríamos para implementar las nueva funcionalidades de Recuérdame 3.0, esto nos motivó a la hora de abordar las dificultades a las que nos enfrentamos. Tras este análisis pensamos en las siguientes acciones de mejora: debíamos tomarnos más en serio la investigación sobre las tecnologías que deseemos implementar a partir de ahora, también, en caso de encontrarnos con problemas inesperados y que resulten ser excesivamente complejos, debemos comunicarlo al resto del equipo para plantear una solución entre todos, pero esto no debe suponer olvidarnos de otras partes del proyecto que sí podemos completar sin dificultades, evitando así en la medida de lo posible más retrasos. Tras finalizar la actividad de retrospectiva, Rubén propuso una dinámica grupal enfocada a mejorar nuestra capacidad de afrontar los cambios inesperados durante nuestro trabajo. Esta dinámica fue el Desafío de Supervivencia. Para realizar esta dinámica, Rubén presentó una tarjeta con un problema al resto del equipo, los cuales debían decidir entre todos como lo solucionarían, sin embargo tras llegar a una conclusión, Rubén mostraría una tarjeta con un cambio repentino que provoca que la solución decidida resulte inútil. La dinámica procedió de la siguiente manera: Tarjeta 1: Están organizando un evento al aire libre en el claro de un bosque y de repente comienza a llover con mucha intensidad. Solución: Ir bajo el árbol más cercano y usar la manta del picnic para cubrirnos. Tarjeta 2: La solución inicial del grupo fue refugiarse bajo un árbol grande. Sin embargo, el viento está soplando tan fuerte que las ramas del árbol están cediendo y podría representar un peligro para el grupo.
4.3. Reuniones de Retrospectiva 47 Solución: Correr hacia una cabaña cercana. Tarjeta 3: El grupo decide buscar refugio en una pequeña cabaña cercana. Pero al llegar a la caseta, se dan cuenta de que está cerrada y no tienen la llave. Solución: Steven trata de entrar por la chimenea para abrir desde dentro. Tarjeta 4: Steven se atasca en la chimenea. Solución: Samuel sube a rescatar a Steven, mientras Eduardo intenta abrir la puerta por la fuerza. Tarjeta 5: Eduardo logra reventar la puerta a patadas. Samuel intenta sacar a Steven sin éxito. Solución: Samuel y Eduardo entran en la casa y tiran de Steven desde abajo. Tarjeta 6: Steven logra entrar por la chimenea, pero sufre varias heridas. Solución: Usar el botiquín que tiene la cabaña para tratar las heridas de Steven, Eduardo es socorrista y sabe usarlo lavar las heridas con agua y jabón. Final: Steven se cura y al día siguiente el guardabosques los ayuda a salir del bosque para ir a un hospital. Durante la dinámica, el equipo se vio obligado a realizar varios cambios debido a situaciones inesperadas entrenando así su capacidad de adaptación, Rubén también se vio beneficiado por esto ya que tuvo que replantear el problema varias veces en base a las soluciones al las que llegaban Eduardo, Samuel y Steven. En general esta dinámica nos ayudó a prepararnos para afrontar los problemas que nos surgirán durante los próximos sprints. 4.3.7. Retrospectiva del 17 de Marzo de 2024 La séptima reunión de retrospectiva fue organizada por Eduardo, previo al análisis retrospectivo, llevamos a cabo una actividad de Team Building que no solo fortaleció nuestros lazos como equipo, sino que también sentó las bases para una reflexión más profunda y personal sobre nuestro trabajo. En la dinámica, cada miembro del grupo se dedicó a seleccionar tres imágenes, sin restricciones en cuanto a su temática, con la única condición de que cada una representara a un compañero de equipo. Más tarde, compartiríamos las elecciones, dando un contexto detallado y explicando la razón detrás de cada imagen seleccionada en relación con el compañero a quien representaba. Una vez transcurridos los 10 minutos, cada miembro fue compartiendo su imagen (ver figura 4.12) y la explicación que había elaborado: Turno de Steven ·Edu: Lo que más destacaría de Eduardo es la capacidad de organización que tiene y poder dirigirnos a todo el equipo, sobre todo con la memoria. Ha sido como el ancla que nos a ayudado a mantenernos centrados en el proyecto y no irnos del todo de nuestras tareas. Ha sido un buen líder.
48 Capítulo 4. Metodología de gestión del proyecto: Kanban ·Samu: Es un gran trabajador y buen conocedor de la IA lo ha demostrado a la hora de realizar código en tareas complicadas, como pudo ser el desarrollo del calendario. Lo relaciono con esta imagen porque su setup debe ser así mínimo para tanto código. ·Rubén: Le gusta trabaja en silencio, sin embargo avanza mucho, a mi parecer junto con Samu es el que más domina en conocimientos. Aunque se abruma si no encuentra solución rápida. Foto chef porque sé que cuando acabemos el TFG nos hará un pastel, ya que le gusta el mundo de la cocina y se le da bien. Turno de Rubén ·Edu: Su trabajo durante la investigación sobre la enfermedad del Alzheimer y las terapias de reminiscencia ha sido invaluable y nos ha permitido tener una idea general sobre el ámbito en el que trabaja Recuérdame 3.0. Foto de Capibara porque todo el mundo te quiere y siempre mantienes la calma incluso en las peores situaciones. ·Samu: Sus conocimientos sobre el entorno Azure nos han ayudado a implementar varias de las nuevas funcionalidades de la aplicación, la integración de estas habría sido una odisea sin tu inestimable ayuda. Foto de agua porque eres capaz de adaptarte a cualquier situación. ·Steven: Gran trabajo con los multimedia con Azure BLOB Storage, adaptar el código al nuevo almacenamiento no fue tarea fácil, pero lo conseguimos con esfuerzo y perseverancia. Foto de unos bolardos, porque al igual que él no se doblan ni aunque les pase un camión por encima. Turno de Samuel ·Edu: Buen trabajo con las imágenes y la IA TTS, porque la implementación de las APIs es bastante compleja y eso dificulta mucho el hacer que funcione todo correctamente. Por otro lado se que ha dedicado bastante tiempo al TFG aun teniendo otras asignaturas. Xavi Alonso porque siempre organiza muy bien las cosas que tiene que hacer y es un gran referente de organización para todo el grupo, además es muy bueno con las tecnologías y siempre esta ahí cuando se le necesita. ·Rubén: Ha ayudado mucho con el tema de las imágenes y han conseguido un gran avance gracias a sus investigación y pruebas, a su vez ha estado investigando los chatbots. Homer listo porque siempre esta preparado, estudiando e investigando de todo, además tiene un buen nivel de conocimientos que ofrece al equipo siempre y cuando lo necesitemos ·Steven: Como el resto de mis compañeros ha estado enfocado en la investigación de las imágenes y se que ha sido de gran ayuda en esa parte, siempre está dispuesto a ayudar aunque tenga trabajo de fuera del TFG y eso es de agradecer ya que es un punto que aporta mucho valor al resto de compañeros del grupo. Comprometido con el equipo y eso hace que estemos unidos, nos ayuda siempre tanto con tareas como con memoria. Turno de Eduardo
4.3. Reuniones de Retrospectiva 49 ·Samu: Foto de Jeremy, personaje de Código Lyoko, un personaje muy listo, como Samu, siempre dispuesto a ayudarte con cualquier problema, muy amable y buen conocedor de las tecnologías que investigamos, además de ser gran aficionado a los ordenadores. ·Rubén: De los animales mas inteligentes, como Rubén, mucha versatilidad que ha ido desarrollando a lo largo del proyecto, con las distintas tareas y sobre todo con la fatigante tarea de las imágenes. Los delfines, al igual que Rubén, poseen mucha agilidad y adaptabilidad para todo tipo de entornos. ·Steven: Imagen de un perro, por su forma de ser, la sociabilidad, lealtad, compañerismo, variedad de habilidades y sobre todo su capacidad de aprendizaje son características que definen a Steven y su aportación al trabajo es de buen nivel. Con esta dinámica, además de romper el hielo antes de entrar en la retrospectiva, se busca fomentar la creatividad y la capacidad de observación de cada miembro del equipo, también permite una comprensión mas profunda de las personalidades, las fortalezas y las curiosidades de cada uno. Más allá de la elección de imágenes, nos sirve para reflexionar sobre cada miembro ya sea por su contribución al trabajo o por su carácter personal. Figura 4.12: Resultado de la dinámica para romper el hielo en la retrospectiva del 17/03/2024 Una vez acabada la actividad de Team Building, nos centramos en la retrospectiva. Eduardo utilizó una retrospectiva parecida a la del barco, poniendo la fábula de los 3 cerditos5como enfoque principal. Consiste en plantear las situaciones que el grupo ha tenido desde la última reunión de retrospectiva y hacer una analogía que represente la importancia de la planificación y construcción de una base sólida es 5https://agilismoeningenieriadesoftware.blogspot.com/2018/10/retro-de-los-3-p equenos-cerditos.html
50 Capítulo 4. Metodología de gestión del proyecto: Kanban fundamental para enfrentar los desafíos que tenemos por delante. Nuestro objetivo es que no nos coma le lobo: El Lobito TFG, que buscará las debilidades en nuestro trabajo para que las corrijamos. Cada cerdito representa un enfoque diferente: el primer cerdito que construye su casa rápidamente con paja, representando la falta de planificación e inexperiencia ante los retos, el segundo cerdito que elige la madera, un poco más resistente pero aún vulnerable, representando las cosas hechas pero aún mejorables, y el tercero que opta por el ladrillo, la opción más segura y duradera, representando una buena base de trabajo y conocimientos de las tareas. Comenzamos hablando de la casa de paja, para centrarnos en los aspectos que debíamos abandonar o plantearlos de otra manera, los objetivos que salieron a la luz fueron la implementación del Chatbot mediante las herramientas que Azure ofrecía gratuitamente, sin embargo debido a que Microsoft sufrió incompatibilidades con el proyecto y solicitaba información desconocida por nuestra organización (UCM) por lo tanto necesitamos cambiar la herramienta para el desarrollo del chatbot, se valoró la herramienta de ChatBase y se investigará para poder realizar la tarea. Otra debilidad que tenemos en la casa de paja era el intento de arreglo respecto a la imágenes almacenadas localmente y no en una base de datos, Azure fue la opción para almacenar las imágenes pero para ello necesitamos conectar el proyecto mediante la API que ofrece, tras varios intentos fallidos decidimos que para poder resolver el problema de las imágenes teníamos que cambiar la herramienta o la forma de conectarla al proyecto, se optó por la SDK de Azure que ofrecía una documentación mas detallada y más fácil de implementar, aunque también ofrecía algunos inconvenientes, detallados en la casa de madera. Al pasar a dicha casa, el equipo recalcó que si bien la SDK de Azure podría arreglar nuestras problemas de almacenamiento de las imágenes, también podría causar problemas, ya que la SDK dejaría de estar soportada por Azure y pasaría a estar en código libre, pudiendo ocasionar futuros fallos que no serán solventados por Azure. También decidimos poner en la casa de madera a la conexión con la API de Text to Speech, funcionaba pero aún faltaba por saber como guardar los audios al generar las Historias de Vida, por lo tanto no era una parte de la casa sólida como buscábamos, de la misma manera se trató la detección de emociones de un recuerdo, se consiguió la conexión con la API y que pudiera detectar si un recuerdo era positivo, negativo o neutro, sin embargo, no conseguíamos que detectara los sentimientos que producía el recuerdo. Para la última casa, pusimos las cosas que estábamos seguros de haber hecho y podrían contra el Lobito TFG, el equipo estuvo de acuerdo que la reducción de fallos en la memoria, ha sido significativa, tanto a lo largo del proyecto como en las últimas entregas. Además de todos los conocimientos y el aprendizaje en APIs que en el grado de Software no se han visto pero hemos tenido que aprender para el proyecto. La conclusiones generales quedan reflejadas en la figura 4.13. Al final de la retrospectiva tuvimos una reflexión por parte del equipo, destacando las mejoras en la implementación del proyecto. El equipo ha demostrado capacidad para adaptarse a desafíos inesperados, como las funcionalidades con IA y tomar decisiones informadas. Además, se reconoció el progreso significativo logrado en aspectos clave del proyecto, subrayando la importancia del aprendizaje continuo. Las acciones de mejora que se sacaron fueron mayoritariamente para las imágenes ya que si queríamos volver a tener la funcionalidad de los vídeos con Creatomate,
4.3. Reuniones de Retrospectiva 51 Figura 4.13: Resultado retrospectiva de los 3 cerditos el 17/03/2024 se necesitarían imágenes para ello y el hecho de poder tener un almacenamiento externo de imágenes reduce la dependencia y el acoplamiento del servidor respecto a las imágenes. La herramientas para implementar las IAs están claras e iban por buen camino, solo faltaría dar un buen impulso a la codificación de dichas tareas para así obtener nuevas funcionalidades para la aplicación. 4.3.8. Retrospectiva del 7 de Abril de 2024 En esta ocasión la retrospectiva fue llevada a cabo por Samuel. Primero, Samuel propuso realizar una actividad que él realiza en su trabajo para liberar el ambiente y soltarse antes de la retrospectiva que consiste en elegir cada miembro del equipo una foto de un animal y explicar el porqué te pareces a él. Cada miembro seleccionó el animal que consideraba que mejor lo representaba y explicó sus razones: Eduardo eligió a un burro. Su explicación fue: “Me representa el burro porque son animales que soportan peso y carga de trabajo hasta 2 toneladas, muy hábiles y útiles en trabajos pesados y suelen ser inofensivos y pacíficos”. Eduardo argumentó que, al igual que un burro, él es una persona que puede realizar una gran cantidad de trabajo sin dejar que eso afecte a su rendimiento como compañero de equipo. Steven escogió un perro. Explicó: “El perro porque me gusta pasar tiempo
52 Capítulo 4. Metodología de gestión del proyecto: Kanban rodeado de más personas que sean distintas a mi y soy capaz de acoplarme sin problema. A parte soy fiel y cariñoso”. Se siente identificado porque es una persona muy sociable y se adapta fácilmente a las situaciones que enfrenta en su día a día. Rubén eligió una cabra. Su explicación fue: “Me representa por su adaptabilidad y persistencia, además de que son animales bastante curiosos.”. Rubén argumentó que se identifica con la cabra debido a su persistencia en alcanzar sus objetivos y en el equipo se le considera como el miembro que más controla de programación. Samuel seleccionó un koala. Explicó: “Me representa porque me encanta dormir y el koala duerme la mayor parte del tiempo, normalmente no dejan que te acerques mucho pero cuando te dejan son muy amigables y te puedes fiar de ellos”. Samuel argumentó que es una persona que al principio le cuesta confiar en los demás y sentirse cómodo, pero que una vez entra en confianza, llega a ser muy amigable y fiel a sus amigos. Después de esta dinámica para soltarse se comenzó con la retrospectiva. En esta ocasión Samuel decidió realizar una modificación de la retrospectiva de la rosa, capullo y las espinas6, donde solo nos centraríamos en las rosas y las espinas. La retrospectiva consistió en identificar las cosas que han funcionado bien (rosas) y las que no (espinas) luego se hace una tala de las espinas eligiendo la manera de afrontarlas en los siguientes sprints. En un primer lugar se eligieron las rosas, es decir, el trabajo bien realizado. El análisis dejo las siguientes rosas: Conseguir 3 APIs e implementarlas (Text to speech, ChatBot, Emociones). Disponibilidad de más tokens de OpenAI (ChatGPT). Imágenes funcionando con Azure. Mejora de la interfaz y finalización de desarrollos. Posteriormente se procedió a analizar las espinas, y obtuvimos los siguientes resultados: Los audios de Text to speech no se guardan de manera eficiente. La vista de las emociones no se ve de manera adecuada y deja dudas al usuario. Finalidad del ChatBot mal enfocada Perdida de la funcionalidad de videos y falta de la API. Poco trabajo en la memoria por enfoque máximo en la aplicación. 6https://www.teamretro.com/es/retrospectivas/espina-de-capullo-de-rosa
4.3. Reuniones de Retrospectiva 53 Por último con las rosas y espinas identificadas se valoro como podar las espinas, para ello lo que se planteo es trabajar un poco más parejo en memoria en lo que queda de proyecto y mejorar las funcionalidades implementadas para que sean eficientes y claras al usuario. Además se deberá contactar con Creatomate para investigar los problemas con su API y así poder solucionarlo. Para acabar se realizó una dinámica grupal para subir los ánimos en esta recta final. Se opto por la dinámica de las preguntas rápidas que consiste en que cada miembro lanza una pregunta rápida a otro miembro y este debe contestar rápidamente, y formular una pregunta a otro compañero. Esta actividad nos dejo preguntas y respuestas como: ¿Cúal es tu mayor hobby? A lo que Eduardo respondió Nadar; ¿Personaje favorito de Harry Potter? Respuesta de Samuel es que no lo había visto. ¿Prefieres DC o Marvel? A lo que Rubén respondió que DC; ¿Cúal es tu número favorito? Con la respuesta de Steven siendo el número 8. Se llevaron a cabo varias rondas de preguntas ya que el ambiente fue bastante positivo y cumplió su objetivo animando a los integrantes del equipo para esta recta final. 4.3.9. Retrospectiva del 21 de Abril de 2024 La novena reunión de retrospectiva fue organizada por Steven, quien en esta ocasión optó por utilizar la técnica de “Start, Stop, Continue”7. Esta técnica se enfoca en identificar tres secciones: “Start”, que consiste en identificar aquellas acciones que los miembros del equipo debemos empezar a hacer para mejorar la eficacia; “Stop”, que se centra en señalar aquello que no funciona o causa problemas y por último “Continue”, donde se identifican las actividades que debemos seguir haciendo porque funcionan bien. Esta técnica nos ayuda a reflexionar sobre nuestro progreso hasta el momento y planificar acciones efectivas para esta etapa final. Durante la retrospectiva, utilizamos turnos aleatorios para abordar y completar cada uno de los puntos de la técnica de “Start, Stop, Continue”. El resultado final de la reunión se presenta en la figura 4.14. Decidimos comenzar debatiendo sobre todo lo bueno que hemos hecho hasta el momento y que debíamos seguir realizando. Por lo tanto, completamos la columna de “Continue”, donde identificamos los siguientes puntos Cerrar issues: Seguir cerrando las tareas completadas para mantener el flujo de trabajo organizado y actualizado. Los avances revisados, desplegarlos al servidor: Continuar desplegando los avances que ya hemos revisado con antelación al servidor para de esta manera mantenerlo actualizado y poder realizar pruebas continuas. Terminar el desarrollo de las APIs: Finalizar el desarrollo de las APIs es esencial para poder mostrar el avance conseguido del proyecto en comparación con su versión anterior. Desarrollar las tareas específicas para poder conseguir la revisión de los terapeutas: Dado que ya no queda mucho tiempo, debemos dar nuestro último 7https://www.growthtactics.net/start-stop-continue-retrospective/
60 Capítulo 5. Inteligencias Artificiales Generativas hemos revisado: Google Cloud Speech-to-Text2:Servicio de Google Cloud que utiliza modelos de aprendizaje automático para convertir audio en texto con una alta precisión. Este servicio destaca por su capacidad en entornos ruidosos o con acentos. Es capaz de integrarse sin problemas con otros servicios de Google Cloud. A través de paquetes como “laravel-google-speech-to-text” es posible poder incorporar el servicio en nuestra aplicación. Admite más de 125 idiomas y variantes lingüísticas, ofreciendo asistencia multilingüe. Para nuestro caso como nuevos usuarios, nos proporcionan 300 euros en crédito gratuito y 60 minutos mensuales gratuitos para transcripciones y análisis de audio. Sin embargo, debemos tener en cuenta que si llegamos a superar los 60 minutos implica cargos adicionales. Sonix3:Plataforma en línea que ofrece servicios de transcripción automática y subtitulado. Utiliza tecnologías de reconocimiento de voz para convertir archivos de audio y vídeo en texto de manera rápida y con alta precisión. Además, permite la transcripción automatizada en más de 39 idiomas. Sonix ofrece 30 minutos gratis, y una vez agotados, cobra por los minutos de cada archivo transcribido. Si deseáramos integrar Sonix en nuestra aplicación web podemos hacer uso de su API, la cual permite a los desarrolladores enviar archivos multimedia para su transcripción y recuperar los resultados, lo que puede lograrse mediante solicitudes HTTP desde el lado del servidor, permitiendo la integración con la aplicación de “Recuérdame 2.0”. Whisper4:IAG de OpenAI que ofrece servicios de transcripción y traducción y destaca por la gran cantidad de conjuntos de datos de entrenamiento en los que se basa: 680 mil horas de archivos de audio de internet. Esta amplia variedad de datos mejora la robustez a nivel humano de la herramienta. Para utilizar Whisper en transcripciones, es esencial instalar Python o la interfaz de línea de comandos. Dispone de cinco modelos distintos, desde tiny hasta large, cada uno con tamaños y capacidades variables. A medida que el modelo aumenta de tamaño, se mejora la velocidad de transcripción, pero se requiere una CPU y GPU potentes para maximizar su rendimiento lo cual puede ser una desventaja al momento de utilizar Whisper. Entre sus ventajas, Whisper destaca por admitir diversos formatos de contenido, incluyendo MP3, MP4, M4A, Mpeg, MPGA, WEBM y WAV. También puede realizar transcripciones en 99 idiomas y traducirlos todos al inglés. Además, la herramienta es gratuita. 5.2. Narración de Historias de Vida Cuando se genera una historia de vida, se busca que el usuario pueda tener un resumen de una serie de recuerdos previamente seleccionados, dicha historia 2https://cloud.google.com/speech-to-text?hl=es 3https://sonix.ai/ 4https://openai.com/research/whisper
5.2. Narración de Historias de Vida 61 puede verse de manera visual, con texto e imágenes, sin embargo no se contempla una opción en la cual los usuarios tengan algún tipo de defecto visual e impida beneficiarse de su historia de vida. A continuación presentamos las herramientas basadas en IAGs que hemos revisado: Google Cloud Text-to-Speech (TTS): Ofrece un servicio de Text-toSpeech5que utiliza IA avanzada para generar voces naturales y expresivas. Ofrece varias voces en más de 120 idiomas y proporciona opciones para controlar la entonación y el ritmo. Ofrece una integración fácil y una buena documentación para el uso de su API en proyectos, cuenta con una versión gratuita de 90 días para todos los usuarios, además está en constante desarrollo debido a sus actualizaciones y mejoras constantes desarrolladas por Google. Sin embargo el uso de la API lleva consigo algunas desventajas6, si hay demasiadas solicitudes de texto a voz el costo por el uso puede elevarse fácilmente, hay limitación de cuotas, es decir, hay limites en la cantidad de solicitudes que se pueden realizar por día, lo cual puede afectar al uso de la aplicación, en cuanto a la privacidad y seguridad, se cuenta con la privacidad en términos de Google, lo cual puede preocupar a los usuarios si el texto contiene información sensible. Esta plataforma cuenta con un plan gratuito, el cual ofrece hasta 90 días de prueba con un crédito limitado, ideal para probar más de 25 funcionalidades, entre las cuales está incluida TTS. Esta cuenta gratuita puede ser actualizada a una cuenta premium con pagos, mensuales o anuales ofrecidos por Google según los el uso en tu proyecto, el paso a una cuenta de pago se obtiene mayor capacidad de almacenamiento de proyectos, recursos y acceso ilimitado a todas las funciones de Google Cloud Platform, pudiendo incorporar otras APIs si fuera necesario. Mozilla TTS7:Proyecto de código abierto que utiliza técnicas de IA para generar narraciones de voz más naturales. Al tratarse de un proyecto desarrollado por la organización del navegador web Firefox, la licencia de uso es libre lo cual facilita su integración en el proyecto, a diferencia de la herramienta anterior, no depende de servicios de terceros por lo tanto el usuario tiene control sobre los datos y la privacidad. Hace uso del aprendizaje automático y procesamiento de lenguaje natural (NLP), es decir, la herramienta puede ser utilizada como parte de un sistema más amplio que involucra tecnologías relacionadas con la comprensión y generación de lenguaje natural. Por el contrario, la calidad de voz depende de los modelos disponibles y del entrenamiento que se haya realizado, es por eso que para entrenar modelos de voz y ejecutar el servicio de TTS se puede requerir de más recursos, según la cantidad de solicitudes que se hagan de texto a voz. No cuenta con la misma variedad de idiomas y voces que otras herramientas, al igual que la documentación que es más limitada y puede conllevar a tener problemas con la implementación o resolución de problemas. 5https://cloud.google.com/text-to-speech/ 6https://ventajasydesventajastop.com/google-cloud-ventajas-y-desventajas/ 7https://wiki.mozilla.org/SpeechAPI
62 Capítulo 5. Inteligencias Artificiales Generativas Microsoft Azure Speech Service8:Ofrece un servicio de síntesis de voz, la cual tiene una integración rápida y facilidad de uso, dispone de una versión gratuita con límite de uso, tiene soporte para varios idiomas y su configuración no es compleja para un usuario estándar, además este servicio de Azure tiene buena compatibilidad con los navegadores web. Por otro lado, el límite de uso por mes o por día esta muy por debajo que otros servicios, debido a esta versión gratuita y limitada se reduce la calidad de voz, pudiendo provocar una voz más robotizada, la personalización también se ve limitada según que versión de pago se elija. En cuanto a la seguridad y privacidad, son controlados por otros servicios externos, en este caso Microsoft, al igual que el rendimiento del servicio, infraestructura de Azure. 5.3. ChatBot Una de las funcionalidades solicitadas que no pudieron completarse durante el desarrollo de Recuérdame 2.0 fue la creación de un chat bot integrado en la aplicación, el cual fuese capaz de actuar como terapeuta y así permitir los usuarios hacer terapia en su domicilio, generar preguntas a partir de recuerdos o simplemente conversar con el usuario. A continuación presentamos las herramientas basadas en IAGs que hemos revisado: Chatbase9:Plataforma diseñada para facilitar la creación de chat-bots personalizados basados en GPT e insertarlos en aplicaciones web. Permite la importación de datos personalizados en formatos sencillos y accesibles como documentos PDF para entrenar un modelo de ChatGPT, esto permite obtener respuestas más especializadas dependiendo de los datos con los que se entrene, en nuestro caso sería útil para acercar lo más posible las respuestas de nuestro chat-bot a las que daría un terapeuta real. También soporta más de ochenta idiomas, entre ellos el español. Chatbase ofrece cuatro planes de pago, entre ellos uno gratuito con funcionalidades limitadas en cuanto al número de chatbots que podríamos entrenar (uno), 20 peticiones por mes y el hecho de que el chat-bot se borraría automáticamente tras 7 días de inactividad. ChatBase cuenta con un plan gratuito, el cual permite la creación de un ChatBot y ofrece 20 mensajes los cuales se recargan cada mes, ideal para probar sus funcionalidades. Esta cuenta gratuita puede ser actualizada a una cuenta premium con pagos anuales, mensuales o personalizados 10, una cuenta pago permite un mayor numero de mensajes, más capacidad para entrenar ChatBots, acceso a la API y a modelos más potentes como ChatGPT 4. Gemini API + Dialogflow: Gemini11 es un modelo de lenguaje creado por Google, similar a ChatGPT, es capaz de entender el lenguaje natural en varios idiomas (español incluido) y generar respuestas complejas a partir del 8https://azure.microsoft.com/en-us/products/ai-services/ai-speech 9https://www.chatbase.co/ 10https://www.chatbase.co/pricing 11https://gemini.google.com/
5.4. Detección de emociones 63 texto escrito por sus usuarios, Google ha creado una API con la que es posible acceder a los recursos de Gemini desde aplicaciones externas como nuestro proyecto. Por otro lado, Dialogflow12 es una plataforma de creación de chatbots desarrollada también por Google que nos permite la creación de chat-bots integrados en páginas web, además posee la capacidad de interaccionar con Gemini para poder crear un chat-bot potenciado por inteligencia artificial. Tanto la API de Gemini como Dialogflow tienen planes de pago sin costo con funcionalidad limitada, sin embargo tras investigar más en profundidad descubrimos que la API de Gemini todavía no está disponible en España13. Azure Bot Service14:Servicio en la nube ofrecido por Microsoft que proporciona una plataforma para desarrollar chatbots con inteligencia artificial, una de sus principales ventajas es que utiliza la misma tecnología que ChatGPT 4, uno de los mejores modelos de lenguaje existentes y puede ser entrenado para ofrecer respuestas más específicas tanto por datos proporcionados por los desarrolladores como por las interacciones con los usuarios, además puede integrarse con otros de los servicios en la nube proporcionados por Azure, ampliando así sus posibilidades de mejora y adaptación. Al ser parte de los servicios de Azure está incluido en la prueba gratuita de 200 dólares durante 30 días que Azure proporciona a estudiantes como nosotros (esto significa que la interacción con el bot también sería a través de la API de Azure), su precio es por uso y es similar al de otros servicios en la nube como Google Cloud o Amazon Web Services. ChatGPT API: Otra de las opciones que barajamos fue la utilización de la API de ChatGPT, la cual ya estaba siendo utilizada desde Recuérdame 2.0, sin embargo, esto supondría que solamente tendríamos acceso gratuito a la versión 3.5 de GPT con llamadas limitadas a la API y no podríamos entrenar nuestro propio modelo, por lo que las respuestas que nos ofrecería serían más genéricas. En caso de utilizar esta tecnología, la interfaz del chat-bot podría ser implementada con otros servicios como el ya mencionado Dialogflow. 5.4. Detección de emociones Para integrar esta nueva funcionalidad, se ha llevado a cabo una investigación sobre diversas herramientas que pueden contribuir a detectar sentimientos de manera más precisa. Sin embargo, el problema común es que la mayoría de ellas están especializadas en la detección de sentimientos y opiniones en un entorno empresarial, centrándose en gran medida en la toma de decisiones corporativas. Las herramientas investigadas incluyen: Pangeainc15:Se trata de una aplicación de pago, especializada en traducción y localización. Utiliza tecnología avanzada, como herramientas de traducción 12https://cloud.google.com/dialogflow/ 13https://ai.google.dev/available_regions/ 14https://azure.microsoft.com/es-es/products/ai-services/ai-bot-service 15https://pangeanic.com/es/
64 Capítulo 5. Inteligencias Artificiales Generativas asistida por computadora (CAT), inteligencia artificial y aprendizaje automático, lo que les permite mejorar la eficiencia y la calidad de las respuestas. Las herramientas de CAT y los algoritmos de inteligencia artificial permiten a la aplicación ofrecer traducciones precisas y rápidas. Sin embargo no dispone de ninguna modalidad gratuita, siendo las tarifas disponibles muy elevadas para el uso en un TFG. Por otro lado no siempre es consistente en las respuestas a ciertas preguntas sobre la lingüística dado que si la pregunta realizada es sobre el sentimiento en un texto, al preguntarle varias veces en algunos casos cambia de opinión y da una respuesta diferente. TalkWalker16:Se trata de una plataforma especializada en la detección de emociones para la toma de decisiones empresariales. Es una herramienta bastante compleja y no muy fácil de entender inicialmente. La principal ventaja de esta herramienta es que ofrece una interfaz de usuario intuitiva y funciones automatizadas que simplifican el proceso de monitoreo y análisis de los textos online. Sin embargo, todos sus planes son de pago y esta es su principal inconveniente es que para aprovechar su potencial de manera correcta es necesario entrenarla para que funcione en el entorno que se desee. Lexalytics17:Es una herramienta de ánalisis de texto con una curva de aprendizaje muy elevada siendo muy complicado realizar un uso efectivo de la herramienta en poco tiempo. Sin embargo, un punto positivo es la rapidez de los análisis de esta aplicación ya que la tecnología de Lexalytics ha sido desarrollada y perfeccionada a lo largo de los años, lo que garantiza una alta precisión en el análisis de texto. Además, la plataforma es altamente escalable, lo que permite procesar grandes cantidades de datos de manera eficiente. En cuanto a sus puntos débiles, no dispone de mucha retro-compatibilidad para integrarse en los proyectos y sistemas por lo que el proceso para conectarse a su api es demasiado tedioso. Sus planes también son todos de pago pero en este caso dispone de licencias para usar un software en particular, o membresías mensuales con distintas opciones para tus preferencias. Lenguaje de Azure AI18:Es una plataforma que esta especializado en analizar el lenguaje y obtener la información que se desee incluidos los sentimientos. Ofrece algunas llamadas a la API de manera gratuita para todas las cuentas, lo que permite a los usuarios probar sus funcionalidades antes de comprometerse con un plan de pago. También dispone de una subscripción a Azure para estudiantes con la que obtienes mas ventajas y características desbloqueadas de manera gratuita. Sin embargo, es importante tener en cuenta que posee un curva de aprendizaje muy elevada y no dispone de compatibilidad con PHP actualmente porque se encuentra deprecated. Su plan general es de pago. ChatGPT19:Para utilizarla lo que se hace es enviar el texto junto con un 16https://www.talkwalker.com/es 17https://www.lexalytics.com/ 18https://azure.microsoft.com/es-es/products/ai-services/ai-language 19https://chat.openai.com/
5.5. Resúmenes generados por IA 65 prompt indicando que nos diga que sentimiento cree que es el más adecuado para ese texto. ChatGPT es la IA generativa por excelencia, su comportamiento siempre es muy bueno y aunque no esta especializado en la detección de sentimientos las pruebas realizadas arrojan buenos resultados. El problema general es que cada cuenta de OpenAI solo ofrece 20 llamadas a la api de manera gratuita. Dado que las herramientas iniciales están principalmente orientadas hacia la toma de decisiones empresariales y sus planes suelen ser de pago, con versiones demo muy limitadas, consideramos que no son las más adecuadas para nuestro propósito. Por otro lado, ChatGPT demuestra un buen desempeño en el análisis de sentimientos inferidos en un texto, a pesar de no estar especializado específicamente en esta tarea. Sin embargo, Azure, con su plan para estudiantes, ofrece suficientes llamadas a su API para manejar la carga de nuestra aplicación. Además, el Lenguaje de Azure AI no se basa en la búsqueda de emociones o sentimientos para la toma de decisiones empresariales, sino que su enfoque principal es el análisis del lenguaje natural y los textos para extraer la información solicitada, en nuestro caso, los sentimientos. Se ha identificado como punto negativo la alta curva de aprendizaje asociada con Azure, así como la dificultad de implementarlo adecuadamente con PHP. A pesar de estos inconvenientes, hemos optado por Azure y por ChatGPT, ya que entre los dos encontramos una muy buena respuesta no solo a la hora de elegir el sentimiento de un recuerdo, sino también a la hora de analizar el grado de positividad, cosa que anteriormente no se realizaba tampoco de manera automática. A pesar de los inconvenientes que nos han generado son las herramientas que debido a nuestras limitaciones mejor se adaptaban a los requisitos. 5.5. Resúmenes generados por IA Para la generación de resúmenes Recuérdame 2.0 usaba ChatGPT, pero esto tiene un gran inconveniente y es que el uso de la API de OpenAI es gratuito únicamente en 20 llamadas, después es necesario crear una nueva cuenta y actualizar la API-key. Por este motivo se han investigado las siguientes alternativas para mejorar este problema: Azure AI20:Utiliza el modelo de lenguaje GPT 3.5 aunque es posible modificarlo por otros modelos tanto de OpenAI como de otros desarrolladores como por ejemplo LLaMA21 de Meta. Esto provee una gran versatilidad a la hora de elegir el lenguaje que mejores resultados arroje a nuestras peticiones para realizar los resúmenes. Además Azure AI ofrece un gran número de llamadas de manera gratuita para estudiantes. Por otro lado, la incorporación de esta API en la aplicación, junto con la falta de un SDK para PHP, complica considerablemente el desarrollo y la integración, ya que los de deberá implementar muchas funcionalidades desde cero. 20https://azure.microsoft.com/es-es/solutions/ai 21https://ai.meta.com/blog/large-language-model-llama-meta-ai/
66 Capítulo 5. Inteligencias Artificiales Generativas Gemini22:Google también ofrece una API de inteligencia artificial generativa, en este caso utilizando su propio modelo llamado Gemini. Aunque esta API también produce resultados coherentes, su utilidad se ve restringida por el hecho de que las llamadas a la API son de pago, al igual que sucede con ChatGPT. Esto provoca que su acceso sea limitado ya que no contamos con asumir el coste de su uso. Después de explorar estos tres modelos llegamos a la conclusión de que Azure podía ser una alternativa viable, sin embargo, a la hora de intentar implementarla vimos que la complejidad era demasiado alta por lo que optamos por mantener finalmente ChatGPT aunque añadiendo una api-key con llamadas suficientes para las pruebas que vamos a realizar en la aplicación. 22https://gemini.google.com/?hl=es-ES
Cap´ ıtulo 6 Recuérdame 3.0 En este capítulo trataremos los elementos que han sido clave en el desarrollo de Recuérdame 3.01, los cambios realizados en las funcionalidades ya existentes en Recuérdame 2.0 y las nuevas funcionalidades incorporadas. La aplicación está disponible en http://caliope.fdi.ucm.es. Este capítulo ha sido dividido en varias secciones, diferenciadas por el ámbito de la aplicación al que afectan las acciones realizadas que se describen en ellas. La Sección 6.1 está dedicada al rediseño de la interfaz de usuario y cambios visuales. A continuación, en la sección 6.2 se explica la mejora de las funcionalidades de Recuérdame 2.0 y en la sección 6.3 se explica como se ha cambiado el método de almacenamiento de Recuérdame 2.0. En la sección 6.4 hablamos de la integración de las nuevas funcionalidades de la aplicación, diseñadas para mejorar la experiencia de los usuarios. Por último, en la sección 6.5 se explica como poblamos la aplicación con recuerdos reales de la historia de vida de varios usuarios. 6.1. Rediseño de la interfaz de usuario En esta sección nos centraremos en los cambios relacionados con el rediseño de la interfaz de usuario creada en Recuérdame 2.0, es decir, aquellas modificaciones visuales, de logotipos y maneras de interactuar con la aplicación. 6.1.1. Cambio de logo Optamos por modificar el logotipo de Recuérdame 2.0 con el propósito de destacar el proyecto en desarrollo, la versión 3.0 de la aplicación. Es esencial que el nuevo logotipo refleje este cambio, ya que mantener el anterior con el número “2” resultaría incongruente con el nombre Recuérdame 3.0, generando una posible confusión a los usuarios. Siguiendo la paleta de colores que la aplicación tiene, se decidió crear un nuevo logotipo identificativo para este nuevo proyecto, con el objetivo de conservar la idea de Recuérdame 2.0 y que no desentonara con la interfaz ya creada. Para el 1https://github.com/NILGroup/TFG-23-24-Recuerdame3.0 67
68 Capítulo 6. Recuérdame 3.0 proceso creativo se contó con la ayuda de Joshua Estera Tanguilig2, animador 3D en juegos y entornos interactivos con máster en Concept Art y Grafismo para videojuegos. Se realizó una reunión de brainstorming en la cual explicamos el cambio del logo y fueron surgiendo varias ideas, reflejadas en la figura 6.1. Observamos que la idea 1 perdía la esencia del logo anterior pero la idea 2 no reflejaba que fuera una versión de Recuérdame, por lo tanto quisimos hacer una mezcla entre los 2 bocetos. Obteniendo las ideas que se presentan en la figura 6.2. Finalmente pulimos el logo de manera que reflejara el perfil de una persona que gracias a la versión 3 de la aplicación puede conservar sus recuerdos, también pedimos a Joshua una reducción en la anchura del logo de Recuérdame 2.0 ya que consideramos que era mejor colocar un icono representativo del logo a toda la palabra “Recuérdame” y cambiar el color a un tono único para aportar mayor versatilidad y un mayor impacto visual ya que un color sólido puede destacarse más fácilmente y captar la atención del usuario de manera más efectiva. En la Figura 6.3 se muestra el logo final a la derecha y a la izquierda se muestra el logo de Recuérdame 2.0. Figura 6.1: Resultado del brainstorming del logo Recuérdame 3.0 6.1.2. Cambios visuales En el marco del desarrollo de Recuérdame 3.0, se han realizado algunos cambios en la interfaz de usuario, específicamente en la representación visual de los botones. La modificación principal consistió en enfatizar el texto contenido en los botones mediante el uso de negrita, acompañado de la inclusión de iconos representativos de la funcionalidad asociada a cada botón. Los botones originales, aunque cumplían su propósito básico de indicar acciones al usuario, carecían de un énfasis visual que los hiciera distinguibles. Poner negrita a las letras resalta la importancia del texto, facilitando al usuario su lectura y comprensión, especialmente en dispositivos con pantallas de menor tamaño o en 2https://www.artstation.com/joshuaesta
6.1. Rediseño de la interfaz de usuario 69 Figura 6.2: Resultados provisionales del logo Recuérdame 3.0 Figura 6.3: Comparación y resultado final del logo Recuérdame 3.0 situaciones de baja visibilidad. También se incorporaron iconos representativos juntos al texto en negrita. Nos apoyamos en estudios cognitivos como el realizado por Harley (2014) en Nielsen Norman Group3, en el cuál sugiere que los usuarios identifican más rápidamente los iconos antes que el texto, considerando el movimiento de izquierda a derecha en la lectura. Esta estrategia aumenta la intuición del usuario sobre la función de cada botón, mejorando la experiencia general del usuario. Con estos cambios se promueve una interfaz más consistente, facilitando la navegación al reducir la carga cognitiva del usuario al interactuar con la aplicación. Los resultados respecto a Recuérdame 2.0 se puede ver en la figura 6.4. De la misma manera se aplicaron las modificaciones al resto de botones de la aplicación como se refleja en la figura 6.5 3https://www.nngroup.com/
76 Capítulo 6. Recuérdame 3.0 Figura 6.12: Nueva opción de vídeos en el navbar Figura 6.13: Nueva vista para la generación de vídeos cual podía dificultar el acceso a esta funcionalidad al no estar claramente visible en el menú de la aplicación, para solucionarlo se añadió una nueva opción en el menú principal para permitir a los usuarios ver los resúmenes generados y crear nuevos resúmenes. Además, se creó una vista diseñada específicamente para la generación de resúmenes, tal y como se muestra en la figura 6.14, sustituyendo a la vista general de generación de historias de vida donde a parte de generar libro y pdf de la historia también podías generar un resumen o un vídeo tal y como se puede ver en la figura 6.15. En la nueva versión de la aplicación, estas dos últimas opciones han sido eliminadas de dicha vista, ya que se creó una vista específica para cada caso. Durante la evaluación realizada a Recuérdame 2.0, los terapeutas señalaron el hecho de que los resúmenes contenían un alto número de términos complejos que podría hacer que los usuarios que sufren problemas de atención se perdieran en su lectura. Para solucionar este problema, en la nueva versión de la aplicación se realizaron ajustes en el prompt utilizado en la generación de resúmenes, como se pueden ver en la figura 6.16. Estos ajustes tuvieron como objetivo disminuir la presencia de palabras menos comunes, contribuyendo así a la resolución del problema. Respecto a la propia presentación de los resúmenes, los evaluadores de Recuérdame 2.0 solicitaron la modificación del título para que hiciera referencia a las categorías que se incluyen, en lugar de a las etapas de vida del paciente que abarcaban los recuerdos, ya que de este modo se consigue un título más descriptivo. 6.2.6. Cambios en los Informes Una de las solicitudes de los evaluadores de Recuérdame 2.0 fue la inclusión del centro al que pertenece el terapeuta en los informes generados por ellos mismos. Por esta razón se creó un campo “centro” que el terapeuta debería indicar a la hora de registrarse y que posteriormente se utilizaría en los informes generados. De esta
6.2. Mejoras en las funcionalidades de Recuérdame 2.0 77 Figura 6.14: Imagen de la nueva vista para la generación de resúmenes Figura 6.15: Imagen de la antigua vista para la generación de resúmenes y videos Figura 6.16: Imagen del script generador de resúmenes después del cambio manera, al generar el PDF de los informes de sesión, diagnóstico o seguimiento se mostrarán dos campos: el nombre del terapeuta y el centro al que pertenece. Un ejemplo de como se visualiza la información del centro en los PDFs se presenta en la figura 6.17.
78 Capítulo 6. Recuérdame 3.0 Figura 6.17: Modificación pdf informe de seguimiento 6.2.7. Cambios en los Diagnósticos En una de las evaluaciones con terapeutas surgieron dudas sobre las escalas personalizadas, para evitar confusiones, se añadieron aclaraciones en forma de tooltips con información extra sobre las escalas personalizadas, también se añadieron tooltips con información a cada una de las tres escalas predeterminadas. Las tooltips, visibles en la ventana de diagnostico de la sección de Evaluaciones, explican cada una de las escalas predeterminadas en detalle, comentando su nombre completo y como afecta en el efecto cognitivo el tener una mayor puntuación en la escala. Mientras, que en el tooltip de escala personalizada se explica el cometido de este tipo de escala. Uno de los cambios realizados en los diagnósticos, el cual también fue solicitado por los evaluadores de Recuérdame 2.0, se centró en las gráficas de seguimiento que inicialmente solo mostraban los datos de las tres escalas predeterminadas, sin mostrar las escalas personalizadas. Para mostrar también las escalas personalizadas, se creó una nueva gráfica (figura 6.18) a la derecha de la gráfica de escalas predeterminadas en la que se muestra la evolución de las diferentes escalas personalizadas que pueda incluir el terapeuta en los informes de seguimiento, al mostrarlo en una gráfica diferente a la original, evitamos saturarla con excesiva información, lo cual podría dificultar su análisis. 6.2.8. Cambios en las Sesiones En la versión anterior de la aplicación, cada sesión se limitaba a ser asignada a una única etapa (Infancia, Adolescencia, Adulto joven, Adulto, Adulto Mayor). Sin embargo, durante la evaluación con los terapeutas, surgió la necesidad de permitir
6.2. Mejoras en las funcionalidades de Recuérdame 2.0 79 Figura 6.18: Nueva gráfica con escalas personalizadas la asignación de más de una etapa a una sola sesión. Esta nueva funcionalidad ha sido incorporada a la nueva versión de la herramienta. 6.2.9. Cambios en las tablas Originalmente los elementos de todas las tablas aparecían en orden alfabético, durante las evaluaciones realizadas en Recuérdame 2.0 uno de los evaluadores indicó que en aquellas tablas en las que los datos incluían una fecha (fecha de creación, por ejemplo) convenía ordenar las filas de la tabla por fecha para que en primer lugar apareciese siempre la fila más reciente. Para incluir esta modificación se modificó la función encargada de mostrar las tablas, incluyendo una condición que compruebe si la tabla contiene fechas y en caso afirmativo ordene su contenido por fecha en orden cronológico descendente antes de mostrarla. Además, en la tabla de informes de seguimiento, se ha corregido el campo “número de sesiones desde el anterior informe”. Este campo presentaba irregularidades en Recuérdame 2.0 las cuales fueron detectadas por sus creadores y quedaron pendientes como trabajo futuro. La modificación implementada garantiza que dicho campo muestre el número de sesiones que se han realizado desde el último informe de seguimiento de una manera correcta. 6.2.10. Cambios en Información de Usuario Para ahorrar tiempo en el proceso de vincular un cuidador a un usuario, tal y como pidieron los evaluadores de Recuérdame 2.0, se habilitó la posibilidad de especificar un cuidador en el momento en el que se da de alta a un nuevo usuario. Para ello se añadió un nuevo campo en el formulario de crear usuario el cual permite escoger a un cuidador entre los ya existentes. Como inicialmente no existe ningún paciente al que vincular al cuidador, en primer lugar se crea el paciente y acto seguido se vincula con el cuidador si el usuario ha rellenado el nuevo campo. 6.2.11. Cambios en los recuerdos A la hora de especificar las etapas a las que pertenece cada recuerdo, el uso de los términos “infancia”, “adolescencia” y “adulto” resultaba ambiguo ya que no determina con exactitud el periodo de tiempo abarcado, los evaluadores de Recuérdame 2.0 pidieron clasificar las etapas para que mostrasen un intervalo numérico y poder
80 Capítulo 6. Recuérdame 3.0 ofrecer al usuario esa precisión. “Infancia” pasó a ser “Infancia (0 - 11 años)”, así como el resto de términos: “Adolescencia (12 - 18 años)”, “Adulto joven (19 - 27 años)”, “Adulto (28 - 59 años)” y “Adulto Mayor (60+ años)”. 6.2.12. Cambios en el calendario En el calendario, actuando en el rol de terapeuta, podemos visualizar y eliminar sesiones y actividades. Durante las pruebas de calendario, comprobamos que no era posible eliminar una sesión, mientras que eliminar una actividad si lo era. Investigando el código pudimos encontrar que el error se debía a dos problemas principales: Al pulsar “eliminar sesión”, no se estaba ejecutando la lógica correspondiente, en realidad no estaba haciendo ninguna operación al respecto. No se estaba obteniendo el ID de la sesión a eliminar, por lo que aunque la lógica de eliminación funcionara, no iba a poder identificar que sesión eliminar. Una vez identificado los errores, procedimos a arreglarlos. Realizamos las modificaciones correspondientes para que el sistema reconozca y ejecute la acción de eliminar una sesión al pulsar el botón correspondiente. A parte, aseguramos que el ID se obtuviera correctamente para poder realizar su eliminación. Como resultado, ahora se puede eliminar tanto una sesión como una actividad desde calendario de una manera correcta. 6.3. Almacenamiento de contenido multimedia Recuérdame 2.0 almacenaba los archivos multimedia, es decir, las fotografías vinculadas a los recuerdos e historias de vida y logos e imágenes de los avatares de los usuarios directamente en el servidor, dentro de una carpeta. En la base de datos únicamente se almacenaba la ruta de acceso al contenido multimedia almacenado, para así poder seleccionarlo cada vez que fuera necesario. Esto suponía un problema, sobre todo a la hora de migrar a otro servidor, pues al no poseer el mismo sistema de ficheros, todas las rutas almacenadas en la base de datos quedarían inutilizadas y el acceso a las imágenes almacenadas antes de la migración para los usuarios de la aplicación sería imposible. Una solución sería almacenar el contenido multimedia directamente en la base de datos o, preferiblemente, utilizar un servicio de almacenamiento en la nube. Durante este TFG buscamos la manera de mejorar el almacenamiento de contenidos multimedia en la aplicación y para ello investigamos varias herramientas con servicios en la nube y así, cambiar la forma en que se almacena el contenido multimedia en la aplicación. A continuación presentamos cada una de las herramientas analizadas con este fin: Azure Blob Storage4:fue una de las primeras aplicaciones que buscamos, 4https://azure.microsoft.com/es-es/products/storage/blobs
6.3. Almacenamiento de contenido multimedia 81 pertenece al entorno de Azure5. Azure Blob Storage permite el guardado de contenido multimedia en forma de BLOB6, gracias a esto tolera un gran almacenamiento de datos no estructurados, así como datos binarios, archivos de audio, vídeos, imágenes y documentos. Ofrece una accesibilidad global a través de HTTP/HTTPS, con bibliotecas para múltiples lenguajes de programación, para facilitar su integración en las aplicaciones. En cuanto a la seguridad, la herramienta incluye autenticación de usuarios y encriptación de datos, asegurando la protección de los datos almacenados en la nube. En términos de precios, Azure Blob Storage ofrece una versión gratuita de prueba incluyendo 200 dólares para probar todos sus servicios. Entre las desventajas que nos encontramos está el hecho de que Azure finalizó recientemente el soporte para el SDK7de PHP, otra opción de acceso es mediante llamadas directas a la API de Azure, pero las configuración de esta tiene una dificultad elevada, lo cual añade un nuevo nivel de complejidad que, por ejemplo, AWS S3 no tiene ya que si da soporte a un SDK en PHP, por otro lado, la prueba gratuita de Azure está limitada por los 200 dólares durante 30 días que se nos otorgan al iniciarla. Amazon Web Service S38:es un servicio de almacenamiento en la nube muy utilizado. S3 permite almacenar datos en objetos dentro de entidades denominadas “buckets”, con una capacidad de hasta 5 terabytes por bucket. La flexibilidad es una característica que debemos destacar de S3. Permite la configuración de controles de acceso para los datos almacenados, facilitando la gestión de la seguridad. Además, posibilita el monitoreo continuo de los datos, proporcionando entendimiento valioso sobre el uso y el rendimiento. También demuestra un rendimiento sólido al admitir al menos 3500 solicitudes por segundo para agregar datos y 5500 solicitudes por segundo para recuperarlos. Aunque ofrece diversas ventajas, es importante destacar que la adopción de Amazon S3 puede presentar desafíos. La versión gratuita tiene una duración limitada a 12 meses, y el servicio tiene una curva de aprendizaje significativa, lo que nos puede resultar desafiante al ser principiantes sobre el uso de AWS. Además, es posible que debamos realizar algunas modificaciones para que la aplicación pueda ser compatible con el almacenamiento en Amazon S3. Google Cloud Storage9: es un servicio de almacenamiento en la nube que facilita la gestión, acceso y protección de sus datos. Ofrece una capacidad mensual de 5 gigabytes con costos variables según la clase de almacenamiento. Como nuevos usuarios, se nos brinda la ventaja de recibir 300 euros en créditos gratuitos, lo cual facilita la adopción y exploración del servicio sin 5https://azure.microsoft.com/es-es/resources/cloud-computing-dictionary/what-i s-azure 6Binary Large Object, formato de guardado para archivos complejos como imágenes, estos se guardan en forma de código binario 7Software Development Kit, proporciona al desarrollador las herramientas necesarias para desarrollar sus aplicaciones y en muchos casos interaccionar con APIs de manera más sencilla 8https://aws.amazon.com/es/s3/ 9https://cloud.google.com/storage
82 Capítulo 6. Recuérdame 3.0 inconvenientes. Su escalabilidad permite ajustar el espacio de almacenamiento según nuestras necesidades. En términos de seguridad, se destaca por su solidez tanto a nivel físico como en el ámbito del software y las aplicaciones. Adicionalmente, integra potentes soluciones de inteligencia artificial y aprendizaje automático. La API de Google Cloud Storage simplifica la integración para el almacenamiento y recuperación de archivos multimedia a través de solicitudes HTTP, pudiendo ser compatible con “Recuérdame 3.0”. Tras barajar nuestras opciones, decidimos utilizar Azure Blob storage para almacenar el contenido multimedia de los usuarios. Esta decisión fue motivada principalmente por el hecho de que ya se había decidido utilizar otras aplicaciones del ecosistema Azure para implementar las nuevas funcionalidades de Recuérdame 3.0 por lo que ya teníamos una cuenta de Azure creada y configurada, otro de los motivos fue la experiencia de Samuel con Azure, quien trabaja con estas herramientas en su puesto de trabajo. Para implementar Azure Blob storage en la aplicación, en primer lugar fue necesario instalar la SDK de Azure para PHP mediante Composer. También tuvimos que configurar una cuenta de almacenamiento de Azure para poder crear y administrar un contenedor de BLOBs, una vez realizado esto, procedimos a modificar el código que gestionaba el almacenamiento de contenido multimedia en Recuérdame 2.0, sustituyendo aquellas partes que buscaban y almacenaban el contenido en carpetas locales del servidor por solicitudes a nuestro contenedor, la base de datos no necesitó ser modificada, ya que guardar los nombres de las imágenes en esta era útil para almacenarlas y buscarlas en el contenedor. Las modificaciones realizadas para la visualización de imágenes y multimedia fueron: la visualización de la imagen del perfil del paciente tanto en la navbar como en la vista específica de información del usuario y también al generar el pdf de una historia de vida; la forma en que se muestra la multimedia asociado tanto a una sesión como a un recuerdo; visualización de la imagen del perfil del cuidador asociado al paciente en su vista de información del cuidador; las imágenes de las sesiones en el calendario; la representación de la multimedia asociada a un recuerdo en el momento de generar un libro de historia de vida, también al abrir el modal para la modificación de tamaño de la imagen y por último la forma de mostrar la multimedia al momento de realizar la generación de un vídeo. La creación de la clase BLOBAzure.php facilitó la interacción con los BLOBs, ya que en dicha clase se implementaron funciones especificas para poder subir, obtener y eliminar un BLOB del contenedor. Inicialmente, se utilizó la codificación base64 para mostrar las imágenes almacenadas en el contenedor, pero posteriormente pudimos averiguar que cada BLOB almacenado tiene asociado una url y un código de verificación generado a través de Azure, por lo tanto modificamos el código para la visualización mediante las rutas. Utilizar esta estrategia ofrece: más eficiencia, siendo mas eficiente acceder al BLOB directamente que a su versión codificada; nos da una facilidad de uso, ya que solamente tratamos con una ruta; mejora la escalabilidad, debido a que se evita la sobrecarga de procesar grandes cantidades de datos binarios en base64; la seguridad y su interoperabilidad ya que las rutas BLOB son un estándar usado en la industria del almacenamiento en la nube, facilitando su integración con otros sistemas.
6.4. Nuevas funcionalidades 83 6.4. Nuevas funcionalidades En esta sección abordaremos las nuevas funcionalidades incorporadas en Recuérdame 3.0, desarrolladas con el objetivo de mejorar la experiencia y efectividad de la aplicación para terapeutas y usuarios. Estas funcionalidades surgen de las necesidades identificadas en Recuérdame 2.0 y han sido integradas de tal manera que se mantenga la facilidad de uso y la fluidez del flujo de trabajo. A continuación, se detallarán las nuevas funcionalidades, junto con la motivación para su desarrollo, una descripción de la herramienta elegida para su creación y las razones de dicha elección, así como la manera en que ha se ha integrado en la aplicación. 6.4.1. Narración de Historias de Vida Para mejorar la experiencia y efectividad de Recuérdame 3.0, nos hemos enfocado en apoyar a los terapeutas en sus sesiones. Una de las necesidades que identificamos fue la de incorporar la narración auditiva de los recuerdos almacenados en la historia de vida de los pacientes. Esta funcionalidad surge especialmente para personas que tienen dificultades para leer, ya sea por problemas de visión o por deterioro cognitivo. Para integrar esta funcionalidad, es necesario utilizar una herramienta de conversión de texto a voz, para ello, evaluamos varias opciones disponibles en la web, analizando sus características, ventajas y desventajas, dicho análisis se refleja en la sección 5.2. Mozilla TTS es un proyecto de código abierto que proporciona narraciones de voz naturales y permite un gran control sobre los datos y la privacidad. Sin embargo, la calidad de la voz depende de los modelos disponibles y su documentación limitada nos hizo descartarla. Microsoft Azure Speech Service ofrece una integración rápida , es fácil de usar y ofrece soporte para varios idiomas. Pero su versión gratuita tiene un límite de uso muy bajo y la calidad de voz puede ser insuficiente, además de tener una personalización limitada, lo que nos llevó a descartarlo para el proyecto. Finalmente, Google Cloud Text-to-Speech utiliza inteligencia artificial avanzada para generar voces naturales y expresivas. Ofrece una gran variedad de voces en más de 120 idiomas, permite ajustar la entonación y la velocidad, y cuenta con una buena documentación10, además de una fácil integración. Su versión gratuita inicial, con un crédito total de 300 USD para estudiantes11, y la capacidad de procesamiento de hasta 480 horas de audio por día, lo convirtieron en la opción elegida para nuestro proyecto. En Recuérdame 3.0 cada vez que el usuario crea o modifica un recuerdo se genera un archivo de audio con la descripción del recuerdo y este audio se guarda en la base de datos junto con el recuerdo. Al generar el libro de historia de vida, los recuerdos son recuperados de la base de datos junto con su audio ofreciendo al usuario la opción de escuchar la narración de cada recuerdo en voz alta pulsando en el icono del archivo con el símbolo de “play”. Cuando de pulse y se active la narración aparecerán 10https://cloud.google.com/speech-to-text/quotas?hl=es-419 11https://cloud.google.com/text-to-speech/pricing?_gl=1*14kgyj1*_up*MQ..&gclid= CjwKCAjw17qvBhBrEiwA1rU9w4MkvsSdsCu07qpMdNS5e7ytJURHJ8kfxSksrZ4PTXHvZpvyYiLbfhoC B3oQAvD_BwE&gclsrc=aw.ds&hl=es-419
84 Capítulo 6. Recuérdame 3.0 de inmediato los iconos de pausa y reinicio a la derecha del icono “play” tal y como se muestra en la figura 6.19. Para incorporar Google Cloud TTS en Recuérdame 3.0, primero creamos una cuenta en Google Cloud y configuramos un nuevo proyecto. Esto nos permitió gestionar nuestros recursos y vincular las API y servicios necesarios para integrar TTS con Recuérdame 3.0. Una vez seleccionada la API de TTS, generamos un archivo de autenticación asociado al proyecto, necesario para autenticar y autorizar las solicitudes al servicio de Google Cloud. Este archivo se incluyó en nuestro servidor. Además, instalamos las librerías de Google Cloud en la aplicación utilizando Composer, lo que nos permitió realizar solicitudes al servicio TTS con el texto a narrar. Estas librerías son esenciales para interactuar con la API y garantizar que las solicitudes se procesen correctamente. Cuando se crea un recuerdo en la aplicación, se llama a la API de Google Cloud TTS para generar un archivo de audio con la descripción del recuerdo. Este archivo se guarda con el nombre de “recuerdo(ID del recuerdo)audio.mp3” en un contenedor específico dentro de nuestra cuenta de almacenamiento en Azure. Hemos decidido utilizar una cuenta de almacenamiento diferente para los audios y otra para las imágenes, lo que nos permite mantener un orden y acceder a estos archivos de manera más eficiente. El acceso a los audios es similar al de las imágenes. Una vez que obtenemos el ID del recuerdo que el usuario está viendo, el controlador de la aplicación nos proporciona la ruta correspondiente. Utilizando esta ruta, accedemos al contenedor de audio en Azure, localizamos el archivo y almacenamos su ruta en un array temporal. Este array contiene todos los audios asociados a los recuerdos seleccionados en el libro de historia de vida y se elimina cuando el usuario abandona el libro, asegurando así una gestión eficiente y ordenada. Esta estructura no solo nos permite manejar los recuerdos de forma individual, sino que también ofrece al usuario la posibilidad de pausar, reanudar el audio, o reiniciarlo desde el principio. Estas opciones mejoran la experiencia del usuario al interactuar con los recuerdos narrados, brindándoles un control total sobre la reproducción del audio. Actualmente la aplicación utiliza la versión gratuita de prueba, con límite de uso hasta el 8 de junio de 2024, si se quisiera poner en producción dicho proyecto, se debería adquirir una licencia de pago de Google Cloud para poder utilizar el servicio TTS. En el apéndice C se explica el proceso de cambio de versión gratuita a una de pago al igual que las instrucciones para el despliegue del TTS. 6.4.2. TherapEase: ChatBot para terapia online Otra de las funcionalidades que añadimos en Recuérdame 3.0 fue un ChatBot diseñado para facilitar que los cuidadores y los pacientes pudieran usarlo para trabajar los recuerdos. Esta nueva funcionalidad, la cual había quedado pendiente de desarrollar en Recuérdame 2.0, permitiría la realización de sesiones basadas en reminiscencia desde casa sin contar con la participación del terapeuta. Decidimos llamar al ChatBot para los terapeutas “TherapEase”, un juego de palabras que combina “Therapy” (terapia en inglés) y “Ease” (facilidad en inglés). Therapy se refiere a la práctica profesional de ayudar a las personas a superar problemas emocionales, psicológicos o de comportamiento lo cual implica apoyo,
6.4. Nuevas funcionalidades 85 Figura 6.19: Iconos para la reproducción del audio en los recuerdos orientación y tratamiento hacia los usuarios. Por otra parte, Ease significa facilidad o comodidad respecto al proceso terapéutico, sin complicaciones y que ayuda a reducir la carga emocional. TherapEase nos pareció un nombre atractivo y fácil de recordar para el usuario final. La función de este ChatBot es la de cumplir el papel de terapeuta, recibiendo un texto previamente generado a partir de los recuerdos seleccionados para trabajar en una sesión que utiliza como instrucciones para llevarla a cabo como si se tratara de un terapeuta real. Con ello permitimos que los usuarios de la aplicación puedan trabajar los recuerdos desde sus hogares y no se limiten a sesiones presenciales con terapeutas. Para integrar esta funcionalidad era necesario contar con una herramienta que nos permitiese añadir a nuestra aplicación un ChatBot con la capacidad de leer los mensajes escritos por los usuarios y devolver respuestas correctas y fáciles de entender. Investigamos múltiples herramientas que pudieran cumplir ese propósito siendo finalmente consideradas las anteriormente mencionadas en la sección 5.3. Tras analizar estas herramientas llegamos a las siguientes conclusiones: Azure Bot Service restringe el acceso al servicio Microsoft Entra ID12, necesario para la creación de bots por lo que tuvimos que descartarlo. Gemini, al menos en el momento en el que se escribió este TFG, no estaba disponible como servicio API en España, lo cual nos obligó a descartarlo. En cuanto a ChatGPT no cuenta con la posibilidad de crear ChatBots en aplicaciones web, lo que nos obligaría a utilizar otro servicio, como DialogFlow para poder implementarlo, resultando demasiado complicado comparado con la otra alternativa. Finalmente, elegimos ChatBase por la facilidad de su integración en nuestra aplicación. Si bien su versión gratuita utiliza el modelo de ChatGPT 3.5, no tan avanzado como el de Azure (ChatGPT 4), sí es lo suficientemente potente como para cumplir su propósito, además cuenta con múltiples opciones de configuración aplicables desde la web de ChatBase, como la posibilidad de corregir las respuestas generadas por el ChatBot y hacer que aprenda de ellas para mejorarlas o especificar sus funciones y comportamiento mediante archivos de texto (pdf, txt, doc, ...), texto plano o URLs (también a través de la web de ChatBase), lo que permite entrenar al bot para obtener una experiencia más acorde al 12www.microsoft.com/es-es/security/business/identity-access/microsoft-entra-id
92 Capítulo 6. Recuérdame 3.0 no hay opciones que satisfazcan estos requisitos ni que permitan entrenar la IA para los fines de nuestra aplicación. 6.5. Incorporación de datos reales a la aplicación La inclusión de recuerdos reales aporta una autenticidad y relevancia significativas al proyecto, además de establecer una conexión emocional profunda con los usuarios de “Recuérdame 3.0”. Trabajar con datos reales nos ha proporcionado una perspectiva más amplia sobre el impacto potencial de nuestra aplicación. Para fundamentar esta herramienta en experiencias reales, hemos contado con vídeos proporcionados por el proyecto nacional CANTOR14, en el que participan nuestras directoras de tesis. Estos vídeos contienen entrevistas detalladas a tres personas distintas, realizadas por los terapeutas de la Universidad de A Coruña. Cada entrevista abarcaba varios vídeos en los que se exploraban diferentes épocas de la vida del entrevistado, incluyendo la niñez, la juventud y la madurez. Las entrevistas fueron diseñadas para profundizar en recuerdos específicos que aportaran valor emocional y personal a las historias de vida de los entrevistados. Se les solicitó que rememoraran el máximo de recuerdos incluyendo momentos felices, eventos canónicos y que identificaran personas significativas en ciertos momentos de sus vidas. De esta manera, obtuvimos una visión integral y detallada de sus experiencias, contribuyendo así a la riqueza y autenticidad de los recuerdos que pretendemos incluir en “Recuérdame 3.0”. Para gestionar y organizar adecuadamente la información recopilada de las entrevistas, creamos un documento colaborativo en Google Docs. En este documento, registramos y clasificamos los recuerdos de cada una de las personas entrevistadas. La clasificación se realizó siguiendo una estructura similar a la utilizada para añadir nuevos recuerdos en la aplicación, es decir, a medida que avanzaba la entrevista realizamos la transcripción de cada recuerdo que se mencionaba, como se ve en la figura 6.28, facilitando así, la posterior integración de esta información en la web. Una vez teníamos los recuerdos, rellenamos el resto de campos (si no se proporcionaba en los vídeos) con coherencia para obtener un listado de recuerdos lo más realista posible. Para proteger la privacidad y el anonimato de las personas entrevistadas cambiamos los nombres y apellidos de todas las personas que aparecían en los recuerdos incluidos los propios entrevistados. Esta medida fue esencial para evitar cualquier problema relacionado con la revelación de información confidencial o la identificación de los individuos. La incorporación de todos los datos de los vídeos se resolvió con la creación de 3 usuarios: José, usuario con demencia y 12 recuerdos, Berta usuario sin deterioro cognitivo y 21 recuerdos y Carlos Alberto, usuario sin deterioro cognitivo y 42 recuerdos. La conciencia de trabajar con experiencias de vida reales incrementó nuestra motivación y compromiso con el desarrollo del proyecto, conscientes de que nuestra herramienta podría ofrecer un apoyo significativo a personas similares a las entrevistadas. 14https://www.ucm.es/itc/noticias/40943
6.5. Incorporación de datos reales a la aplicación 93 Figura 6.28: Extracto de la clasificación que usamos para la incorporación de datos reales.
Cap´ ıtulo 7 Evaluación de calidad del Software Este capítulo está dedicado a las pruebas que se realizaron en este TFG. Esta pruebas fueron realizadas con el objetivo de asegurarnos de que nuestra aplicación funciona correctamente y cumple con las expectativas de los usuarios finales. Durante el desarrollo de nuestra aplicación se realizaron diferentes tipos de pruebas que se explican en detalle en este capítulo, concretamente pruebas de sistema, pruebas de compatibilidad y pruebas de aceptación. 7.1. Pruebas de sistema Las pruebas de sistema son un componente fundamental en el proceso de desarrollo de software, ya que permiten verificar el funcionamiento correcto del sistema y detectar defectos. El proceso de pruebas de sistema se llevará a cabo una vez finalizada la implementación de cada tarea, y el encargado de desarrollar la prueba de sistema de cada tarea será el creador de la Issue correspondiente. Esta práctica garantiza que la persona a cargo de la prueba de sistema no sea la misma que llevó a cabo el desarrollo, cumpliendo así con políticas explícitas que prohíben que el creador de una tarea sea también el ejecutor de la misma. El propósito de las pruebas de sistema es verificar que las nuevas funcionalidades operen sin errores y comprobar el funcionamiento de la aplicación al integrar las nuevas funcionalidades con el avance del proyecto hasta el momento. Durante el proceso de pruebas, se documentarán los valores de entrada y salida, así como las incidencias encontradas, con el fin de garantizar la trazabilidad y la corrección de posibles fallos. Además, se indicará en cada prueba de sistema si se ha probado el funcionamiento con toda la aplicación o solo se ha probado la nueva funcionalidad correspondiente. La documentación se encontrará disponible en una unidad compartida de Drive permitiendo a cada miembro del equipo acceder fácilmente. La plantilla a utilizar para documentar las pruebas de sistema se puede consultar en la figura 7.1. Los resultados obtenidos de las nuevas funcionalidades se analizarán, y en caso de encontrar errores inesperados, se anotarán como comentario en la Issue y se notificará al desarrollador de la tarea de los fallos encontrados. Si al realizar las pruebas de sistema, no se ha encontrado ningún error, entonces el creador de la Issue moverá la tarea a la columna de “Terminadas”. 95
96 Capítulo 7. Evaluación de calidad del Software Figura 7.1: Plantilla para pruebas de sistema Como las tareas son muy variadas se ha establecido un procedimiento general para realizarlas: En el caso de un formulario, se debe comprobar que al rellenarlo se actualice la base de datos, el funcionamiento de los campos obligatorios, y la capacidad de ingresar campos vacíos o con un formato incorrecto. Verificar que los nuevos cambios sean visibles, que sus dimensiones sean co-
7.2. Pruebas de compatibilidad 97 rrectas y que no presenten faltas de ortografía. Asimismo, se debe asegurar que sean compatibles con distintos tamaños de la página web. Evaluar la finalización de una tarea verificando las nuevas implementaciones, como por ejemplo, el correcto desarrollo de nuevas redirecciones de vista. Verificar que las nuevas funcionalidades interactuables, como un nuevo botón, operen correctamente y que su animación funcione adecuadamente. En caso de desear visualizar las pruebas realizadas, estas estarán disponibles a través de este enlace 1. La documentación de estas pruebas proporciona información sobre los casos de prueba realizados en cada prueba de sistema y los resultados obtenidos. 7.2. Pruebas de compatibilidad Las pruebas de compatibilidad son un paso crucial antes de lanzar el software a producción. Estas pruebas se realizan para asegurarse de que la aplicación funcione correctamente en una variedad de sistemas operativos, navegadores, dispositivos y plataformas. El objetivo es identificar y corregir posibles problemas de usabilidad, garantizando así un producto final de alta calidad. En el contexto de este trabajo de fin de grado estimamos que la aplicación va a usarse sobretodo dispositivos móviles como los teléfonos o tablets por su versatilidad. 7.2.1. Casos de prueba El objetivo de estas pruebas fue identificar fallos en los entornos donde es más probable que la aplicación se utilice. Estos entornos incluyen dispositivos con sistemas operativos Windows y Linux, así como los navegadores más populares en la actualidad: Chrome, Firefox, Opera, Microsoft Edge y Safari. También se realizaron pruebas en dispositivos móviles con Android junto con iPadOS. En estos entornos, se llevaron a cabo las siguientes pruebas: 1. Verificar que todos los elementos se visualicen correctamente, sin campos desplazados o con tamaños incorrectos, y buscar posibles errores en el diseño general de la web. 2. Comprobar el funcionamiento adecuado de todos los elementos interactivos de la página como sus animaciones, corroborando su correcto funcionamiento y visualización. 3. Verificar todas las funcionalidades de la página, como el envío de formularios, la eliminación de datos de tablas, la creación de elementos mediante ventanas modales y la subida de archivos. 1https://drive.google.com/drive/folders/1R3IREd_YuEJmLg7p3cgunJ4FqXnsUjQY?usp =sharing
98 Capítulo 7. Evaluación de calidad del Software Durante la realización de estas pruebas, se documentaron todos los errores encontrados, tal y como se refleja en el ápendice F. Se especifica el sistema operativo y el navegador en el que ocurrieron, junto con una explicación detallada de cómo reproducir el error si fuera necesario. 7.2.2. Errores encontrados A continuación, se muestran los entornos probados y los errores de compatibilidad encontrados en los mismos, tanto a lo largo del desarrollo del proyecto, como durante la realización de estas pruebas. En el apéndice F puede encontrarse una lista completa con los resultados ordenados por sistema operativo. Sobre Windows 10 y Windows 11 se realizaron pruebas con los navegadores Edge, Chrome, Firefox y OperaGX. Se encontraron los mismos errores en ambos sistemas operativos: en Firefox, dentro de las vistas de creación y actualización de sesión e informe de sesión, el campo de fecha permitía seleccionar la fecha pero no la hora, teniendo que introducirla manualmente; en la creación de recuerdos, el slider indicando el grado de positividad del recuerdo no se mostraba, por lo que no se podía cambiar dicho valor; en la vista de calendario, el campo de fecha tenía el mismo problema de no permitir la selección de la hora, sobresaliendo el texto del input. Sobre Ubuntu 20.4 y Debian se realizaron pruebas con los navegadores Chrome, Firefox y Opera. Se encontraron los siguientes errores: en Firefox, tanto en la creación y actualización de sesión e informe de sesión, el campo de fecha permitía seleccionar la fecha pero no la hora, debiendo introducirla manualmente y sobresaliendo el texto del input; en la creación y visualización de recuerdos, el slider del grado de positividad no se mostraba, imposibilitando el cambio de valor. Sobre Fedora se realizaron pruebas con los navegadores Chrome, Firefox y Opera. Se encontraron los mismos errores que en Ubuntu y Debian: en Firefox, tanto en la creación y actualización de sesión e informe de sesión, el campo de fecha permitía seleccionar la fecha pero no la hora, teniendo que introducirla manualmente y sobresaliendo el texto del input; en la creación y visualización de recuerdos, el slider del grado de positividad no se mostraba, por lo que no se podía cambiar dicho valor. Además, en Opera, al cambiar el tamaño de la imagen en el libro de historia, ésta se desplazaba fuera del carrusel. Sobre dispositivos Android, se realizaron pruebas en Android 13 con los navegadores Chrome en Miui 14 y Miui 13. En todas las pruebas, los campos para seleccionar la fecha, con o sin hora, se mostraban como cuadrados blancos antes de introducirla. En Miui 13, al aparecer un error en la contraseña durante el registro, el campo se convertía en un cuadrado blanco con el texto del error superpuesto. Además, en todas las pruebas, las tablas desplegables no mostraban texto y se veían completamente blancas. En la visualización de vídeos, el navegador era excesivamente grande. Estos resultados muestran la importancia de realizar pruebas exhaustivas en diversos entornos y navegadores para identificar y corregir errores de compatibilidad, asegurando así una experiencia de usuario consistente y libre de problemas. Los errores encontrados durante estas pruebas quedaron como trabajo futuro.
7.3. Pruebas de aceptación 99 7.3. Pruebas de aceptación Esta sección está dedicado a las pruebas de aceptación que se realizaron y los resultados que obtuvimos de ellas. Estas pruebas son de especial interés ya que nos proporcionan información sobre el desempeño de nuestra aplicación con los usuarios finales. 7.3.1. Diseño de la evaluación La evaluación se diseñó de la siguiente manera (en el apéndice G se puede consultar el guión que se siguió para su desarrollo): En primer lugar nos presentamos con el evaluador para romper el hielo. También recordamos que partimos de la base que dejó Recuérdame 2.0 para crear una nueva versión mejorada en la que hemos realizado cambios basados en la retroalimentación recibida en las anteriores evaluaciones y hemos añadido nuevas funcionalidades para mejorar la experiencia del usuario. A continuación, se presenta como se va a desarrollar la evaluación para que el evaluador pueda anticiparse. Tras esto, se irá pidiendo al evaluador que realice una serie de tareas. Mientras el evaluador va realizando estas tareas, se le pedirá que use la técnica de Think Aloud que consiste en expresar en voz alta todo lo que se le pase por la cabeza mientras realiza la tarea. Cuando termine cada una de las tareas, tendrá que puntuar el grado de dificultad de dicha tarea usando el cuestionario de usabilidad SEQ (Lewis y Sauro (2009)). Dicho cuestionario consta de una única pregunta que pide al evaluador que califique la dificultad de la tarea realizada en una escala Likert de 7 puntos siendo 1 que la tarea fue muy sencilla y 7 que la tarea fue muy complicada. Además, tras realizar las tareas también se le pedía al evaluador su opinión sobre ellas, si la información mostrada era correcta, si echaba algo de menos, etc. Las tareas que se pidieron al evaluador fueron las siguientes: 1. Pedirle al bot de ayuda como generar un video de historia de vida. 2. Generar un vídeo con recuerdos de la etapa infancia. 3. Generar un libro de Historia de Vida de la infancia y adolescencia. 4. Leer en voz alta uno de los recuerdos del libro generado. 5. Ver una de las fotos del libro generado. 6. Cambiar el tamaño del texto y de las fotos del libro generado. 7. Crear un pdf de Historia de Vida con recuerdos de la etapa adulto joven. 8. Generar un resumen de la historia de vida de adulto joven, categoría familia. 9. Ver otros resúmenes generados y generar el pdf de uno de ellos.
100 Capítulo 7. Evaluación de calidad del Software 10. Mirar el diagnóstico del paciente y fijarse en su evolución. 11. Crear el pdf del diagnóstico del paciente. 12. Introducir un nuevo recuerdo y generar la emoción automáticamente. 13. Crear una sesión virtual. 14. Cerrar sesión como terapeuta, iniciar sesión como cuidador e iniciar la sesión virtual que ha creado el terapeuta. 15. Visualizar el vídeo creado al inicio de la sesión de evaluación. Una vez terminadas todas las tareas, se le realizará al usuario un test de usabilidad, el System Usability Scale (SUS) (Brooke (1996)), donde el usuario debe responder en una escala Likert de 1 al 5 a las afirmaciones del cuestionario siendo el 1 total disconformidad, el 3 una opinión neutral y el 5 estar totalmente de acuerdo. Las preguntas que componen este cuestionario son las siguientes: 1. Me gustaría usar esta herramienta frecuentemente. 2. Considero que esta herramienta es innecesariamente compleja. 3. Considero que la herramienta es fácil de usar. 4. Considero necesario el apoyo de personal experto para poder utilizar esta herramienta. 5. Considero que las funciones de la herramienta están bien integradas. 6. Considero que la herramienta presenta muchas contradicciones. 7. Imagino que la mayoría de las personas aprenderían a usar esta herramienta rápidamente. 8. Considero que el uso de esta herramienta es tedioso. 9. Me sentí muy confiada al usar la herramienta. 10. Necesité saber bastantes cosas antes de poder empezar a usar esta herramienta. Para obtener los resultados ha de seguirse la siguiente fórmula: 2,5∗ X n Preguntas impares!−5!+ 25 − X n Preguntas pares!!! Si el resultado de estos cálculos se encuentra entre 1 y 50 la usabilidad de la aplicación es inaceptable, si es entre 50 y 68 es marginal y si es entre 68 y 100 es aceptable. Por último, se realizarán unas preguntas conclusivas con el objetivo de recabar las opiniones generales del usuario. Las preguntas son las siguientes: 1. ¿Qué te ha parecido la aplicación? 2. ¿Consideras que ha mejorado respecto a la versión anterior?
7.3. Pruebas de aceptación 101 3. ¿Qué es lo que más te ha gustado de la aplicación? 4. ¿Y lo que menos? 5. ¿Has echado algo de menos en la aplicación? 6. ¿Y hay algo que te sobre? 7. ¿Tienes algo más que añadir? 7.3.2. Desarrollo de la evaluación Se realizó una evaluación con el doctor Iván De Rosende Caleiro el día 21 de mayo de 2024. Comenzó a las 17:00 y tuvo una duración de dos horas. Los resultados y comentarios obtenidos están disponibles en el apéndice H. Siete de las quince tareas fueron calificadas con un 1 sobre 7, de las ocho restantes, seis fueron calificadas con un 2 sobre 7, una con un 3 sobre 7 y una con un 4 sobre 7. Entre las tareas calificadas con un 2 sobre 7, se encontraban visualizar el vídeo creado, debido a problemas de compatibilidad con el navegador que estaba utilizando el evaluador (Mozilla) la ventana del vídeo aparecía descuadrada y desbordaba por la partes inferior y derecha de la pantalla, dificultando su visualización y el acceso al botón de maximizar. Otra de ellas era cambiar el tamaño del texto y de las fotos del libro generado, esto se debió a que el botón para abrir la ventana de configuración del tamaño se encuentra fijado en la parte superior de la vista y al bajar par ver mejor la imagen del libro se ocultaba dificultando su localización. Las tareas de generar libro de historia de vida y crear un pdf de Historia de Vida con recuerdos que tengan asociadas imágenes fueron calificadas con un 2 debido a que el texto de los botones que realizaban ambas acciones era ambiguo e inicialmente no le quedó muy claro que hacían. Similarmente al caso anterior, la tarea de generar un resumen de historia de vida recibió una calificación de 2 porque el texto del botón para acceder a la generación de resúmenes es ambiguo y no quedaba claro que tipo de resumen se iba a generar. Finalmente, la tarea de introducir un nuevo recuerdo y generar la emoción automáticamente también recibió una calificación de 2 debido al texto del botón para generar la emoción el cual no dejaba claro que se iba a generar. La tarea calificada con un 3 sobre 7 fue la de crear una sesión virtual, en primer lugar, en el formulario de creación de sesión, el tooltip asociado a la casilla para marcar una sesión como virtual no da una información muy clara del concepto de sesión virtual, además utiliza el término ChatBot el cual no es muy común y confundió al evaluador, por otro lado, la ventana para añadir recuerdos existentes a la sesión no se mostraba completa en la pantalla, requiriendo un scroll lateral el cual además era difícil de localizar y el evaluador consideró que el término “Acciones” de la tabla de recuerdos que marca si un recuerdo se va incluir en la sesión era poco intuitivo, prefiriendo algo más concreto como “Seleccionar”. La tarea calificada con un 4 sobre 7 fue la de probar la de iniciar una sesión virtual, si bien acceder a la sesión virtual fue una tarea simple, la secuencia de acciones necesarias para iniciar una sesión virtual resultaron bastante complejas con la información que proporciona la aplicación. El mensaje inicial del ChatBot es escueto y no deja claro que es lo que se debe hacer lo cual confundió al evaluador
108 Capítulo 8. Conclusiones y Trabajo Futuro Redes y Ampliación de Sistemas y Redes: Los conocimientos que adquirimos en esta asignatura sobre los protocolos HTTP y HTTPS, así como sobre todos los demás elementos necesarios para configurar el servidor han sido aplicados de forma directa en nuestro proyecto. Aplicaciones Web: En esta asignatura adquirimos habilidades en algunos lenguajes de programación que utilizamos en el desarrollo de nuestra aplicación, tales como HTML, CSS y JavaScript. Gestión de Proyectos Software y Metodologías de Desarrollo: En ella adquirimos habilidades en el uso de metodologías ágiles, como la que implementamos en nuestro proyecto, Kanban. Interfaces de Usuario: Esta asignatura nos proporciono conocimientos en patrones de diseño, interfaces y otros aspectos esenciales para concebir un diseño efectivo y atractivo como el de nuestra aplicación. Modelado de software: En esta asignatura aprendimos acerca de JPA (Java Persistence API), una librería de Java que actúa como mapeador ObjetoRelacional, es decir, se encarga de añadir los objetos del código a elementos en la BD. Esta librería guarda un gran parecido con Eloquent de PHP, que es la que utilizaba este proyecto para ese cometido. Gestión de información en la web: Asignatura en la que adquirimos conocimientos sobre manejo de APIs, lo que nos ayudó a implementar las utilizadas en nuestro proyecto. 8.1.2. Análisis de las herramientas Durante el desarrollo del proyecto, tomamos varias decisiones referentes a las herramientas y APIs que utilizaríamos. A continuación, analizaremos si, al finalizar el proyecto, consideramos que nuestras elecciones fueron acertadas y si, con el conocimiento que tenemos ahora, cambiaríamos alguna de estas decisiones: Azure Blob Storage: Azure Blob Storage ha sido fundamental para poder almacenar el multimedia de la aplicación de manera mucho mas eficiente a como lo hacía Recuérdame 2.0. Creemos que la implementación no fue demasiado fácil pero mereció la pena el resultado final por la eficiencia conseguida gracias a esta herramienta. Lenguaje de Azure AI: En general el resultado de esta herramienta es bastante bueno y se ajusta en gran medida a lo que buscábamos, no obstante su implementación fue compleja y tediosa, lo que hizo que no obtuviéramos la respuesta deseada. En un futuro investigaríamos la manera de obtener mediante esta API mejores respuestas pudiendo entrenarla. ChatGPT: En nuestra opinión ChatGPT ha sido una elección fantástica. Su implementación fue muy sencilla y con los últimos avances de OpenAI es mucho mas rápida y precisa. Sin embargo, nos hubiera gustado entrenarla con resúmenes validos de terapeutas y con análisis de emociones de los mismos.
8.2. Trabajo futuro 109 ChatBase: Consideramos que ChatBase ha sido un gran acierto, cumple perfectamente con su cometido tanto en el chat de ayuda como en el de sesiones virtuales. En el futuro seria interesante que pudiese mostrar imágenes y pudiera tener almacenados los recuerdos del usuario de manera automática. Google Cloud Text-to-Speech: Estamos muy contentos con esta elección ya que la voz generada es muy cálida y natural tal y como corroboro el terapeuta que evaluó nuestra aplicación. Se adapta perfectamente a las necesidades que teníamos para realizar la lectura de los recuerdos en voz alta y su uso es bastante sencillo. 8.1.3. Análisis de la metodología Como mencionamos al comienzo del proyecto, decidimos adoptar la metodología de desarrollo Kanban. En nuestra opinión, optar por esta metodología ha sido una decisión totalmente acertada. El equipo ya había trabajado con otras metodologías ágiles como Scrum y optar por Kanban siendo esta más flexible ha hecho que el desarrollo sea más dinámico. La implementación del tablero Kanban nos ha facilitado una coordinación muy efectiva, permitiéndonos tener claridad sobre las tareas a desarrollar, la información asociada a cada una, su estado a través de las diferentes columnas del tablero, y quién las estaba llevando a cabo. Asimismo, las políticas explícitas han sido otro pilar fundamental: nos han permitido conocer en todo momento la organización del proyecto y las normas que deben seguir los miembros del equipo. Gracias a esto, se evitaron conflictos y problemas derivados del desconocimiento de las normas. Consideramos que las retrospectivas nos han sido de gran utilidad. Gracias a estas reuniones, logramos identificar problemas que estaban limitando el avance del proyecto y pudimos solucionarlos lo antes posible. Uno de los problemas más representativos que detectamos gracias a las reuniones de retrospectiva fue que la memoria se entregaba siempre con una cantidad de fallos ortográficos significativa por lo que se decidió seguir una nueva norma y cada miembro del equipo tenía que revisar toda la memoria en busca de estos y otros fallos para hacer que estuviese lo más correcta posible. Gracias a estas reuniones también vimos que había un problema a la hora de revisar el código de las tareas, por lo que se creo una nueva columna en el tablero y se estableció que una vez finalizada la tarea, el desarrollador encargado la pasaría a revisión y reasignaría a otro desarrollador para que este la verificase. 8.2. Trabajo futuro Durante el desarrollo de Recuérdame 3.0, hubo tareas que no se completaron o surgieron ideas para mejorar y ampliar la herramienta que no pudieron llevarse a cabo debido a las restricciones de tiempo: Entrenamiento de las IA: A la hora de generar los resúmenes así como de-
110 Capítulo 8. Conclusiones y Trabajo Futuro tectar las emociones sería muy conveniente que estos resultados estén basados en textos y análisis ya realizados por los terapeutas para que los resultados sean mucho mas precisos. Mejorar las sesiones virtuales: Durante la sesiones virtuales seria un gran avance si además de realizar preguntas sobre los recuerdos el bot pudiese mostrar también el multimedia de ese recuerdo. Por otro lado se debe evitar que el usuario tenga que proporcionar el texto al chat-bot, siendo este el que ya supiera que recuerdos se van a trabajar. Resolver problemas de compatibilidad: En ciertos navegadores, se han identificado problemas de compatibilidad que no pudieron ser abordados en esta versión. Los detalles de estas pruebas se encuentran disponibles en la sección 7.2 Mejorar los vídeos: los vídeos son un punto que nos hubiera gustado mejorar, por lo que un punto muy bueno para continuar sería hacer que el vídeo estuviera sincronizado con el audio y que si no hay imágenes en el recuerdo se añadiesen imágenes relacionadas con el recuerdo automáticamente. También nos hubiera gustado implementar otra API (Speech-to-Text) para poder generar subtítulos a medida que se reproducía el vídeo. Implementar los cambios propuestos en la evaluación por el terapeuta: En la evaluación final (sección 7.3.2), se detallaron cambios, ideas y propuestas realizadas por el Dr. Iván que deben ser corregidos y analizados para futuras versiones. Mensajería entre terapeuta y cuidador: Añadir un sistema de mensajería interno en la aplicación para que el terapeuta pudiese comunicarse con el cuidador. Notificaciones: Implementar un sistema de notificaciones general que se encargase de notificar al usuario de distintos eventos dentro de la aplicación como una sesión, actividad, mensaje, o fin del procesamiento de los vídeos. Cambio de arquitectura: Evaluar las distintas tecnologías y analizar los beneficios de usar otros lenguajes de programación con más uso y más actuales para evitar problemas de compatibilidad futuros. PHP tiene muchas limitaciones ya que esta en desuso y muchas de las nuevas herramientas de inteligencia artificial no le dan soporte.
Chapter 9 Conclusions and Future Work In this section, the conclusions obtained after the completion of Recuérdame 3.0 are presented, analyzing its development and observing the differences between the start of the project and the final result. It also details the changes that could not be implemented, the pending work, and the ideas for future versions of the tool. 9.1. Conclusions In this section, the objectives set by the team at the beginning of the project will be discussed in depth and evaluated to see if they have been achieved. The tools, libraries, and APIs used in the project will also be analyzed, assessing their usefulness. Finally, the development methodology employed will be examined to determine if it has been effective and has improved project management. 9.1.1. Objective Analysis The main objective of our TFG was to improve and expand the Recuérdame 2.0 application, streamlining the process of managing and preparing reminiscence therapies for therapists, as well as allowing its use by caregivers to review the memories that make up the patients’ life histories. Thanks to the results of the evaluation we conducted with Dr. Iván de Rosende Caleiro (section 7.3), we can say that our main objective has been met, as the doctor’s feedback was very positive regarding the application and the agility it can provide to therapists and especially to caregivers, allowing them to conduct therapies without the therapist being present thanks to the ChatBot. At the beginning of the project, we also aimed to implement the improvements proposed in the evaluation with the therapists of Recuérdame 2.0. In this case, we can say that most of the changes and improvements suggested by the therapists have been addressed: Changes in memories: Several changes were requested regarding the names of the fields, which have been implemented to make them more descriptive 111
112 Chapter 9. Conclusions and Future Work without needing to resort to tooltips. Additionally, the stages now include the included age range. Changes in history books: The multimedia has been centered so that it does not appear on the left, and the option to change both the font size and the multimedia size for better viewing has been added. Also, clicking on the multimedia now opens it in a modal within the page instead of a new window. Changes in summaries: The automatically generated title has been modified to show the categories instead of the stages involved. The summary text has also been improved so that it does not need to show each memory on a separate line. Less common words have been reduced to make the summary easier to understand. Additionally, the summary options have been separated from the life history dropdown for better identification. Changes in PDF: The user’s gender has been removed as it is not relevant. Changes in videos: Unfortunately, we were unable to address the requested changes in the videos due to the limited time available, which included: •Adding subtitles to the generated Life History videos. •Incorporating notifications within the application to notify the therapist when a video has finished generating. Changes in session reports: The possibility to generate custom graphs has been added. Additionally, information about the center where the report was made has been included, and the "Observations" attribute and the therapist conducting the session have been made optional. Changes in diagnosis: A field with information about the center where the diagnosis is made has been included, the term "disease" has been changed to "diagnosis," a custom scale graph has been implemented, and the scales now have a tooltip for more information. Changes in related persons: The contact person used to appear with a star icon and has been replaced by the text "Contact," making it clearer. Additionally, the attributes "Occupation," "Address," "Surnames," and "Email" have been made optional, the husband/wife relationship has been added, and both email and occupation have been made optional. Changes in user information: The education level fields now better adapt to the users: "Primary Studies," "Higher Studies," "Vocational Training," and "No Studies." Additionally, the date field has been made optional, "registration date" has been changed to "admission date," and a caregiver can now be added when a new user is registered. Changes in caregivers: The "Kinship" field has been changed to "Type of relationship."
9.1. Conclusions 113 Changes in the calendar: The colors have been intensified and it is now possible to select the time in the activities as well. Changes in sessions: The date and time fields have been made optional, and more than one stage can be added to be addressed in a session. A new session option has been added to the navbar. Unfortunately, a reminder for these sessions could not be added; to view it, one must enter the calendar. On the other hand, we aimed to improve the functionality of the existing application to expand the tool’s possibilities with the goal of increasing its quality. Below, we will analyze whether we have managed to integrate the functionalities we set out to: Online therapy chatbot: We aimed to create a chatbot that would allow the user, with the help of their caregiver, to conduct reminiscence therapy sessions from home without the therapist being present. This goal has been partially achieved as the bot cannot display the images on which the questions are based, but it does ask specific questions about memories and can help conduct the therapy without the therapist. Messaging between therapist and patient: This functionality has not been implemented. Automatic emotion identification in memories: This functionality is fully integrated as the therapist can request the automatic generation of the emotion produced by the memory when creating or editing memories. Additionally, the degree of positivity is automatically generated. Incorporating learning in automatic summary generation: This goal was impossible to achieve due to existing restrictions in current APIs and available resources. Our final objective was to apply all the knowledge acquired during the degree and learn to combine them in a single project. Regarding the application of knowledge during the degree, we present below the subjects we applied during the project development: Databases: In this subject, we acquired the essential principles to create and manage relational databases, skills that we employed in the development of our own database. Networks and Advanced Systems and Networks: The knowledge we acquired in this subject about HTTP and HTTPS protocols, as well as all the other elements necessary to configure the server, were directly applied in our project. Web Applications: In this subject, we acquired skills in some programming languages that we used in the development of our application, such as HTML, CSS, and JavaScript.
114 Chapter 9. Conclusions and Future Work Software Project Management and Development Methodologies: In it, we acquired skills in the use of agile methodologies, like the one we implemented in our project, Kanban. User Interfaces: This subject provided us with knowledge in design patterns, interfaces, and other essential aspects to conceive an effective and attractive design like that of our application. Software Modeling: In this subject, we learned about JPA (Java Persistence API), a Java library that acts as an Object-Relational Mapper, meaning it maps code objects to database elements. This library is very similar to PHP’s Eloquent, which was used in this project for that purpose. Information Management on the Web: A subject where we acquired knowledge about API management, which helped us implement the ones used in our project. 9.1.2. Analysis of Tools During the project’s development, we made several decisions regarding the tools and APIs we would use. Below, we analyze whether we consider our choices to have been correct upon project completion and if, with the knowledge we have now, we would change any of these decisions: Azure Blob Storage: Azure Blob Storage has been fundamental in storing the application’s multimedia much more efficiently than Recuérdame 2.0 did. We believe the implementation was not too easy but the final result was worth it due to the efficiency achieved with this tool. Azure AI Language: In general, the results from this tool are quite good and align closely with what we were looking for. However, its implementation was complex and tedious, which meant we did not get the desired response. In the future, we would explore ways to get better responses from this API by training it. ChatGPT: In our opinion, ChatGPT has been a fantastic choice. Its implementation was very simple, and with the latest advances from OpenAI, it is much faster and more accurate. However, we would have liked to train it with valid summaries from therapists and their emotional analyses. ChatBase: We consider ChatBase to have been a great success, perfectly fulfilling its role in both the help chat and virtual sessions chat. In the future, it would be interesting if it could display images and automatically store the user’s memories. Google Cloud Text-to-Speech: We are very happy with this choice as the generated voice is very warm and natural, as confirmed by the therapist who evaluated our application. It perfectly meets our needs for reading memories aloud and is quite easy to use.
9.2. Future Work 115 9.1.3. Methodology Analysis As we mentioned at the beginning of the project, we decided to adopt the Kanban development methodology. In our opinion, choosing this methodology was the right decision. The team had already worked with other agile methodologies like Scrum, and opting for Kanban, being more flexible, made the development more dynamic. The implementation of the Kanban board provided us with very effective coordination, allowing us to have clarity about the tasks to be developed, the associated information, their status through the different columns of the board and who was carrying them out. Moreover, the explicit policies were another fundamental pillar: they allowed us to always know the organization of the project and the rules that team members had to follow. Thanks to this, conflicts and problems arising from the lack of knowledge of the rules were avoided. We believe that the retrospectives were very useful. Thanks to these meetings, we identified problems that were limiting the project’s progress and were able to solve them as soon as possible. One of the most representative problems we detected thanks to the retrospective meetings was that the report was always delivered with a significant number of spelling errors, so it was decided to follow a new rule where each team member had to review the entire report for these and other errors to make it as correct as possible. Thanks to these meetings, we also saw that there was a problem when reviewing the code of the tasks, so a new column was created on the board, and it was established that once the task was finished, the responsible developer would pass it to review and reassign it to another developer for verification. 9.2. Future Work During the development of Recuérdame 3.0, there were tasks that were not completed or ideas to improve and expand the tool that could not be carried out due to time constraints: Training the AI: When generating summaries and detecting emotions, it would be very convenient if these results were based on texts and analyses already performed by therapists to make the results much more accurate. Improving virtual sessions: During virtual sessions, it would be a great advance if, in addition to asking questions about memories, the bot could also display the multimedia of that memory. On the other hand, the user should not have to provide the text to the chatbot, as it should already know which memories will be worked on. Resolving compatibility issues: In certain browsers, compatibility issues have been identified that could not be addressed in this version. The details of these tests are available in section 7.2. Improving the videos: The videos are an area we would have liked to improve, so a good point to continue would be to synchronize the video with
116 Chapter 9. Conclusions and Future Work the audio and, if there are no images in the memory, automatically add related images. We would also have liked to implement another API (Speech-to-Text) to generate subtitles as the video plays. Implementing the changes proposed in the therapist’s evaluation: In the final evaluation (section 7.3.2), changes, ideas, and proposals made by Dr. Iván were detailed, which should be corrected and analyzed for future versions. Messaging between therapist and caregiver: Add an internal messaging system in the application for the therapist to communicate with the caregiver. Notifications: Implement a general notification system to notify the user of various events within the application such as a session, activity, message, or the end of video processing. Changing the architecture: Evaluate the different technologies and analyze the benefits of using more widely used and modern programming languages to avoid future compatibility issues. PHP has many limitations as it is becoming obsolete, and many new AI tools do not support it.
Cap´ ıtulo 10 Contribuciones Personales Cada uno de los participantes ha desempeñado un papel crucial en este proyecto, aportando una visión única y enriquecedora. A lo largo de este capítulo, analizaremos y reflexionaremos sobre nuestras contribuciones personales, y cómo estas han influido en el desarrollo de Recuérdame 3.0. 10.1. Bryan Eduardo Córdova Ascurra Al inicio del proyecto, llevé a cabo una investigación sobre LaTeX para adaptarme rápidamente a la herramienta e iniciar la memoria. De la misma manera, tuve que aprender sobre las tecnologías del proyecto, ya que PHP era un lenguaje que desconocía, al igual que el framework Laravel y Composer, una herramienta que gestiona las dependencias del proyecto en PHP. La primera contribución a la memoria fue redactar los objetivos de Recuérdame 3.0. Para ello, fue necesario informarme sobre el trabajo previo de Recuérdame 2.0 y el trabajo futuro pendiente. Una vez familiarizado con las herramientas y el contexto del proyecto, investigué sobre la enfermedad del Alzheimer, así como las terapias de reminiscencia e historias de vida. Tras recopilar toda la información necesaria, redacté las secciones 3.1, 3.2 y 3.3 del capítulo 3. Respecto a las IAGs, investigué varias herramientas con la cuales poder incorporar la funcionalidad Text-To-Speech al libro de historia, finalmente elegí la herramienta de Google Cloud TTS por lo que indagué sobre su documentación y como implementar dicha API, pude incorporar todo lo aprendido a la memoria en la sección 5.2. También me encargué de la visualización de las entrevistas proporcionadas por el proyecto CANTOR y su posterior transcripción de recuerdos. Fui el encargado de organizar las reuniones de retrospectiva que se realizaron durante nuestro TFG; la del 3 de Diciembre de 2023 y la del 17 de Marzo de 2024. Como había organizado esas reuniones, también me encargué de redactar sus respectivos apartados en la memoria. Respecto al código, una vez adquiridos los conocimientos necesarios de PHP y 117
124 Capítulo 10. Contribuciones Personales proporcionó la universidad, instalando todos los programas necesarios, así como descargando el proyecto y configurándolo con el entorno de producción. Tuve que realizar una configuración en los puertos de XAMPP para que la aplicación se lanzase en el puerto 80 y fuese accesible desde fuera de la máquina a través del protocolo http. Para el apartado de las nuevas IAs generativas que se iban a implementar en el proyecto, me dediqué a la investigación de las diferentes alternativas para abordar la nueva funcionalidad para generar automáticamente el sentimiento. Para ello, realicé un estudio de las diferentes herramientas disponibles y analicé cuáles eran los beneficios de cada una para finalmente decidirme por usar Azure en conjunto con ChatGPT. Ya que la curva de aprendizaje de Azure es bastante elevada, realicé un curso gracias a mi empresa para aprender el despliegue y gestión de recursos en Azure. Me encargué también de la implementación de esta nueva funcionalidad. También modifiqué la vista e implementé el botón para generar automáticamente estos dos campos, donde me ayudó Eduardo para conseguir una vista más adecuada. Como en el apartado de Azure que utilicé para la funcionalidad de los sentimientos aparecían bastantes referencias al ChatBot de Azure, también me informé un poco de cómo funcionaba y de cómo implementarlo para darle un poco más de información a Rubén en su implementación. Además, me encargué de realizar dos retrospectivas. La primera, la del 26 de diciembre de 2023, para la cual me inspiré en las retrospectivas que se realizaban en mi empresa para así aportar valor a mis compañeros, realizando una retrospectiva con un ejemplo real que se utiliza en el mundo laboral. Por último, ese día realicé también dos dinámicas enfocadas en mejorar la creatividad y la toma de decisiones del equipo. En la retrospectiva del 7 de abril de 2024, comenzamos con una actividad para romper el hielo. Después de investigar varios tipos de dinámicas, opté por la de las rosas y las espinas. La dinámica de ese día tenía como objetivo que el equipo se relajase y subir los ánimos ya que estábamos en la recta final del TFG. Durante este tiempo también me encargué de la redacción en la memoria de los cambios que había realizado, del apartado de la IA correspondiente a las emociones, así como de las retrospectivas que había realizado. También me encargué de instalar distintos sistemas Linux en máquinas virtuales con diferentes navegadores para realizar las pruebas de la aplicación y recopilar fallos en distintas plataformas y navegadores y el apartado de conclusiones y trabajo futuro. A su vez, me encargué de la redacción de esta parte en la memoria y de las instrucciones de puesta en marcha del proyecto, en la que también me ayudaron el resto del equipo. Una vez probada la aplicación antes de la reunión con el terapeuta, realicé distintas soluciones a bugs que se habían detectado desde el inicio del proyecto. Al añadir personas relacionadas nuevas sin apellidos o dirección directamente en un recuerdo aparecía un null en la tabla; al editar personas relacionadas que no tienen email aparecía el texto “Sin especificar” y no dejaba guardar los cambios por no ser esto un email válido; en el carrusel de los recuerdos, si se cambiaba el tamaño de las imágenes, su descripción no se cambiaba en todos los slides del carrusel; al crear PDF de historias de vida provocaba excepciones; cuando se añadía multimedia a las actividades a través del calendario, esta no se subía correctamente a Azure y tampoco usaba la ruta correcta para localizarlo, así como cambios en las vistas del
10.4. Samuel Rodríguez Gómez 125 calendario para que se mostrara el pointer en el modo lista. Por otro lado, probé distintos prompts para la generación de los resúmenes de vida según las indicaciones de Susana y Virgnia. A su vez, ayudé a Eduardo con un bug en los libros de historia de vida por el cual aun cambiando el tamaño de las imágenes este cambio no se aplicaba a las descripciones de todas las imágenes, sino solo de las imágenes que se encuentran en el slide del carrusel que se visualiza.
Bibliografía Y así, del mucho leer y del poco dormir, se le secó el celebro de manera que vino a perder el juicio. Miguel de Cervantes Saavedra Barquilla Blanco, C.,Díez García, P.,Marco Mulas López, S. yVerdú Rodríguez, E. Recuérdame: Aplicación de apoyo para el tratamiento de personas con problema de memoria mediante terapias basadas en reminiscencia. Trabajo de fin de grado, Universidad Complutense de Madrid, 2022. Dirigido por: Virginia Francisco Gilmartín y Susana Bautista Blasco. Brooke, J. Usability Evaluation In Industry. 1996. https://www.researchgate .net/publication/228593520_SUS_A_quick_and_dirty_usability_scale. Díez Sobrino, C.,Guerrero Sosa, E.,Prieto Campo, A.,Martínez González, P. yArias Rodríguez-Peña, S. Recuérdame 2.0: Mejorando una aplicación de apoyo para el tratamiento de personas con problemas de memoria mediante terapias basadas en reminiscencia. Trabajo de fin de grado, Universidad Complutense de Madrid, 2023. Dirigido por: Virginia Francisco Gilmartín y Susana Bautista Blasco. Granieri, M. ¿qué es la inteligencia artificial generativa? 2023. https://www.ob sbusiness.school/blog/que-es-la-inteligencia-artificial-generativa. Harley, A. Icon usability. Nielsen Norman Group, 2014. https://www.nngrou p.com/articles/icon-usability/. Justo-Henriques, S.,Carvalho, J.,Pérez-Sáez, E.,Neves, H.,Parola, V. yAlves-Apóstolo, J. Ensayo aleatorio de terapia de reminiscencia individual para adultos mayores con deterioro cognitivo: un análisis de respuesta de tres meses. Neurol, 2022. https://neurologia.com/articulo/2021322/esp. Kirk, M.,Rasmussen, K.,Overgaard, S. yBerntsen, D. Five weeks of immersive reminiscence therapy improves autobiographical memory in alzheimer’s disease. National Library of Medicine, 2019. https://pubmed.ncbi.nlm.nih. gov/30198380/. 127
128 BIBLIOGRAFÍA Lewis, J. R. ySauro, J. The Factor Structure of the System Usability Scale. Disponible en https://link.springer.com/chapter/10.1007/978-3-642-028 06-9_12.
Ap´ endice A Resultado dinámica 1 de Octubre de 2023 Si pudieras ser un personaje de ficción por un día, ¿quién serías? Eduardo: Hulk, porque sería muy fuerte y podría saltar bastante alto. Rubén: Flash, como puede volver al pasado podría hacer “ctrl+z” a mis errores. Samuel: Felicity de la serie “Arrow” la cual es una hacker o Cisco de la serie “The Flash” que también esta relacionado con los ordenadores y por que puede hackear todo lo que el desee. Steven: Batman, ya que no solo sería millonario, sino muy disciplinado y fuerte. ¿Qué es lo más loco que has hecho por diversión? Eduardo: salir de fiesta con desconocidos solo conociendo a una persona de todo el grupo. Rubén: seguir a Steven en busca de una cala durante el Verano a las 2 de la tarde en plena ola de calor. Samuel: las Fiestas del Escorial, cada año se lleva recuerdos muy locos. Steven: entrevistar a desconocidos en la calle, durante un viaje. ¿Cuál es tu talento oculto? Eduardo: tener un buen golpeo con las manos. Rubén: se me da muy bien retener información. Samuel: puedo resolver un cubo de Rubik bastante rápido. Steven: me gusta la música y se bastante a cerca de ese tema. ¿Prefieres los juegos de equipo o individuales? Eduardo: juegos en equipo ya que desde pequeño hacia natación en equipo. 129
130 Apéndice A. Resultado dinámica 1 de Octubre de 2023 Rubén: juegos individuales, no me gusta depender de otras personas. Samuel: juegos en equipo ya que jugar solo es más aburrido. Steven: juegos en equipo, como puede ser el fútbol. ¿Por qué estás más agradecido? Eduardo: por todas las decisiones que he tomado, ya que gracias a ellas estoy donde estoy. Rubén: estoy agradecido por el entorno que me rodea. Samuel: me siente agradecido por mi familia y amigos. Steven: agradecido por estar un nuevo día vivo. ¿Si pudieras cenar con un famoso, con quién sería y por qué? Eduardo: Iker Casillas, porque era el capitán en un equipo lleno de estrellas y siempre le respetaban. También con Nicola Tesla, ya que fue un gran inventor y un genio, creo poder aprender mucho de él. Rubén: Carlomagno, ya que quisiera saber como era gobernar un imperio tan grande. Samuel: Ibai, sería interesante poder conocerle y hablar más acerca de como se siente al ser alguien tan famoso a día de hoy. Jennifer Lawrance, porque me gusta los juegos del hambre. Steven: Jesús Lopez Polo, un influencer que admiro por la disciplina que tiene y por como visualiza la vida. ¿Cuál es tu mayor lección de vida hasta ahora y cómo te ha cambiado? Eduardo: La vida es un juego donde se gana y se pierde, son partidas y debemos jugarlas bien. Por lo tanto debemos saber tomar buenas decisiones. Rubén: No te preocupes por lo que esta mas allá. Vivo más relajado. Samuel: Disfrutar de la vida. Disfrutar del tiempo en familia y con amigos porque en cualquier momento nos pueden dejar. Steven: salir de mi zona de confort, viajar solo me ha hecho valorar lo que tengo y también darme cuenta que aún hay mucho por conocer. ¿Cuál es tu mayor debilidad y cómo la estás trabajando? Eduardo: el trato hacia las personas, lo practico cada día. Rubén: procrastinar, utilizo la técnica pomodoro 25-5. Samuel: timidez, la trabajo hablando con gente en el gimnasio.
131 Steven: disciplina, lo practico cada día por las mañanas. ¿Cuál es tu mayor deseo para el futuro y qué estás haciendo para lograrlo? Eduardo: acabar en Francia en una consultoría en una buena empresa. Enfocarme en la carrera para acabarla y buscar una oportunidad fuera. Rubén: abrir su propia compañía. Conocer más a fondo sobre las empresas. Samuel: dedicarse del todo a ciberseguridad y infraestructura. Practico cada día con ciberseguridad. Steven: llegar lo más alto posible dentro de una empresa, mejorando cada día. ¿Qué tipo de roles o responsabilidades te gustaría asumir en el equipo? Eduardo: no me importaría ocuparme de la memoria. Rubén: ocuparme de la memoria. Samuel: estoy más enfocado en programar antes que memoria. Steven: prefiero trabajar en ambos lados. ¿Cuál es tu estilo de trabajo preferido y cómo podemos adaptarnos para trabajar de manera más efectiva? Eduardo: poder saber que esta haciendo cada uno y como lo ha hecho, dividirnos en equipos de 2. Rubén: un estilo donde se tenga claro que va a hacer cada persona y podamos ayudarnos. Samuel: un estilo donde se desarrolle código por prioridad, realizando aquellos cambios más complicados por prioridad alta. Trabajar en memoria en los momentos que sea una prioridad. Steven: un estilo donde haya comunicación entre cada miembro para evitar problemas de malos entendimientos. ¿Cómo prefieres recibir feedback y cómo podemos asegurarnos de que todos nos sintamos cómodos compartiéndolo? Eduardo: feedback oral, con razonamientos y que se puede hacer para mejorar. Rubén: un feedback que este anotado y se pueda actualizar cada vez que haya algo que mejorar. Samuel: me gustaría recibir feedback de manera oral, deberíamos realizarlo de manera presencial y si no se puede pues en las reuniones semanales. Steven: feedback de manera oral durante las reuniones semanales.
Ap´ endice B Resultado dinámica 29 de Enero de 2024 Narración de la historia En el último año de la universidad, Lucas, un estudiante apasionado por la tecnología, poseía un ordenador llamado Orion y un móvil llamado Nova. Lo que Lucas no sabía era que, cuando él no estaba cerca, Orion y Nova cobraban vida y compartían sus experiencias del día. Un día, mientras Lucas se encontraba en una clase crucial, Orion notó que Nova estaba preocupado por la cantidad abrumadora de notificaciones y tareas pendientes. Decidieron unir sus fuerzas para ayudar a Lucas a sobrevivir al caos académico. Orion, con su velocidad de procesamiento, organizó las tareas y creó un plan de estudio eficiente, mientras Nova, con su conectividad móvil, buscaba recursos y materiales en línea. Juntos, orquestaron una estrategia para mantener a Lucas al tanto de todo sin que él notara su intervención. Durante las noches, cuando Lucas dormía, Orion y Nova intercambiaban anécdotas sobre la vida universitaria, compartiendo risas y momentos de solidaridad electrónica. A medida que el semestre avanzaba, Lucas notó que sus días se volvían más fluidos y menos estresantes. Atribuía su éxito académico a sus habilidades de organización mejoradas y a la eficiencia de sus dispositivos electrónicos. Sin sospechar nunca que Orion y Nova tuviesen vida propia y colaboraran para facilitar su vida, Lucas se graduó con éxito, agradecido por la inesperada pero valiosa alianza entre su ordenador y su móvil. Diálogos de la historia Diálogo entre Orion y Nova Escena: Dormitorio de Lucas. Orion está encendido en el escritorio, con su pantalla brillante iluminando la habitación. Nova yace en la mesa de noche, con su pantalla parpadeando con notificaciones. Lucas se encuentra ausente, asistiendo a una clase crucial en la universidad. Orion: (mientras procesa información) Buenas tardes, Nova. Veo que estás recibiendo una cantidad inusual de notificaciones. ¿Qué ha sucedido hoy, camarada? Nova: (animada) ¡Hola, Orion! ¡Oh, el caos, camarada! Lucas tiene tantas tareas pendientes que no sé por dónde empezar. ¡Parece que estamos en una misión 133