Logo Studenta

Reingenieria y rediseno de interfaz y funcionalidad de la plataforma web ayudrg

¡Este material tiene más páginas!

Vista previa del material en texto

UNIVERSIDAD NACIONAL DEL CENTRO 
DE LA PROVINCIA DE BUENOS AIRES 
FACULTAD DE CIENCIAS EXACTAS 
TANDIL, ARGENTINA 15 de jul de 2022 
 
REINGENIERÍA Y REDISEÑO DE 
INTERFAZ Y FUNCIONALIDAD DE LA 
PLATAFORMA WEB AYUD@RG 
 
 
 
Darío Fernández Torre y Santiago Wagner 
 
Directora: María Rosa Dos Reis 
Co-Director: Alfredo Teyseyre 
 
 
 
1 
Agradecimientos 
A nuestras familias, amigos, compañeros y docentes que, con su apoyo 
incondicional a lo largo de todos estos años, transformaron la carrera en un 
cúmulo de gratas experiencias que nos acompañarán de por vida. 
No solo queremos dedicarles este trabajo, sino recalcar la importancia que 
ha tenido su soporte para el desarrollo y finalización del mismo y decir que 
definitivamente cada elemento el mismo refleja una parte de cada uno de ellos. 
Darío y Santiago. 
 
 
2 
Índice 
Capítulo 1: Reingeniería De La Plataforma Web AYUD@RG 10 
1.1. Motivación 12 
1.2. Objetivo 14 
1.3. Estructura, Alcance y Limitaciones 16 
1.4. Organización del Informe 18 
Capítulo 2: Presentación De La Herramienta AYUD@RG 20 
2.1. Sistemas de donación 20 
2.1.1. Contexto 20 
2.1.2. Vínculo de los autores con el proyecto 23 
2.2. Aproximación a la problemática 25 
2.2.1. Análisis previos 25 
2.2.2. Profundizando sobre las problemáticas 26 
2.2.3. Recapitulación 30 
Capítulo 3: Solución Propuesta 32 
3.1. Atributos de calidad 32 
3.2. Planteo de solución y Diseño de arquitectura 33 
3.2.1. Beneficios 35 
3.3. Metodología de desarrollo 37 
3.3.1. Contexto social 37 
3.3.2. Métodos ágiles 39 
3.3.2.1. Kanban 40 
3.3.2.2. Herramientas 41 
Capítulo 4: Desarrollo 48 
4.1 Primeros pasos 48 
4.1.1. Uso de frameworks 48 
4.2 Presentación 50 
4.2.1. Estudios complementarios 50 
4.2.2. Importancia del diseño de las vistas 53 
4.2.3. Diseño de interfaces 54 
4.2.3.1. Enfoque para la presentación de conjuntos de datos 56 
4.2.3.2. Evaluación 57 
4.2.4. Implementación 60 
 
3 
4.2.4.1. Creación de la aplicación 60 
4.2.4.2. Entorno de desarrollo y despliegue 61 
4.2.4.3. Vistas comunes 65 
4.2.4.4. Vistas específicas y roles de los actores 72 
4.2.4.5. Flujos de donación y voluntariado 77 
4.2.4.6. Angular PWA 88 
4.3 Aplicación y lógica del negocio 91 
4.3.1. Primeros pasos 92 
4.3.2. Entorno de desarrollo 93 
4.3.3. Implementación de la API Rest 94 
4.3.4. Deployment de la API Rest 95 
4.4 Persistencia y base de datos 95 
4.4.1 Análisis y modelado de datos 96 
4.4.2 Implementación de la estructura de datos 98 
Capítulo 5: Pruebas Y Resultados 101 
5.1. Pruebas internas 102 
5.2. Testing Scope 102 
5.3. Testing del backend 103 
5.3.1. Testing Manual 103 
5.3.2. Testing Automático 105 
5.4. Testing del frontend 106 
5.4.1. Testing Manual 107 
5.4.2. Testing Automático 107 
5.5. Resultados 109 
5.5.1. Resultados del Backend 109 
5.5.2. Resultados del Frontend 110 
Capítulo 6: Conclusiones 114 
6.1. Generales 114 
6.2. Evaluaciones Personales 116 
6.3. Futuro 117 
Referencias 119 
 
 
 
4 
Índice De Figuras 
 
Fig. 1. Interacción entre los elementos de una PWA. 15 
Fig. 2. Esquema elemental que representa la arquitectura de tres niveles 16 
Fig. 3. Modelo de Cuatro Pilares propuesto por Regattieri, Gamberi y Manzini 24 
Fig. 4. Resultados de la resolución del caso utilizando decisión multicriterio 26 
Fig. 5. La ayuda numérica opcional 29 
Fig. 6. Al intentar realizar una operación no permitida se muestra este mensaje 30 
Fig. 7. Arquitectura de tres niveles planteada 34 
Fig. 8. Vista parcial de los tableros utilizados 42 
Fig. 9. Vista general de los tableros creados en la herramienta Trello 43 
Fig. 10. Vista del canal creado en Slack. 44 
Fig. 11. Representación gráfica de los elementos del proceso de esquematización 52 
Fig. 12. Disposición y variantes de los logotipos presentados como parte del testing 52 
Fig. 13. Distribución gráfica de los resultados elegidos 53 
Fig. 14. Árbol de vistas de navegación de la interfaz creados en Adobe XD 56 
Fig. 15. Prototipos de la interfaz de usuario realizados en Adobe XD 58 
Fig. 16. Vista principal de los archivos disponibles del proyecto de Angular 63 
Fig. 17. Código .yml del workflow configurado 64 
Fig. 18. Acción de Github en ejecución que permite el continuous deployment 65 
Fig. 19. Diseño de vistas para inicio de sesión y registro. 66 
Fig. 20. Vistas de inicio de sesión y registro de nuevos usuarios 67 
Fig. 21. Diseño de la vista del menú principal realizado en la fase de maquetado 68 
Fig. 22. Vista de la página de inicio para todos los usuarios de la plataforma 69 
Fig. 23. La vista de preguntas frecuentes 70 
Fig. 24. Página de contacto 71 
Fig. 25. Página estática con información sobre la Asociación Civil. 71 
Fig. 26. Vista de la maqueta final para las vistas del perfil de usuario y de edición de 
datos personales 73 
Fig. 27. Capturas de la implementación en Angular 73 
Fig. 28. En esta vista, un encargado puede crear campañas de donación 74 
Fig. 29. La lista de instituciones administrada por el encargado 75 
Fig. 30. Esta vista se utiliza para el alta de instituciones 75 
Fig. 31. En esta vista se puede apreciar el listado de categorías 76 
 
5 
Fig. 32. Esta vista posee las estadísticas de uso de la plataforma 76 
Fig. 33. Esta vista muestra todas las campañas de ayuda listadas 77 
Fig. 34. Demandas que solicita la institución para la campaña actual. 78 
Fig. 35. El usuario no dispone de recursos que coincidan con la categoría de los 
demandados 78 
Fig. 36. Vista de gestión de recursos para los usuarios. 79 
Fig. 37. Formulario dinámico de carga de recursos. 79 
Fig. 38. Formulario de donación para una demanda determinada. 80 
Fig. 39. Pantalla de éxito mostrada al usuario que inicia una donación. 80 
Fig. 40. Vista de detalles (usuario) para la donación del flujo ejemplificado. 81 
Fig. 41. Panel de donaciones entrantes para la institución gestionada. 81 
Fig. 42. Vista de detalles (encargado) 82 
Fig. 43. Vista de detalles (usuario) para la donación, ahora con estado ACEPTADA 83 
Fig. 44. Vista de detalles (usuario) para la donación, ahora con estado COMPLETA 83 
Fig. 45. Formulario en modal para la calificación de transacciones. 84 
Fig. 46. Panel de recursos de la institución (vista del rol encargado). 84 
Fig. 47. En la vista de donaciones se listan las donaciones realizadas por el usuario 85 
Fig. 48. Vista de detalles de la campaña con voluntariado habilitado. 86 
Fig. 49. Formulario en modal para la postulación a un voluntariado. 86 
Fig. 50. Se presentan los voluntariados en los que participa el usuario 87 
Fig. 51. Vista de detalles del voluntariado (encargado). 87 
Fig. 52. Formulario en modal para la carga de un registro del voluntariado. 88 
Fig. 53. Evolución del voluntariado plasmado en los registros de la vista de detalles. 88 
Fig. 54. Vista de Aplicación en el navegador Google Chrome. 91 
Fig. 55. Herramienta Web Spring Initializr 93 
Fig. 56. Flujo de control y datos de la aplicación. 94 
Fig. 57. Dashboard de Heroku correspondiente al deployment 95 
Fig. 58. Diagrama de clase correspondiente al modelo de la API REST anterior 96 
Fig. 59. Diagrama de clase correspondiente al modelo de la API REST actual 98 
Fig. 61. Tabla en MySQL resultante del mapeo del POJO de la Fig. 55. 99 
Fig. 62. Vista de la herramienta MySQL Workbench. 100 
Fig. 63. Respuesta obtenida tras una autenticación exitosa usando Postman. 104 
Fig. 64. Respuesta obtenida tras la creación de un recurso 105 
Fig. 65. Ejecución de los test de una de las colecciones de endpoints en Postman. 106 
Fig. 66. Secuencia de pasos ejecutados para la prueba de inicio de sesión 108 
 
6 
Fig. 67. Resultado de la herramienta Lighthouse de Google 111 
Fig. 68. Motivos del puntaje en relación a la optimización para motores de búsqueda. 111 
Fig. 69. Tiempos medidos utilizando Performance Insights. 113 
Fig. 70. Puntajes de Lighthouse para Mercadolibre y Facebookrespectivamente. 113 
 
 
 
