Desarrollo dirigido por datos: Un ejemplo práctico con ChessLeague

Abstract

Hoy en día cualquier producto de software genera una gran cantidad de datos tanto de manera explícita como implícita, los cuales se pueden aprovechar de muchas formas. Un ejemplo claro es su análisis para extraer información sobre como se está utilizando una aplicación o porque están ocurriendo según qué problemas. El uso de estos datos para guiar el desarrollo de un producto es una práctica cada vez más extendida, a la cual se la conoce como desarrollo dirigido por datos. En este proyecto estudiamos la utilidad de las redes bayesianas como herramienta de análisis para guiar el desarrollo de un proyecto software. Para ello, hemos creado un caso de estudio donde buscamos mejorar el juego en línea ChessLeague utilizando redes bayesianas como herramienta para analizar software logs. En este recopilamos feedback explícito e implícito de distintas fuentes. Este feedback se visualiza de manera exploratoria con dashboards y se usa para crear tres modelos con redes bayesianas que nos sirven para analizar el funcionamiento de la aplicación. Gracias a esto, hemos sido capaces de detectar múltiples puntos de mejora dentro del juego, que van desde problemas de rendimiento hasta errores que ocurren de forma recurrente en la aplicación, los cuales se han implementado como tarjetas en Scrum. Viendo estos resultados consideramos que el uso de redes bayesianas dentro del desarrollo dirigido por datos tiene un gran potencial como herramienta de análisis de software logs, y animamos al resto de la comunidad a seguir profundizando en sus posibles aplicaciones. Finalmente, concluimos que el desarrollo dirigido por datos resulta muy útil a la hora de tomar decisiones sobre el camino que ha de seguir un producto de software. Además, este enfoque nos proporciona una mejor visión de la aplicación, permitiéndonos por ejemplo detectar fallos o puntos débiles que de otra manera seguirían ocultos.Nowadays any software product generates a large amount of data both explicitly and implicitly, which can be leveraged in many ways. A clear example is its analysis to extract information about how an application is being used or why problems are occurring. Using this data to guide product development is an increasingly widespread practice, known as data-driven development. In this project, we study the usefulness of Bayesian networks as an analysis tool to guide the development of a software project. For this, we have created a case study where we seek to improve the online game ChessLeague using Bayesian networks as a tool to analyse software logs. In this, we collect explicit and implicit feedback from different sources. This feedback is visualized exploratorily with dashboards and is used to create three models with Bayesian networks that serve to analyse the application's operation. As a result, we have been able to detect multiple enhancement points within the game, ranging from performance problems to errors that occur repeatedly in the application, which have been implemented as cards in Scrum. Seeing these results, we consider that the use of Bayesian networks within data-directed development has great potential as a software logs analysis tool, and we encourage the rest of the community to continue to deepen its possible applications. Finally, we conclude that data-driven development is very useful in making decisions on the way a software product should follow. In addition, this approach gives us a better insight into the application, allowing us, for example, to detect faults or weaknesses that would otherwise remain hidden

    Similar works