¿Existen oportunidades de Investigación en el nexo entre la Ingeniería de Software y Big Data?
Actualmente, la adopción de la computación en la nube está convirtiendo el análisis de datos en una competencia primordial en la ingeniería de software. Para los investigadores, esta transición crea oportunidades de estudiar, comprender y mejorar las prácticas en explotación.
En el transcurso de este corto post discutiremos de qué forma los equipos de desarrollo usan Big Data y algunos de los retos y por lo tanto, oportunidades de investigación que esta sinergia ha ido produciendo.
¿De qué forma los equipos de desarrollo usan Big Data?
Los equipos de desarrollo realizan variadas actividades en su diario ir y venir, su análisis varía en dependencia del interesado y las actividades a las que dan soporte.
Para usar Big Data, lo primero son los datos, estos llegan en variadas formas:
- Información de usuario
- Comportamiento de la aplicación
- Prácticas de trabajo en equipo.
Estos datos serán analizados para sacar a la luz aquellos aspectos a mejorar e incluso nuevas ideas en áreas donde resulten de mayor interés.
Las áreas más interesantes a la aplicación de análisis de datos suelen ser, principalmente:
- Experiencia de usuario (De aquí podrían surgir, por ejemplo, pruebas de validez de nuevas características y mejoras en los resultados de búsqueda)
- La ejecución del software (Resulta de interés para reducir la incidencia de errores o decidir cuándo es necesario escalar a mayores prestaciones.
- El proceso de desarrollo en equipo (Resulta de mucho interés solventar los errores lo más rápido posible y gestionar los recursos del equipo teniendo en cuenta su disponibilidad y asignándolos a otras labores, como por ejemplo al desarrollo y ejecución de pruebas.
¿Qué retos supone explotar las potencialidades de Big Data?
Los equipos de desarrollo de software se enfrentan a varios retos en sus intentos de explotar las potencialidades de Big Data. Estos retos se traducen en oportunidades de investigación para los investigadores.
Los resultados de un análisis Big Data generalmente tienen graves consecuencias. Por ejemplo:
Un equipo podría desear analizar su base de datos de errores para decidir si un producto está listo, o podría analizar los datos de uso para escoger cuáles características implementar en la próxima versión.
Si este análisis estuviera errado, el equipo podría realizar pobres decisiones, causando así la falla del proyecto.
Los investigadores tienen la oportunidad de ayudar a los equipos de desarrollo a obtener seguridad sobre los resultados de sus análisis.
Algunos incluso se plantean la posibilidad de crear un campo de estudios relacionado con la comprensión de los datos ya que tanto desarrolladores como científicos de datos presentan grandes dificultades a la hora de entender los códigos o metodologías ajenas.
De aquí podrían surgir dos vertientes:
- El análisis del significado de los datos
- El análisis de cómo los datos son transformados.
En este sentido, cada persona y herramienta que interactúa con los datos en la actualidad debe proporcionar registros meticulosos. Por lo que:
…el desarrollo de un estandard evitaría errores y mejoraría la comunicación.
Por otra parte..
El análisis de la evolución y transformación de los datos requiere de poderosas técnicas que habiliten la posibilidad de llevar a cabo razonamientos analíticos sobre los mismos.
Big Data es un campo que demanda muchos especialistas, y seguirá demandando cada vez mas, esto provoca que no siempre el analista sea un experto.
En este sentido sería interesante:
Desarrollar métodos que sean capaces de realizar de manera correcta y lo más amigablemente posible las primeras etapas del proceso de análisis de datos; produciendo herramientas que permitan a los inexpertos expresar decisiones de modelo a alto nivel basados en sus propias creencias mientras reciben información sobre las repercusiones de sus decisiones.
En materia de comunicación se hace necesaria alguna vía para solventar los problemas de incertidumbre y riesgos a la hora de realizar decisiones críticas.
Parte del proceso de toma de decisiones es sopesar la credibilidad de los resultados del análisis. De aquí que para análisis cuyos datos iniciales estén basados en la incertidumbre, los decisores necesiten comprender estos matices.
Obviamente, este es un problema de todo tipo de decisores, pero:
En el área de la ingeniería de software es posible considerar cierto grado de habilidades en los miembros de equipo, de aquí que no sea descabellado pensar que se beneficiarían de técnicas de simulación en pos de definir una base comunicativa mejor.
Finalmente, en materia de colaboración se empiezan a ver interesantes tendencias.
Al igual que sucedió con la aparición del desarrollo guiado por pruebas, los ingenieros de software van expandiendo sus fronteras en materia de habilidades, ocupando competencias de diversos roles.
Las necesidades de información para cada uno de los roles en el proyecto varían, por lo que el equipo debería conocer de qué forma coordinar sus necesidades de información.
Resumiendo…
Como han podido observar, los equipos de desarrollo de software se enfrentan a un número importante de problemas difíciles en sus intentos de explotar las potencialidades de Big Data. Los presentados aquí no son los únicos, pero si algunos de los más específicos al sector.
Abordar estos problemas podría alterar como los equipos toman decisiones y crean nuevas ideas.
Esta nueva “cultura basada en datos” podría permitir que cada miembro del equipo tome decisiones basadas en evidencias y que se puedan desarrollar planes en condiciones de incertidumbre.
Lecturas de Interés
Deline, R. (2015). Research Opportunities for the Big Data Era of Software Engineering. In Proceedings – 1st International Workshop on Big Data Software Engineering, BIGDSE 2015 (pp. 26–29). https://doi.org/10.1109/BIGDSE.2015.13
Buse, R. P. L., & Zimmermann, T. (2012). Information needs for software development analytics. Proceedings – International Conference on Software Engineering, 987–996. https://doi.org/10.1109/ICSE.2012.6227122
Bagriyanik, S. (2016). Big data in software engineering: A systematic literature review. Global Journal of Information Technology, 6(61), 107–116. https://doi.org/10.18844/gjit.v6i1.397
Batarseh, F. A., & Gonzalez, A. J. (2015). Predicting failures in agile software development through data analytics. Software Quality Journal, 1–18. https://doi.org/10.1007/s11219-015-9285-3
Beller, M., Gousios, G., & Zaidman, A. (2015). How (Much) Do Developers Test? Proceedings – International Conference on Software Engineering, 2, 559–562. https://doi.org/10.1109/ICSE.2015.193
Salmanoglu, M., Öztür, K., Bağrıyanık, S., Ungan, E., & Demirörs, O. (2015). Benefits and Challenges of Measuring Software Size: Early Results in a Large Organization.
Video de la Presentación
Big Data, Challenges, Ingeniería del Software, Investigación, Retos, Software Enginnering