7 
Índice De Tablas 
Tabla 1. Lista de requerimientos funcionales principales 97 
Tabla 2. Resultado general obtenido a partir de los casos de testing manuales. 109 
Tabla 3. Desglose de la severidad de los casos que no fueron exitosos durante el test 
manual. 109 
Tabla 4. Resultado general obtenido a partir de los casos de testing automático a partir 
de Postman. 110 
Tabla 5. Desglose de la severidad de los casos no exitosos detectados durante el testing 
automático. 110 
 
 
 
8 
Resumen 
En conjunto con la Asociación Civil Proyecto Koinonía, se realizó un 
proceso de revalorización de la herramienta solidaria llamada AYUD@RG, la cual 
consiste en una solución integral para las instituciones que vinculan la oferta y 
demanda de productos y servicios en el marco de proyectos organizacionales 
solidarios que involucren el proceso de donación. 
La herramienta fue desarrollada íntegramente por alumnos y docentes de 
la carrera Ingeniería de Sistemas con el aval institucional de la Facultad de 
Ciencias Exactas de la UNICEN a lo largo de su ciclo de vida, por lo que este aporte 
significativo continúa con el legado del desarrollo histórico gracias a la 
incorporación de tecnologías, mediante la puesta en marcha de un proceso basado 
en el planteo e instanciación de una nueva arquitectura. 
En particular se realizó un rediseño absoluto de su interfaz y el código que 
se ejecuta en el servidor para dar soporte a la funcionalidad presentada; utilizando 
Angular y Spring Boot respectivamente como pilares de la arquitectura, se 
garantizaron la viabilidad y el soporte a largo plazo del sistema mediante la 
utilización de tecnología de punta y ampliamente difundida en el mercado actual. 
 
 
 
 
9 
Acrónimos 
● API: Application Programming Interface 
● E2E: End to End. 
● FAQ: Frequently Asked Question 
● FCP: First Contentful Paint 
● OOP: Object Oriented Programming 
● ORM: Object Relational Mapping 
● PWA: Progressive Web App 
● REST: Representational State Transfer 
● SDP: Software Development Plan 
● SOC: Separation Of Concerns 
● ST: Sistema de Trazabilidad. 
● TICs: Tecnologías de la Información y la Comunicación 
● UX: User Experience 
● VCS: Version Control System 
● YAML: YAML Ain't Markup Language 
 
10 
Capítulo 1: Reingeniería De La 
Plataforma Web AYUD@RG 
Al observar por un instante a cualquier grupo de individuos en la sociedad 
actual, en la mayoría de los ámbitos posibles podrá notarse un rasgo distintivo: el 
contacto permanente con las tecnologías de la información, y en particular con sus 
dispositivos móviles personales, entre los cuales se encuentran los teléfonos 
celulares y tablets, que han mutado en computadoras de bolsillo con innumerables 
avances y campos de aplicación. Su uso ha aumentado de forma tal que, en 
términos temporales, el mismo representa el doble en relación al que los usuarios 
pasan en computadoras de escritorio, e incluso en múltiples países se trata de los 
únicos dispositivos a través de los cuales acceden a Internet (Google et al., s.f.). 
Este factor de absoluta cotidianeidad con respecto a la utilización de los 
apodados teléfonos inteligentes (por su traducción del inglés smartphone) está 
ligado al sinfín de aplicaciones móviles nativas y sitios web optimizados para su 
visualización en pantallas de formato reducido que el mercado tiene para ofrecer, 
transformándose estos últimos en herramientas fundamentales en la vida de los 
usuarios. Esto provoca en consecuencia que organizaciones de todo tipo decidan 
desarrollar aplicaciones para dispositivos móviles con el fin de adecuarse a esta 
tendencia e interactuar con su audiencia objetivo, y así finalmente reforzar el 
vínculo con la misma con el objetivo de alcanzar sus metas organizacionales de 
manera simple y elegante (Wetzler, 2020). 
Sin embargo, a pesar de que el desarrollo de aplicaciones nativas puede 
haber parecido una buena solución al masificarse su producción y facilitarse la 
distribución a través de las tiendas de aplicaciones que cada fabricante propone, 
los datos muestran que la popularidad de este camino se encuentra en declive 
debido a que lograr convencer al público de que instalen y utilicen aplicaciones 
nuevas que se encuentran a la deriva en el congestionado océano rojo (término 
propuesto por Chan Kim y Renée Mauborgne en 2004) de los portales de 
distribución, implica atravesar con detenimiento un engorroso proceso cuyo éxito 
 
11 
se reserva generalmente (debido a múltiples factores) a las aplicaciones más 
populares del momento (Ater, 2017, pp. 17-18). 
En este contexto surge el concepto de Aplicaciones Web Progresivas, 
abreviadas PWA por sus siglas del inglés Progressive Web Apps. Las mismas 
pueden definirse como una extensión de las aplicaciones web tradicionales, es 
decir, software que se ejecuta en el navegador. Estas podrían ubicarse en la 
intersección de los universos de las aplicaciones móviles nativas y los sistemas 
tradicionales con interfaces ofrecidos a través de sitios web. Las PWA extienden 
la noción de estos últimos ofreciendo ciertas características discernibles tales 
como: disponibilidad independiente de la conexión, tiempos de carga rápidos, 
notificaciones push, acceso desde la pantalla de inicio, y aspecto de aplicación 
nativa; todo esto haciendo énfasis en proveer una funcionalidad multiplataforma 
sencilla y transparente al usuario (Ater, 2017, pp. 19-20). 
Por otro lado, es prudente mencionar que no todos los nichos dentro del 
mundo de las aplicaciones se encuentran saturados o monopolizados (y como 
apreciación personal de los autores, probablemente la sociedad aún se encuentre 
lejos de ese punto), siendo uno de estos y de particular interés debido a su 
vinculación con el presente trabajo, el de las aplicaciones de carácter solidario. En 
este contexto se ubica la herramienta AYUD@RG1 perteneciente a la asociación 
civil Proyecto Koinonia, cuyo propósito es el de actuar como nexo informatizado 
coordinador y vinculante en campañas y redes de asistencia solidarias mediante 
tecnologías web (Armentano et. al. 2019). Dentro de esta plataforma, múltiples 
organizaciones participan con la posibilidad de armar sus propios proyectos de 
ayuda social y personalizar la demanda de recursos, mientras que por otro lado 
los usuarios interesados colaboran mediante donaciones de los elementos 
solicitados, los cuales pueden pertenecer a los conjuntos de productos o servicios. 
Resulta claro entonces que la evolución de las tendencias y tecnologías en 
el campo de las aplicaciones web posee un dinamismo significativo. Esto genera 
como inevitable consecuencia la necesidad de mantener el ritmo de actualización 
de los sistemas mediante iteraciones recurrentes para no quedar fuera del radar 
 
1 https://www.proyectokoinonia.org.ar/ayudarg/ 
 
12 
de los usuarios. He aquí donde el tiempo desde que fue concebida la aplicación 
inicialmente comienza a notarse al surgir problemas específicos e identificarse 
limitaciones que complican el uso diario de la plataforma, y por ende, reducen su 
atractivo (sobre todo para el público que aún no ha tenido contacto con la misma). 
De esta forma, considerando esta problemática, los autores detallan de 
manera clara en este informe el proceso necesario para lograr crear una 
arquitectura más adecuada a través de la reingeniería del sistema, con el objetivo 
de dar soporte a la herramienta mencionada a lo largo del tiempo y sin grandes 
complicaciones a la hora de extender su funcionalidad; utilizando algunos 
principios del diseño de interacción centrado en los usuarios, una metodologías 
de desarrollo ágil y tecnologías estándares en la industria. 
1.1. Motivación 
 Extendiendo un poco la dinámica socio - tecnológica introducida 
anteriormente, en la actualidad los usuarios se han habituado a las experiencias 
de aplicaciones ofrecidaspor los líderes de su respectivo segmento de mercado. 
Estos sistemas de gran complejidad pueden identificarse fácilmente porque 
presentan como características clave altos grados de optimización con respecto a 
su funcionalidad y tiempos de respuesta, así como también un nivel de usabilidad 
elevado. Los ejemplos habituales son las redes sociales como Facebook2 y Twitter3 
y plataformas de comercio electrónico entre las cuales destacan Mercadolibre4 y 
Amazon5; su existencia y éxito se debe probablemente a factores irrepetibles, pero 
los autores consideran que el diseño de soluciones que se asemejen a la 
experiencia ofrecida por estos referentes es una inteligente forma de aprovechar 
sus años de trayectoria e investigación, que sin duda logran reducir la curva de 
aprendizaje requerida para utilizar herramientas que presenten vistas 
equivalentes y familiares para los usuarios. 
 
2 https://www.facebook.com/ 
3 https://www.twitter.com/ 
4 https://www.mercadolibre.com/ 
5 https://www.amazon.com/ 
 
13 
Al relevar los elementos del sistema AYUD@RG que constituyen el 
conjunto de preocupaciones fundamentales de la disciplina interacción humano-
computadora (Hewett et. al., 1992) a ser considerados, se identifican aquellos 
causantes de ir en detrimento de los intereses del proyecto y consecuentemente 
de los actores involucrados. Mediante un proceso de revisión producto de 
reuniones con los responsables de la plataforma e internalización de algunos 
elementos presentados en Análisis Y Propuesta De Mejoras En La Usabilidad Del 
Sitio Web Ayud@rg (Barreiro, s.f.) se arribó a la conclusión de que existen 
múltiples problemáticas que dificultan de sobremanera la usabilidad general de la 
plataforma, y sobre todo para aquellos usuarios no bien versados en las 
capacidades técnicas requeridas para operarla. Las mismas son de vital 
importancia en el proceso de reformulación de los elementos clave del sistema. 
A su vez y por fuera de los elementos propios de la usabilidad, durante esta 
captura se plantean los elementos funcionales faltantes identificados por parte de 
los administradores a lo largo de los años en los que se utilizó la herramienta. Los 
mismos suponen un desafío en sí mismos debido al componente de 
heterogeneidad tecnológica y de enfoques de diseño utilizados para el desarrollo 
de sus diferentes componentes sobre los cuales se ahondará en el próximo 
capítulo. Y por otro lado se menciona como cambio fundamental la necesidad de 
lograr la adaptación de la plataforma a dispositivos móviles. 
La incorporación de este conglomerado de cambios representa un desafío 
de elevada complejidad, dado que la herramienta en sí no fue construida con la 
mayoría de estos puntos dentro de su umbral de planificación. Entonces, visto y 
considerando que se trata de un proyecto solidario activo y con origen puntual en 
la Facultad de Ciencias Exactas de la UNICEN, se hace evidente la posibilidad de 
replantear el desarrollo de la plataforma por completo con el fin de realizar un 
aporte de magnitud que revalorice el esfuerzo de los estudiantes y docentes 
involucrados en este proyecto a lo largo de los años, y a su vez garantice a la 
comunidad el acceso a una herramienta atractiva que potencie el impacto social 
generado hasta ahora. 
 
14 
1.2. Objetivo 
El objetivo principal de este trabajo final consiste en llevar a cabo un 
completo proceso de reingeniería y rediseño de la plataforma AYUD@RG, que 
posibilite en particular reafirmar las cuestiones elementales analizadas 
anteriormente como parte de su motivación. 
Ahora bien, la tarea principal implica en simultáneo, objetivos secundarios 
a ser resueltos mediante la incorporación de nuevas tecnologías y gracias a la 
utilización de herramientas de trabajo vinculadas al desarrollo web. Uno de ellos 
es el poder brindar un aumento drástico de la usabilidad a través del replanteo de 
las interfaces gráficas mediante la utilización de técnicas de Diseño de UX6. En 
paralelo y siguiendo con los últimos estándares de extensibilidad, se busca 
también permitir la incorporación de nuevas funcionalidades que aporten valor al 
uso cotidiano de la plataforma y garantizar la facilidad de poder modificarlas y 
mantenerlas en el tiempo. Y, por último, es deseable en simultáneo extender el 
alcance de la plataforma con el fin de lograr que el mismo sistema se adapte tanto 
a dispositivos de escritorio como móviles de manera dinámica y de forma 
transparente al usuario. 
La necesidad de llevar adelante el proceso mencionado deriva 
eventualmente en el desarrollo de un sistema que extiende enormemente sus 
capacidades previas a través de la implementación de una Aplicación Web 
Progresiva (de ahora en adelante PWA) dadas las virtudes mencionadas 
brevemente en el cuarto párrafo de esta introducción y cuyo comportamiento en 
relación al manejo de solicitudes y cómo sería la estructura de la misma una vez 
instanciada puede visualizarse en el esquema de la Fig. 1. 
 
 
 
 
6 El diseño de UX hace referencia al conjunto de aspectos de la interacción entre el usuario con 
todos los elementos del sistema organizacional. 
 
15 
 
Fig. 1. Interacción entre los elementos de una PWA. Un Service Worker se ejecuta en el 
navegador junto con la aplicación y se encarga de mostrar elementos cacheados y 
realizar las peticiones correspondientes a la red. 
Su resolución se propulsa a partir del planteo de la utilización de una 
arquitectura de tres niveles (IBM, s.f.), siendo éstos: Presentación, 
Aplicación/Lógica y Datos como puede verse en la Fig. 2. El primer nivel 
mencionado es el encargado de dar soporte a la PWA, por lo que la elección de un 
framework que facilite la construcción de aplicaciones web interactivas de manera 
estructurada es determinante. Este nivel se comunica directamente con el inferior 
a través de una API7, es decir “el conjunto de definiciones y protocolos que son 
necesarios para la construcción e integración del software de la aplicación” 
(RedHat, s.f.), la cual se implementa utilizando el estilo arquitectónico REST8 
(Fielding, 2000), e interactúa con un repositorio ubicado en el último nivel con el 
objetivo de brindar almacenamiento persistente. 
 
 
7 Interfaz de programación de aplicaciones, por su sigla del inglés, application programming 
interface. 
8 Transferencia de estado representacional, del inglés representational state transfer, hace 
referencia a un estilo de arquitectura de software. 
 
16 
 
Fig. 2. Esquema elemental que representa la arquitectura de tres niveles planteada para 
dar soporte al nuevo sistema y la interacción entre las correspondientes capas. 
1.3. Estructura, Alcance y Limitaciones 
 Resulta claro que más allá del conjunto de objetivos introducidos, y de las 
implicaciones de un proceso de reingeniería como el que se decide llevar a cabo, 
el mismo debe acotarse en algunos puntos concretos. De esta forma y repasando 
lo expuesto como objetivo, el proyecto final se enfoca principalmente en llevar 
adelante la realización de dos grandes grupos de tareas puntuales. Por un lado, se 
prioriza preservar la mecánica de uso de la plataforma enfocándose en revisar los 
procesos funcionales básicos, pero dejando planteada una arquitectura extensible 
que permita adicionar funcionalidades no contempladas sin grandes 
complicaciones. Y por otro lado también se busca mejorar significativamente su 
usabilidad mediante técnicas de diseño que permiten abordar las problemáticas 
previamente identificadas a posteriori por los actores responsables de su gestión. 
 En primera instancia, el desarrollo de este nuevo sistema contempla la 
mayor parte de las conocidas etapas del ciclo de desarrollo de software9: la 
planificación del mismo, la captura de requerimientos, e iteraciones dedicadas al 
diseño, instanciación y pruebas del mismo. Considerando esto resultará 
interesante explayarse sobre la metodología conel objetivo de recalcar que se 
plantea el desarrollo del sistema desde una perspectiva que posee gran influencia 
 
9 Ciclo de desarrollo de sistemas, de sus siglas en inglés por Systems Development Cycle. 
 
17 
ágil; y de esta forma se establece la realización de múltiples iteraciones en las 
cuales se ejecutan tareas heterogéneas en diferente grado con el fin de tener un 
producto funcional al final de cada una de ellas. 
Como puntapié del proyecto y en particular comenzando incluso tiempo 
antes de la etapa de desarrollo del presente trabajo final, se realizó un profundo 
análisis de la plataforma en su estado inicial como parte de la captura de 
requerimientos necesaria. Se especifica que este proceso comienza antes debido a 
los vínculos previos de los autores con los docentes encargados de la plataforma, 
tópico que será desarrollado puntualmente en el próximo capítulo. Como parte de 
este trabajo, nuevamente se realiza la identificación y especificación de los casos 
de uso que contemplarían la funcionalidad total de la plataforma, en pos de 
verificar las bases previas y extenderlas para cumplir con la funcionalidad 
esperada y acordada con los interesados del Proyecto Koinonía mediante la 
comunicación permanente. 
En relación al diseño se trata el relevamiento de tecnologías necesarias 
para lograr cubrir los requerimientos del software y materializar efectivamente la 
arquitectura planteada. Asimismo, y vinculado al concepto de mejora de la 
usabilidad definido como uno de los pilares el proyecto, se desprende la necesidad 
de reevaluar las debilidades presentes en la interfaz gráfica para rediseñar el 
frontend10 (Barreiro, s.f.), no solo orientando el desarrollo a mejorar la experiencia 
de los usuarios sino efectivamente centrándose en ellos al seleccionar las prácticas 
de diseño más apropiadas. Asimismo, es indispensable también determinar las 
estructuras de datos que permitan implementar las funcionalidades requeridas de 
manera eficiente, manteniendo un alto nivel de escalabilidad, extensibilidad, 
rendimiento e integridad de datos. 
Vinculado a la instanciación, el enfoque de los esfuerzos gira en torno al 
desarrollo del backend de la plataforma, siguiendo los principios del estilo 
 
10 Frontend y backend hacen referencia a la separación de intereses entre la capa de presentación 
y la de acceso a datos, respectivamente. 
 
18 
arquitectónico REST y de las correspondientes vistas vinculadas a la UI11 a ser 
mostrados en el frontend para interactuar con sus servicios. 
Y en relación a las pruebas a realizarse sobre el sistema puede decirse que 
las mismas se realizan como parte de cada iteración, conformando así “pruebas 
ágiles” que garanticen efectivamente la consistencia esperada de un producto 
funcional sobre la finalización de cada una. 
Habiendo planteado esto, es aquí donde ya puede delimitarse un horizonte 
de límites para este proyecto final en relación a su alcance dadas las etapas de 
desarrollo. Por un lado, las pruebas a realizar se demarcan en un entorno de 
recursos de hardware limitados pero suficientes para identificar las 
problemáticas que el uso cotidiano de la misma puede acarrear. Esto se debe en 
particular al estrecho vínculo que existe con la etapa de despliegue o deployment12 
posterior a la finalización del desarrollo de la nueva herramienta; puesto que si 
bien se instancia el sistema en el entorno mencionado (destinado y reservado a la 
ejecución de pruebas internas), la articulación en un ámbito de producción 
acarrearía sus respectivos seguimientos y conjuntos de pruebas que habrían de 
exceder el ámbito y propósito de este proyecto final. 
1.4. Organización del Informe 
Habiendo introducido propiamente los elementos que han de servir de guía 
para el lector al facilitar su grado de familiaridad con el proyecto de forma 
considerable, en esta sección se finaliza ese complemento dando una breve 
descripción de los contenidos a ser desarrollados a lo largo de cada uno de los 
capítulos subsiguientes. 
Ampliando la mayoría de los elementos introducidos en el presente 
capítulo, el Capítulo 2 hace especial énfasis en desarrollar las características 
históricas de la herramienta AYUD@RG, y la vinculación progresiva de los autores 
en el ecosistema de la misma mediante la investigación complementaria. También 
 
11 La interfaz de usuario o UI, por sus siglas del inglés User Interface, implica los medios a través 
de los cuales los usuarios se comunican con el sistema. 
12 Transferencia del producto desde el estado de desarrollo a un estado permanente. 
 
19 
se realiza una aproximación a la problemática mediante la definición y explicación 
de las ideas principales y sus ramificaciones, que surgen de la investigación 
realizada por los autores. 
Prosiguiendo con el Capítulo 3, se presenta al lector con la solución 
propuesta por los autores, referenciando a los elementos del proceso tenidos en 
cuenta para arribar a la misma y la justificación de por qué se considera que se 
trata de una buena propuesta evaluando el marco tecnológico actual y sus 
posibilidades. A modo de preámbulo de la instanciación del sistema de esta 
solución, también se desarrolla la elección de la metodología de desarrollo en 
cuestión, la relevancia del contexto mundial y sus implicaciones, y las 
herramientas necesarias para lograr llevarla a cabo de la manera más fluida y 
coordinada posible. 
Luego en el Capítulo 4 se desarrolla la implementación, producto de la 
utilización de la metodología descrita en el inmediato anterior, desglosando su 
composición en los dos grandes grupos que conforman el frontend y el backend de 
la plataforma. Para dar soporte a estos mismos se introducen a las tecnologías y 
herramientas utilizadas a lo largo del capítulo y la justificación de su elección 
frente a las posibles alternativas investigadas. 
Acercándose al final del trabajo, el Capítulo 5 presenta al lector con las 
pruebas realizadas, dificultades y errores encontrados al realizar las mismas junto 
con las acciones correctivas ejecutadas, y los resultados a los que se arribó con 
respecto al proceder durante esta etapa. 
Para dar cierre al informe se encuentra el Capítulo 6. En este se muestran 
las conclusiones finales que pudieron extraerse del análisis global del trabajo y 
que surgieron a partir de la experiencia obtenida de este proceso. También se 
realizan evaluaciones personales de los autores, y se brindan una lista de posibles 
mejoras sugeridas para incorporar al sistema en el futuro, un breve desarrollo de 
las mismas. 
Por último, se presenta la sección de Referencias que brinda la bibliografía 
de textos y publicaciones utilizadas en la confección del trabajo. 
 
20 
Capítulo 2: Presentación De La 
Herramienta AYUD@RG 
El presente capítulo se muestra al lector con el objetivo de introducirlo en 
materia del rol que cumple la herramienta sobre la cual se centra el trabajo a nivel 
social, y sobre el estado de la misma; entendiéndose y aplicándose esto tanto a una 
escala global en relación a tecnologías y el contexto, como así también desde un 
punto de vista local deteniéndose en los elementos circundantes a la plataforma. 
Para esto se realiza en primera instancia una descripción sobre los 
sistemas de donación y su grado de informatización en la actualidad, describiendo 
apropiadamente los conceptos necesarios en relación a estos para facilitar su 
comprensión. Mediante este enfoque se va desde lo general hacia lo particular 
prosiguiendo con el vínculo de los autores con la herramienta. 
De esta forma se facilita consecuentemente la comprensión de las 
problemáticas que se desean resolver y que desencadenan la decisión de realizar 
un proceso de reingeniería sobre la herramienta completa, el cual se profundiza 
en los capítulos restantes del informe. 
2.1. Sistemas de donación 
2.1.1. Contexto 
El concepto de donación, al que se hará referenciade ahora en adelante, 
implica un aporte particular cedido con el objetivo de dar impulso a iniciativas de 
cualquier tipo. Estos usuarios que dan origen al proceso saben de la relevancia y 
el impacto que este produce lo cual contribuye a la motivación original del mismo. 
Entre las razones primordiales que propician la realización de donaciones se 
encuentran el compromiso social de los individuos y la satisfacción personal. En 
el primer caso se reconoce la existencia de una problemática o carencia 
determinada del entorno que requiere una solución, y en el segundo resulta clave 
comprender que la garantía de estar ayudando a solucionar un problema 
 
21 
vinculado al ambiente en el que coexisten los individuos aporta sin lugar a dudas 
un gran regocijo al usuario donante (Blog de ACNUR, 2017). 
En relación a esto, y ampliando con respecto a su impacto, podría decirse 
que en los tiempos que corren las donaciones están posicionadas a nivel mundial 
como uno de los tipos de acciones humanitarias que ganan más adeptos día a día. 
Considerando su comprobada efectividad en materia de resolución de 
problemáticas sociales se infiere que la solidaridad, el altruismo y la empatía son 
valores vigentes y necesarios para el correcto desenvolvimiento de cualquier 
proceso de donación. 
El público en general realiza aportes benéficos en función de los recursos 
solicitados por las organizaciones (o simplemente porque están disponibles y se 
reconoce que existe una demanda permanente de los mismos), y en paralelo 
impulsados por su motivación (recordando la importancia de estos dado que la 
oferta es siempre insuficiente para satisfacer la demanda). Por otro lado, las 
donaciones organizacionales e individuales son un componente crítico de muchos 
proyectos, especialmente si los recursos que se les asignan o las contribuciones 
institucionales son insuficientes para cubrir las necesidades que los han motivado. 
Ahora bien, el dinamismo de los procesos de este estilo, en general no se 
encuentra soportado por sistemas circundantes en su gran mayoría con el fin de 
potenciar su alcance. De esta forma y como otro factor motivante entonces, surge 
la necesidad de plantear sistemas informáticos que permitan mejorar estas 
interacciones. Es por esto que las plataformas de donación en línea, aunque son 
un fenómeno reciente, se están volviendo más importantes para las 
organizaciones sin fines de lucro, lo que les permite llegar a una población objetivo 
más amplia de donantes a un costo relativamente bajo. Usar plataformas en línea 
para generar donaciones del público (a nivel local, nacional, e internacionalmente) 
se está convirtiendo en una forma popular y relativamente económica para 
muchas ONG para lograr sus objetivos organizacionales (Shier, 2012). 
Redondeando las ideas, básicamente todos los proyectos sociales tienen 
una cosa en común: requieren recursos específicos para implementarse de 
manera efectiva, lo que significa que la asignación y gestión adecuada de estos es 
 
22 
fundamental para que tengan éxito y alcancen sus objetivos; pero en simultáneo 
requerirían de sistemas eficientes y eficaces que den soporte a esta transferencia 
para lograr cumplir con sus objetivos fundacionales. 
En relación a estos sistemas se encuentra como un actor local fundamental 
la Asociación Civil Proyecto Koinonía. Ésta nace con el objetivo de facilitar la 
puesta en marcha de herramientas tecnológicas al servicio de la sociedad, 
permitiendo al tercer sector, formado por organizaciones no gubernamentales 
(ONG), conectar con otros sectores sociales en pos del bien mayor. Se posiciona en 
particular como una organización sin fines de lucro que promueve y brinda un 
conjunto de servicios a varios sectores de la sociedad (incluyendo individuos, 
estados, empresas y organizaciones no gubernamentales) basados en la 
implementación, configuración, aplicación, y uso de las tecnologías de la 
información y la comunicación (TICs), entre ellas, y sobre las cuales se trabajó en 
este proyecto específicamente, se encuentra la herramienta AYUD@RG. 
La herramienta en sí se presenta como una solución integral para trabajar 
en redes sociales de instituciones que conectan la oferta y la demanda de recursos 
(productos y/o servicios). De esta forma, el sistema constituye el puente entre las 
necesidades de la comunidad plasmadas a través de proyectos en las instituciones 
con vocación social y la ayuda brindada por la sociedad en general, la cual puede 
dirigirse hacia una campaña particular o simplemente ofrecerse a través del 
mismo sistema (Proyecto Koinonía, s.f.). 
Esta herramienta fue creada y mejorada íntegramente por estudiantes y 
profesores de la Facultad de Ciencias Exactas de la Universidad Nacional del 
Centro de la Provincia de Buenos Aires (UNICEN) y por supuesto ha contado a lo 
largo de su trayectoria con la ayuda de los miembros del propio Proyecto 
Koinonía. AYUD@RG apoya la toma de decisiones y permite una mejor gestión en 
red donde las organizaciones que forman parte del sistema arman sus propios 
proyectos de asistencia social y personalizan la demanda de recursos. La 
herramienta posibilita a través de la gestión del conocimiento de la red, 
administrar y asignar los recursos sociales de una manera más eficiente, colaborar 
 
23 
en la administración de proyectos y construir el conocimiento interorganizacional 
(Benito et. al, 2012). 
Por otro lado, debe tenerse en cuenta que, los servicios desarrollados por 
Proyecto Koinonía son expuestos a distintos niveles y experiencias en las ONGs 
que los utilizan, con realidades que presentan características comunes: atienden 
necesidades sociales y la demanda de recursos suele ser superior a la oferta 
(Illescas et. al., 2020). Debido a esto, resulta fundamental tener tantas métricas 
como sea posible para todos los elementos en el flujo de la realización de 
donaciones para ayudar en la mejora continua de los procesos solidarios, cuyas 
expectativas o necesidades no son idénticas para todas las instituciones. 
2.1.2. Vínculo de los autores con el proyecto 
Si bien la plataforma AYUD@RG comenzó a operar desde hace algunos 
años, se trata de un concepto establecido en la ciudad de Tandil de forma 
relativamente reciente, para el cual la cantidad de campañas comenzó a aumentar 
gradualmente en los últimos tiempos. Este crecimiento genera indefectiblemente 
la aparición de nuevas problemáticas a tratar, y dentro de este conjunto se 
identificó con anterioridad al presente trabajo la necesidad de implementar un 
Sistema de Trazabilidad13 de recursos efectivo; cuya motivación se originó debido 
a la determinación de que el historial de los recursos involucrados posee 
información valiosa para extender la visión general del uso de la plataforma 
AYUD@RG, tanto a nivel de funcionalidad como de flexibilidad para incorporar 
nuevas herramientas en el futuro. 
Los autores se involucraron con la plataforma AYUD@RG mediante la 
implementación del mencionado Sistema de Trazabilidad en el marco de la 
presentación del Trabajo Final de la cátedra Investigación Operativa. El mismo se 
creó para mantener la información relacionada al historial de donaciones de un 
recurso a lo largo de su vida en la plataforma. Dicha funcionalidad dejó sentadas 
las bases, en relación a la generación de datos, que permitirían obtener informes 
y métricas relacionadas al camino de los recursos que han sido ofrecidos y/o 
 
13 Sistema estructurado de tal forma que permite la reconstrucción total o parcial del ciclo de vida 
de un conjunto determinado de productos físicos (Bendaoud et. al., 2012). 
 
24 
donados en el futuro, y con respecto al impacto inmediato, poder mantener un 
seguimiento más detallado del estado de los mismos. 
El diseño de la API Rest utilizado en este trabajo preliminar serviría de base 
y puntapié para el nuevo sistema de la herramienta AYUD@RG. En casode desear 
profundizar más sobre el mismo, los detalles generales del desarrollo se 
encuentran publicados en los Anales del Congreso XXXIII ENDIO - XXXI EPIO 
VIRTUAL 2021. En este, los autores decidieron utilizar los cuatro pilares del 
framework de Sistemas de Trazabilidad propuesto por Gamberi, Manzini y 
Regattieri (2007) representados en la Figura 3, a modo de guía para el diseño. Para 
finalizar de dar soporte al ST se incorporaron endpoints específicos en la API 
diseñada a modo de herramientas de trazabilidad para recuperar información 
sobre los recursos y se planteó la utilización de códigos QR asociados al ID de cada 
recurso. 
 
Fig. 3. Modelo de Cuatro Pilares propuesto por Regattieri, Gamberi y Manzini (2007) 
aplicado a la trazabilidad de donaciones. 
En base a esto es prudente recalcar que “un ST permite no solo realizar un 
seguimiento tanto de los productos o servicios ofrecidos en las donaciones, sino 
también de las actividades involucradas en el proceso. (...) De esta forma se logra 
la trazabilidad efectiva en el sistema para la cadena de donaciones siempre que se 
respete el funcionamiento y la utilización de las herramientas disponibles por 
completo por parte de los actores responsables de interactuar con el ST. Siendo 
así, será de vital importancia procurar la correcta utilización por parte de los 
usuarios del ecosistema digital” (Fernández Torre y Wagner, 2021). Por lo que el 
 
25 
proceso a llevar a cabo tendría en cuenta esta premisa fundamental a la hora de 
establecer sus requerimientos y atributos de calidad asociados. 
2.2. Aproximación a la problemática 
Como se introdujo previamente en la sección de Motivación del Capítulo 1, 
debido al estado de la plataforma y la forma en la que fue concebida y perpetuada 
históricamente mediante diferentes aportes mixtos, se planteó la necesidad de 
llevar a cabo un completo proceso de reingeniería. Será conveniente entonces, 
comenzar a indagar más específicamente el estado que posee el sistema y los 
problemas que presenta con el fin de reforzar los conceptos que fomentan la 
realización de este proyecto. 
2.2.1. Análisis previos 
Los autores desde un primer momento comenzaron a familiarizarse con las 
problemáticas desde un rol de usuarios en la primera toma de contacto. Luego, y 
como se explicó anteriormente, prosiguieron interiorizándose desde los roles de 
desarrolladores internos al plantear el proceso que establecía el marco de trabajo, 
los métodos y el código y herramientas de software necesarias para implementar 
un sistema de trazabilidad. 
Al presentarse la oportunidad de perpetuar el trabajo previo en un nuevo 
sistema mediante el rediseño de la arquitectura del sistema, se procede 
necesariamente con análisis más profundos como parte de la planificación dentro 
del ciclo de vida del desarrollo. De este proceso en el que se tuvo la oportunidad 
de tomar contacto con múltiples materiales bibliográficos, en particular resulta 
del interés de los autores la publicación “Organización De Las Prioridades De La 
Herramienta AYUD@RG Por Medio De AHP” (Dos Reis et. al. 2018) en la cual se 
establece y detalla un orden de prioridades en línea con los fines institucionales y 
acorde a criterios preseleccionados de un conjunto de requerimientos (Fig. 4), 
cuyos juicios son orientados a lograr un crecimiento con el objetivo de que la 
herramienta AYUD@RG pueda crecer y funcionar de manera correcta al dar 
servicio al mayor número de ONGs posibles. 
 
26 
 
Fig. 4. Resultados de la resolución del caso utilizando decisión multicriterio para un 
conjunto de requerimientos propuestos para la plataforma. 
El mencionado trabajo concluye que la flexibilización de la herramienta, 
entendiendo esto como el aprovechamiento de las facilidades provistas por las 
diferentes redes sociales y un incremento del grado de amigabilidad de la 
plataforma para con los usuarios, son la prioridad máxima. Efectivamente resulta 
de vital importancia entonces considerar que la misma debería ser lo más intuitiva 
posible, objetivos que podrían lograrse mediante la simplificación de su uso y la 
ampliación del conjunto de usuarios que podrían llegar a utilizarla sin demasiadas 
dificultades. 
2.2.2. Profundizando sobre las problemáticas 
Los problemas que posee la versión actual de la plataforma (v1.8 ß) se 
deben principalmente a su arquitectura de tipo monolítica. Esta se gestó como un 
producto de requisitos no demasiado claros en las primeras fases del desarrollo 
de la herramienta debido a la necesidad de adaptarse a los procesos propios de 
distintas instituciones. A esto también se sumó el acople de porciones de software 
desarrollado por múltiples equipos diferentes, que trabajaron de manera 
independiente del resto y con una falta de eje central de diseño que respetar. Dicha 
arquitectura en términos generales posee varias ventajas en lo que respecta a 
desarrollo y deployment si se aplica de manera planificada y en proyectos no tan 
 
27 
abarcativos, estando esta última característica lejos del caso de AYUD@RG debido 
a su naturaleza de herramienta integral. 
En su estado actual, la plataforma posee una gran barrera de entrada para 
los nuevos equipos de desarrollo, dado que dispone de conjuntos de código 
heterogéneos. Esto, sumado a la falta de documentación y la inexistencia de un eje 
arquitectónico en términos de patrones de diseño, es posible haya sido el 
resultado de un desarrollo guiado por las necesidades particulares de cada 
institución en su momento, lo que obligó a cambiar los requisitos de la plataforma 
a medida que se avanzaba en el desarrollo. A su vez, la implementación de nuevas 
funcionalidades se dificulta debido a esto e, incluyendo también entre las causas, 
la falta de modularidad de las funciones debido a la naturaleza tightly-coupled14 
del código de la plataforma en la actualidad. Es en estos casos (de aplicaciones tan 
abarcativas) en el que se hace presente la necesidad de aplicar el concepto de 
separation of concerns15, dividiendo la aplicación en módulos o secciones 
específicas, cada una con una responsabilidad bien definida (Mili, 2004). 
De esta forma resulta evidente que mediante el empeño puesto en 
complacer las particularidades de los procesos de donación propios de distintas 
instituciones, se perdió control progresivamente sobre el hilo conductor del 
desarrollo de la plataforma, limitando su escalabilidad y performance. Si bien para 
un número reducido de instituciones puede parecer una práctica atractiva, a 
medida que ese número aumenta, se vuelve imposible que la plataforma soporte 
todos y cada uno de los detalles que cada institución posee sobre sus procesos de 
operación diaria. En algún momento, previo al desarrollo y durante la fase de 
diseño, es necesario consensuar en un proceso de donación estándar, lo 
suficientemente potente y definido, que permita a la plataforma servir como 
herramienta para los procesos de donación de todas las instituciones, debiendo 
ellas adaptarse al proceso propuesto por la plataforma (que surge del 
 
14 Este término en inglés hace referencia al elevado grado de acoplamiento y dependencia entre 
las rutinas del sistema. 
15 Se refiere a un principio de diseño orientado a la separación de un sistema informático en 
diferentes secciones orientadas al tratamiento de diferentes conjuntos de información. 
 
28 
relevamiento de todos los procesos y mediante el establecimiento de un proceso 
estándar) y no viceversa. 
Asimismo, se presentan también problemáticas relativas al modelado de 
los datos que dieron origen a una base de datos no normalizada, la cual dificulta el 
desarrollo de funcionalidades relativas a la trazabilidad de las donaciones, 
nuevamente mencionando que quizás haya sido producto de un contexto poco 
claro al inicio del proceso de desarrollo y que el mismo fue mutando a medida que 
se añadían nuevos requerimientos sinanalizar el impacto que los mismos tendrían 
a la hora de ser implementados. 
Por otro lado, si bien con respecto a los problemas vinculados a la 
funcionalidad es sabido que la herramienta no dispone del Sistema de 
Trazabilidad integrado debido a que el mismo depende necesariamente del código 
desarrollado por los autores con anterioridad; también será prudente recapitular 
algunos de los elementos identificados por quienes escriben como problemas 
relacionados a la usabilidad en la versión 1.8 ß de la herramienta AYUD@RG. Entre 
los elementos prioritarios relacionados se incluyen: 
● Baja usabilidad debido a fallas de UI: Si bien no se pretende hacer un 
análisis detallado de todos los elementos que actúan en detrimento de la 
usabilidad, es fundamental mencionar este apartado. En Análisis Y 
Propuesta De Mejoras En La Usabilidad Del Sitio Web Ayud@rg (Barreiro, 
s.f.) se realizaron pruebas de usabilidad y se concluyó en términos 
generales que aún se requiere trabajo de adecuación de la interfaz si se 
desea que cualquier usuario pueda utilizar la plataforma. 
● Diseño no adaptable: De la mano con las fallas en la interfaz de usuario y 
también en perjuicio de la experiencia de usuario, se encontró una 
aplicación web que no adapta su interfaz a los múltiples tamaños de 
pantalla existentes. Considerando que más del 90% de los usuarios suele 
acceder a internet a través de dispositivos móviles (AIMC, 2021), el hecho 
de tener un sitio prácticamente inutilizable desde este tipo de dispositivos 
le resta un enorme valor a la plataforma. 
 
29 
● Flujo de donación complejo: Si bien existen elementos que intentan dar 
una pauta de cuál debería ser el proceso a seguir (como la ayuda numérica 
mostrada en la Figura 5), no queda del todo claro para los usuarios menos 
experimentados cuales son los pasos a seguir en caso de querer realizar un 
aporte de cualquier tipo. 
 
Fig. 5. La ayuda numérica opcional permite definir la secuencia de pasos a seguir para 
algunas de las secciones de la plataforma. Si bien es un enfoque interesante, se deben 
buscar prácticas menos invasivas para mejorar la experiencia. 
● Errores frecuentes: En ocasiones al utilizar la plataforma de manera 
normal se presentan errores a través de toasts16 que resultan por lo general 
poco amigables y confusos (ver ejemplo de la Figura 6), y que suelen 
tratarse con redirecciones más amigables hacia la acción que el usuario 
desea. Por otro lado, también se identifican errores de tipo lógico en la 
funcionalidad del sistema que van en detrimento de la experiencia de los 
usuarios poco experimentados con gran probabilidad de provocar 
lamentablemente que estos pierdan el interés. 
 
16 Pequeño mensaje contenido en un cuadro que desaparece por sí solo después de unos segundos. 
Es un reporte sencillo que informa al usuario de una situación específica y no le impide continuar 
utilizando la aplicación. 
 
30 
 
Fig. 6. Al intentar realizar una operación no permitida se muestra este mensaje, cuando 
en realidad el usuario no debería llegar a esa instancia en el uso normal. 
● Navegación confusa: Esto está estrechamente ligado a cuestiones de la 
planificación de la interfaz, y se debe a la presencia o ausencia de 
componentes específicos de la misma. Dos ejemplos claros y puntuales son 
los botones de llamado a la acción principal17 de la vista escondidos o 
inexistentes en las diferentes vistas; y la poca delimitación que existen 
entre los roles de los usuarios con respecto a la interfaz visible, es decir, un 
usuario puede ver páginas y componentes que no debería considerando su 
rol (por ejemplo, elementos pensados para administración que son visibles 
para usuarios comunes). 
Con esto en vista, la solución de los autores, qué será analizada en más 
profundidad en el capítulo siguiente, buscará atacar todos los mencionados 
problemas partiendo de un extenso análisis de la funcionalidad a implementar, 
definiendo un scope de desarrollo claro y partiendo de un modelado de datos que 
permita, de manera óptima y eficiente, llevar a cabo la construcción de la 
plataforma deseada y lograr que contenga el conjunto funcionalidades planteadas, 
mediante la implementación de código escalable y extensible. 
2.2.3. Recapitulación 
Considerando el enorme grado de heterogeneidad histórico de la 
plataforma AYUD@RG de Proyecto Koinonía, y reconociendo que los avances en 
el área de la informatización de la ayuda social alcanzados por la mencionada 
Asociación Civil en conjunto con los alumnos y docentes de la facultad son de un 
inmenso valor; se desea preservar mecánica, funcionalidad y practicidad del 
 
17 El diseño orientado al llamado a las acciones (CTA) suele utilizarse en aplicaciones comerciales, 
pero sus técnicas son efectivas cuando se desea crear software accesible. 
 
31 
sistema para lograr continuar con su operatoria de forma ininterrumpida y 
conseguir en paralelo homogeneizar la base de código. 
Teniendo en cuenta entonces, la existencia de un elevado nivel de 
complejidad en algunos de los procesos vigentes en la versión 1.8 ß, tanto desde 
el punto de vista del aporte histórico con respecto a su conformación y desarrollo 
y el procesamiento de datos que realizan, como así también desde el de los 
usuarios que interactuaban con el sistema a diario; el problema principal radica 
en lograr poder perpetuar la mayor parte de la funcionalidad posible realizando 
en paralelo un balance sobre los elementos que deben simplificarse y/o adecuarse 
al implementar la nueva arquitectura. Sumado a esto, debe recordarse que el 
trabajo preliminar sobre el Sistema de Trazabilidad no se encuentra integrado en 
la Versión 1.8 ß (última versión con arquitectura previa a la planteada en este 
trabajo), pero resulta indispensable contar con el mismo por los motivos 
expuestos y detallados en aquel trabajo preliminar. 
Por último, englobando los elementos que consolidan esta problemática, se 
encuentra la cuestión de la factibilidad del proyecto, es decir si el conjunto de 
tareas a proponer es viable de acuerdo al tiempo y los recursos de los cuales 
disponen los autores en relación al marco académico en el que se realiza este 
proyecto. Resulta ligeramente evidente concluir que, a pesar de que la factibilidad 
se encuentra dada en parte debido a la delimitación del alcance del proyecto 
establecida inicialmente, su existencia no deja de ser menos relevante debido a la 
imprevisibilidad inherente a las estimaciones y la naturaleza del contexto en el 
que finalmente se irá desarrollando el trabajo; siendo estas cuestiones abordadas 
en los capítulos siguientes con más detalle. 
 
32 
Capítulo 3: Solución Propuesta 
Incentivados por el conglomerado de motivos expuestos en relación al 
estado actual del sistema y con el propósito de preservar las mecánicas y nexos 
adyacentes y a su vez optimizarlos, se decide realizar un proceso de reingeniería 
sobre el sistema tal y como se introdujo previamente. Este proceso se caracteriza 
primordialmente por las decisiones de implementar una aplicación web 
totalmente renovada y crear un backend robusto y escalable. 
En particular en este capítulo se describe la solución propuesta por los 
autores haciendo énfasis en particular en su descripción arquitectónica en 
conjunto con sus beneficios para la cual se desarrollarán las bandas 
correspondientes a la misma en conjunto. Y por otro lado y de igual relevancia 
para la conformación de la solución, se plantea la metodología a utilizar en 
relación con el contexto en el que se desenvuelve el equipo de trabajo. 
3.1. Atributos de calidad 
Uno de los conceptos más importantes en materia de arquitectura de 
software, es el de atributo de calidad. En base a las necesidades del proyecto y a 
las problemáticas presentes en la solución actual, se definen una serie de atributos 
de calidad que sirven como eje primordial a la solución propuesta quebusca, 
desde la arquitectura de software, subsanar las limitaciones que impactan 
negativamente a la aplicación en su estado actual. Los atributos de calidad 
seleccionados a tener en cuenta son los siguientes: 
● Escalabilidad 
● Extensibilidad 
● Inclusión 
● Usabilidad 
● Modularidad 
● Rendimiento 
 
 
33 
3.2. Planteo de solución y Diseño de arquitectura 
La arquitectura de software representa el primer conjunto de decisiones 
de diseño del sistema. Estas primeras decisiones son las más difíciles de corregir 
y las más difíciles de cambiar más adelante en el proceso de desarrollo, y tienen 
los efectos de mayor alcance. Según Bass et. al. (2003), desde una perspectiva 
técnica existen fundamentalmente tres razones que contribuyen a la importancia 
de la arquitectura de software: 
● Comunicación entre las partes interesadas: La arquitectura de software 
representa una abstracción común de un sistema que la mayoría (sino 
todas) de las partes interesadas del sistema pueden usar como base para el 
entendimiento mutuo, la negociación, el consenso y la comunicación. 
● Primeras decisiones de diseño: La arquitectura de software manifiesta las 
decisiones de diseño más tempranas sobre un sistema, y estos enlaces 
tempranos tienen un peso significativo con respecto a su impacto 
individual en relación al desarrollo restante del sistema, su 
implementación y el mantenimiento durante su vida útil. También es el 
punto más temprano en el que se pueden analizar las decisiones de diseño 
que rigen el sistema que se va a construir. 
● Abstracción transferible de un sistema: La arquitectura de software 
constituye un modelo relativamente pequeño y comprensible de cómo se 
estructura un sistema y cómo funcionan juntos sus elementos, y este 
modelo es transferible entre sistemas. En particular, se puede aplicar a 
otros sistemas que exhiban atributos de calidad y requisitos funcionales 
similares y puede promover la reutilización a gran escala. 
 Tal y como se introdujo al inicio de este informe, durante la confección del 
plan de trabajo se planteó que el desarrollo de la solución sería resuelto utilizando 
una arquitectura de tres niveles: Presentación, Aplicación/Lógica y Datos (Fig. 7). 
La misma es simple de entender y utilizar, con una clara separación de intereses 
(SoC). Debido a esto último, la capacidad de realizar pruebas se simplifica 
logrando que cada capa sea testeable, mantenible y fácil de actualizar. 
 
34 
 
Fig. 7. Arquitectura de tres niveles planteada para dar soporte al nuevo sistema e 
interacción entre sus elementos. 
La principal ventaja de una arquitectura de tres niveles, es la 
independencia de los mismos, permitiendo su desarrollo, modificación y testing 
en paralelo, pudiendo, potencialmente, ser montados en infraestructuras también 
independientes. Como se verá luego, la sección 3.2.1 ahondará con más detalle 
sobre los beneficios que posee esta arquitectura, pero es necesario ahora describir 
cada una de estas bandas en relación a la solución a instanciar. 
Nivel de presentación 
El nivel de presentación (presentation tier) se compone de la interfaz de 
usuario y lo relacionado a la interacción del mismo con la aplicación. La aplicación 
web a desarrollar en el framework Angular como parte del presente trabajo, 
representa a este nivel. 
Nivel de Aplicación 
El nivel de aplicación (application tier) posee la lógica del negocio y es el 
corazón de la aplicación. Cuenta con el conjunto de reglas del negocio y es el 
encargado de procesar la información provista por el nivel de presentación, 
pudiendo comunicarse también, con el nivel de persistencia de datos. La API Rest 
 
35 
a desarrollar en el framework Spring Boot cumple el rol de nivel de aplicación en 
la arquitectura de 3 niveles planteada. 
Nivel de persistencia de datos 
Por último, el nivel de persistencia de datos (data tier) es el encargado de 
guardar los datos de manera persistente. No existe comunicación directa entre 
este nivel y el de presentación como puede apreciarse en el diagrama expuesto. 
Toda comunicación se lleva a cabo a través del nivel de aplicación. En el presente 
caso, este nivel se implementa utilizando MySQL, un sistema de gestión de base de 
datos relacionales desarrollado por Oracle y que en la actualidad es considerado 
como uno de los sistemas de base de datos de código abierto más populares del 
mundo en el contexto de las aplicaciones web. 
3.2.1. Beneficios 
Con respecto al primer atributo de calidad mencionado en la sección 3.1 
del presente capítulo, la escalabilidad, se plantea en la dimensión geográfica del 
alcance que posee el sistema. El término hace referencia a la cualidad del sistema 
resultante para mantener la eficacia cuando se expande de un área pequeña a una 
región más grande; para este caso es deseable entonces lograr que la plataforma 
pueda expandir su operatoria de Tandil hacia más ciudades sin que esto signifique 
un impacto en el rendimiento como sucedería con la plataforma en su estado 
actual. 
Prosiguiendo, la extensibilidad es una medida de la capacidad de un 
sistema para extenderse y la cantidad de esfuerzo necesario para hacerlo 
mediante el crecimiento asociado al agregar nuevas características en el futuro sin 
interrumpir las operaciones actuales. Las extensiones en particular se pueden 
realizar agregando una nueva funcionalidad o modificando la funcionalidad 
actual, y la solución propuesta permite añadir mejoras sin comprometer la 
funcionalidad actual del sistema, lo cual se encuentra en congruencia con una de 
las características históricas de la plataforma actual, que permitía a grupos de 
alumnos participar en el desarrollo de nuevas funcionalidades para sumar al 
proyecto AYUD@RG. Sin embargo, dada la naturaleza monolítica de la 
 
36 
arquitectura presente en la plataforma, el añadir nuevas características 
funcionales se vuelve dificultoso. 
Por otro lado, la inclusión como atributo de calidad se relaciona 
estrechamente con el concepto de “diversidad” en relación a los diferentes tipos 
de usuarios, y consecuentemente intentar garantizar que todos estos participen 
en la mayor medida posible. Esto también se conoce como “diseño universal”, y si 
bien este concepto cubre una amplia gama de temas, para este proyecto en 
particular y dadas las expectativas acordes a un sistema de carácter solidario, se 
tienen en cuenta los aspectos necesarios para la orientación de la plataforma 
hacia: personas con bajo nivel de alfabetización, personas con conexiones de bajo 
ancho de banda o que utilizan tecnologías más antiguas, usuarios nuevos y poco 
frecuentes, y, usuarios de dispositivos móviles. 
Continuando, se reconoce a la usabilidad, entendiendo esta como el 
proceso de desarrollo de un sistema efectivo, eficiente y agradable de usar; 
consecuentemente el diseño de la experiencia del usuario (UX) forma parte de la 
usabilidad. Esto incluye por lo general aspectos amplios que afectan a todos los 
usuarios y no afectan en particular a los grupos de personas con discapacidades, y 
si bien la investigación y la práctica de la usabilidad con frecuencia no cumplen 
adecuadamente con los requisitos de las personas con discapacidades, los autores 
decidieron hacer énfasis en especial sobre un desarrollo de "usabilidad accesible" 
teniendo en cuenta las prácticas recomendadas en WCAG 2, en contraste con la 
poco clara UX/UI presente en la plataforma actual. 
Cómo se mencionó en la sección 3.2, la arquitectura de tres niveles permite 
alcanzar un alto grado de modularidad separando el diseño de la solución en tres 
bandas (o tiers): Presentación, Aplicación/Lógica de Negocios y Persistencia de 
datos. Es la misma naturaleza loose-coupling de esta arquitectura que permite 
contar con módulos bien definidos, cada uno con su conjunto determinado de 
responsabilidades. Como consecuencia de la elevada modularidad de la soluciónpropuesta, se hacen presentes otras características que también hacen a la calidad 
del sistema: 
● Testeabilidad: cada módulo o banda puede ser testeado por separado. 
 
37 
● Modificabilidad: los cambios a nivel de módulo no impactan en el resto 
siempre y cuando la comunicación entre módulos siga el mismo formato. 
3.3. Metodología de desarrollo 
Según Seguetech Technologies (2015), seguir una metodología lo mejor 
definida posible permite que un proyecto produzca mejores estimaciones, 
entregue sistemas sólidos, mantenga informado a los participantes interesados, 
establezca una imagen clara del trabajo por delante y detecte las dificultades 
antes, dando el tiempo adecuado para realizar mejoras. 
La metodología de desarrollo a utilizar para llevar a cabo este trabajo final 
forma parte de la solución y posee un nivel de relevancia equivalente a la 
arquitectura de software que acompaña la propuesta. 
Con todo esto en mente es fundamental la elección de una metodología que 
se adecúe a la dinámica de trabajo de los miembros que conforman el equipo, es 
decir los autores, y que pondere de forma apropiada su viabilidad en relación con 
sus capacidades y el contexto en el que se encuentran. 
3.3.1. Contexto social 
Miles de desarrolladores de software comenzaron a trabajar desde casa 
cuando el nuevo coronavirus tomó por absoluta sorpresa a todo el planeta a 
principios de 2020. La mayoría se vio obligada a hacer esto con poca antelación, 
en circunstancias difíciles y condiciones estresantes; y considerando lo inusual 
que es trabajar desde casa en esta ocasión, en gran cantidad de casos la 
problemática se cierne en que: en lugar de trabajar desde una oficina en casa o una 
ubicación remota propiamente equipada, las áreas designadas terminaron 
recayendo en los dormitorios y mesas de comedores. 
Los grandes conjuntos determinados por estudiantes, investigadores y 
desarrolladores de software por igual se encontraron en circunstancias inusuales 
como resultado de este brote de COVID-19. El estrés, la soledad, las limitaciones 
de viaje, el cierre de empresas y la falta de instalaciones educativas y de 
acondicionamiento físico tuvieron un impacto real en múltiples áreas. Trabajar 
 
38 
desde casa en estas circunstancias fue fundamentalmente diferente a la forma 
previa en la que era concebido el trabajo hogareño. 
En Pandemic programming (Ralph et. al., 2020) se da a conocer la primera 
investigación a gran escala sobre cómo el trabajar desde casa durante una 
pandemia afectó a los conjuntos mencionados, mediante una serie de numerosas 
contribuciones significativas entre las cuales se presenta: 
● evidencia de que la productividad y el bienestar disminuyeron; 
● evidencia de que la productividad y el bienestar general están 
estrechamente relacionados; 
● y un modelo que explica y predice los efectos de la pandemia en la 
productividad y bienestar. 
 Resulta claro entonces que los autores de este informe se vieron afectados 
de forma análoga por esta situación, por lo que encontrar métodos que puedan 
integrarse a la metodología de desarrollo y a su vez permitan coordinar el trabajo 
y comunicarse de forma remota considerando que ninguno es nativo de la ciudad 
en donde se encuentra la facultad, es de importancia superlativa para lograr 
mantener un nivel de productividad aceptable en el contexto mencionado. 
Considerando entonces que es necesario instanciar un entorno en el cual 
se pueda realizar un trabajo de esta magnitud a distancia de la manera más fluida 
posible y considerando la necesidad de comunicarse para llevar a cabo la 
organización del mismo y propiciar el intercambio de ideas permanente, se decide 
optar por los métodos de tipo ágil debido a sus características que serán 
profundizadas en la próxima sección. En particular, Nevo y Chengalur-Smith 
(2011) encuentran que al usar herramientas de TICs como la mensajería 
instantánea, las videoconferencias y la voz sobre IP, es probable que los miembros 
del equipo aumenten su capacidad para practicar métodos ágiles; y sus resultados 
sugieren que el uso de este tipo de métodos integrados con las mencionadas 
tecnologías impactan positivamente sobre la comunicación del equipo, y por lo 
tanto no solo sería factible, sino que también podría ser valioso para los equipos 
virtuales de desarrollo de software, como el encargado de llevar a cabo este 
proceso de reingeniería. 
 
39 
3.3.2. Métodos ágiles 
Con lo dicho en vista, es prudente mencionar entonces que antes de iniciar 
un proyecto de software, se considera fundamental determinar las tareas a 
realizar y administrar adecuadamente la asignación de estas entre las personas 
involucradas. Por lo tanto, la planificación es importante ya que da como resultado 
un desarrollo de software eficaz (Thakur, s.f.). Por otra parte, la planificación 
ayuda a identificar desafíos y barreras futuras, de esta forma en lugar de encontrar 
problemas durante la codificación del sistema, pudieron detectarse con 
anticipación y ajustar la estrategia de trabajo sin grandes penalizaciones 
temporales. 
En particular el modelo se enfoca en ciclos iterativos e incrementales en 
donde el trabajo se debe completar en iteraciones dentro de todo cortas y 
manejables (sprints). Si bien no se pretende llegar a la formalidad de establecer un 
plan de desarrollo de software o SDP, se desean establecer pasos generales de 
manera más informal para cada uno de los sprints a pesar de que su duración no 
se monitoree estrictamente como en otras técnicas ágiles formales (por ejemplo, 
Scrum). Estos ofrecen a los autores información relevante en relación a las tareas 
a ejecutar y la capacidad de monitorear estas actividades necesarias para la 
instanciación del sistema de información, especificando para cada elemento los 
métodos a emplear y la estrategia a seguir. De esta forma, el alcance general del 
proyecto se divide en una serie de requisitos o tareas a completar y el equipo 
establece las funcionalidades que se deberían abordar en ese ciclo al comienzo de 
cada iteración. Al final de cada una de estas, el producto debe estar listo (dentro 
de lo esperado y/o pactado) para la aprobación de los interesados al final de cada 
iteración. Para mostrar el producto de manera continua, esta forma de ciclo de 
vida requiere que los autores mantengan de forma altamente involucrada a todas 
las partes, estando estas compuestas por los directores del trabajo y los 
representantes de Proyecto Koinonía. 
En base a lo expuesto y en conjunto con las cuestiones elementales 
expuestas en el Manifesto de desarrollo de software ágil18, puede clasificarse el 
 
18 https://agilemanifesto.org/ 
 
40 
ciclo de vida de este trabajo final como adaptativo o ágil, dado que el mismo se 
caracteriza por el predominante nivel de reacción a los altos niveles de cambio, la 
participación continua de las partes interesadas y la priorización de la agilidad, 
versatilidad y flexibilidad por sobre una forma definida de desarrollo con reglas 
demasiado estrictas. 
Entonces debe quedar claro que, si bien los autores se abocan a intentar 
maximizar los principios del desarrollo ágil, no debe confundirse a los mismos con 
un grado absoluto de improvisación sobre el conjunto de tareas a realizar. Aunque 
cabe recalcar que, en cierta medida, la improvisación puede estimular la 
innovación (Crossan et al., 2005) y a su vez mejorar la velocidad de 
implementación al reducir los requisitos de planificación (Weick, 1998), las cuales 
son características deseables para obtener agilidad en la implementación de 
sistemas de tecnologías de la información. 
De esta forma se pretende que mediante la combinación de estas máximas 
propuestas, los aportes de cada uno de los autores, a pesar de la distancia y el 
contexto descrito, se integren de forma más cohesiva conforme avance el tiempo. 
Esto puede lograrse al contar rápidamentecon software funcional para mostrar a 
los interesados y ejecutar efectivamente acciones correctivas en cada iteración, 
gracias al vínculo permanente que se desea mantener con ellos con el objetivo de 
relevar opiniones y sugerencias para el proceso. 
3.3.2.1. Kanban 
En el marco de la metodología de trabajo utilizada debe mencionarse el uso 
de tableros de tipo Kanban: estos comprenden un sistema visual muy popular que 
ayuda de manera significativa a la hora de desarrollar software. 
Según lo concluido por Ahmad et. al (2014), los impulsores principales para 
adoptar Kanban en empresas de software son mejorar la colaboración en equipo 
y el flujo de desarrollo, acortar el tiempo de comercialización, aumentar la 
producción y fomentar la transparencia organizacional; y en particular, entre las 
ventajas que se obtienen con mayor frecuencia al emplear Kanban se encuentran: 
 
41 
una mayor visibilidad del trabajo, una mayor transparencia en el este y su 
comunicación, y un mejor control del flujo. 
Esta herramienta permite gestionar el trabajo a medida que se avanza en 
el proceso, y si bien requiere por supuesto comunicación en tiempo real sobre las 
actividades que lleva a cabo el equipo, presenta para ambos autores una 
transparencia sobre el trabajo realizado mucho mayor y una flexibilidad 
insuperable dado el contexto mencionado. 
Los elementos de trabajo (proceso o flujo de trabajo y trabajo real que pasa 
por el mismo) se representan visualmente en un tablero de este tipo, lo que 
permite a los miembros ver el estado de cada uno en cualquier momento. Estos 
tableros (virtuales en este caso como requerimiento para el trabajo remoto) 
utilizan tarjetas y columnas que permiten comprometerse con la cantidad de 
trabajo adecuada a ser realizada y llevarla a cabo. Debido a esto se suele decir que 
Kanban funciona como un pull system análogo a lo que sería un product backlog en 
Scrum; con la diferencia de que en este caso resulta claro que no existe un sprint 
backlog per se, sino que las tareas a realizar se establecen de manera dinámica y 
presencial en reuniones entre los autores. 
3.3.2.2. Herramientas 
Con el objetivo de facilitar y dar soporte a la realización del trabajo 
utilizando la metodología introducida, se utilizan un conjunto de sencillas pero 
poderosas herramientas consideradas adecuadas para las tareas de organización 
y comunicación que serán introducidas a continuación. 
La herramienta Tasklist es utilizada inicialmente por los autores para 
plantear un tablero de tipo Kanban sencillo y adaptado a los requerimientos de su 
grupo de trabajo. Como puede observarse en la Fig. 8 se dividen las tareas entre 
las generales, y las cuestiones propias de implementación categorizadas en los 
grandes grupos de frontend y backend. De esta forma se logra un nivel de 
granularidad adecuado en relación a la cantidad de tareas en proporción con el 
tamaño de equipo y las especialidades de sus integrantes. 
 
42 
 
Fig. 8. Vista parcial de los tableros utilizados para enumerar las tareas a realizar en 
relación a todos los elementos del trabajo final. 
A pesar de que Tasklist presentó la posibilidad de que los autores trabajen 
utilizando tableros Kanban en primera instancia, se trataba de una herramienta 
gratuita no muy popular; esto conllevó a la lamentable consecuencia de que el 
servicio cesara a principios del año 2022. Debido a esto los mismos se vieron 
obligados a encontrar una alternativa equivalente para continuar con la misma 
metodología de trabajo y ritmo pactados. La alternativa encontrada fue Trello. 
Esta herramienta también presenta una forma sencilla de crear un tablero 
de Kanban virtual. A pesar de tener mayor dificultad en la configuración inicial, 
definitivamente tiene mucho más poder, y esta versatilidad se ve reflejada en el 
impacto de productividad que tuvo la transición hacia esta herramienta. La misma 
permite por supuesto crear listas digitales que representan las tareas en una vista 
de tablero Kanban que facilita tanto acceder a la misma como también gestionarla 
de manera remota y simultánea, y ampliar su funcionalidad mediante widgets que 
potencian sus capacidades. 
En este caso, existiendo la posibilidad de asignar códigos de colores en 
relación a las categorías de las tareas y asignar a cada miembro del equipo 
diferentes tareas, se opta por una disposición Kanban más tradicional, en la que 
las tareas se encuentran en la misma lista, aquellas bloqueadas debido a una 
dependencia directa de una o más tareas se indican en una segunda lista, y en la 
última se colocan las terminadas. Posteriormente se añade una lista general para 
 
43 
tareas vinculadas a organización. Un ejemplo de la evolución de las tareas en 
función del tiempo puede verse ejemplificado en la Figura 9. En relación a las 
capacidades de la herramienta, se debe mencionar el grado de versatilidad que 
brinda en relación a sus integraciones con otras herramientas y la posibilidad de 
enviar y recibir notificaciones a los integrantes, por ejemplo, para coordinar 
reuniones y confirmar la asistencia de cada uno a las mismas o reprogramarlas 
para días y horarios más convenientes. 
Por otra parte, la comunicación es un elemento importante del proceso de 
desarrollo de software que expande su influencia hacia numerosas áreas. Si bien 
muchos factores pueden afectar el éxito del proyecto, los aspectos más relevantes 
de que resulten frustrados suelen estar vinculados a la comunicación ineficaz del 
equipo, que a menudo es la causa principal del fracaso de los proyectos de 
ingeniería complejos. La comunicación entre las partes interesadas también es un 
punto de falla (que afecta las expectativas, los requisitos, las estimaciones, los 
cronogramas, etc.) del proyecto (DeFranco, 2017). 
 
 
Fig. 9. Vista general de los tableros creados en la herramienta Trello con la utilización de 
asignación de tareas por usuario y códigos de color según el área de especialidad. 
 
44 
La herramienta Slack19 ofrece, en términos sencillos, un medio de 
comunicación con notificaciones multiplataforma e integración con comandos de 
las herramientas de desarrollo más populares. Esta promete brindar “canalización 
de entrega de principio a fin”, recorriendo todo el proceso de desarrollo a lo largo 
del ciclo de vida de desarrollo del sistema. Y si bien los autores consideran que se 
trata claramente de una exageración con fines marketineros, su utilidad general 
desde el punto de vista de practicidad comunicacional a lo largo del trabajo es 
fundamental. 
Para su utilización, se procede a crear un espacio de trabajo y un canal 
(espacio de conversación) dedicado a todo lo relacionado específicamente al 
desarrollo de la tesis de grado cuyo aspecto puede visualizarse en la Fig. 10. De 
esta forma se puede colaborar en especificaciones, revisiones de código y estados 
de implementación con gran facilidad. 
 
Fig. 10. Vista del canal creado en Slack. En el mismo se ven las notificaciones creadas por 
la integración con Trello al realizar algún cambio relacionado con las tareas y con Github 
al actualizar alguno de los repositorios del proyecto. 
Por otro lado, la potencia de la integración de Trello y Git con el canal de 
Slack creado, genera un nivel de transparencia que permite realizar captura 
 
19 https://slack.com/intl/es-ar/ 
 
45 
problemas y asignaciones para su resolución rápidamente, comentar en tiempo 
real sobre cualquiera de estos tópicos y en definitiva lograr que cada autor se 
concentre en sus prioridades eliminando en simultáneo posibles redundancias o 
malentendidos. 
En términos generales permite a los autores poseer visibilidad en tiempo 
real del progreso y las decisiones del proyecto, y dejar un registro de los mismos 
en relación a las conversaciones entabladas para consulta permanente. 
Prosiguiendo con las herramientas, debe recalcarse que el uso de un 
servicio