¿Cuáles son las interrogantes que los profesionales de ingeniería de software quieren responder con la ayuda de Software Analytics?
En los post anteriores habíamos visto la utilidad de Software Analytics, los usuarios y los ámbitos de uso dentro del desarrollo de software. En esta ocasión veremos cuáles son las interrogantes que los profesionales de ingeniería de software desean dar respuesta mediante el uso de Software Analytics. Para ello, se mostrarán los resultados de dos encuestas realizadas a profesionales de ingeniería de software en la empresa Microsoft. Se identificarán las categorías encontradas y se visualizará las preguntas que los profesionales piensan que son más importantes responder y las que no consideran indispensables.
CATEGORIZACIÓN DE LAS INTERROGANTES
En la primera encuesta se obtuvieron un resultado de 145 interrogantes que los profesionales querían dar respuesta con la ayuda de científicos de datos y Software Analytics. Estas preguntas se dividieron en 12 categorías que se explican a continuación.
Medidas de bugs. Los principales aspectos que los profesionales de ingeniera de software quisieran resolver con Software Analytics son: ¿Cuándo los bugs se pueden encontrar en el código y en el diseño del producto? ¿Cuáles bugs son los más comúnmente realizados por los desarrolladores? ¿En qué parte del ciclo de vida de la aplicación estos son descubiertos? ¿Cuánto cuesta arreglar los bugs? Y ¿qué tan bien la automatización ayuda a mitigar dichos bugs?
Prácticas de desarrollo. Los profesionales de ingeniería de software desean resolver algunas inquietudes de prácticas orientadas al código, incluyendo depuración, análisis de rendimiento, refactorización, revisión de código, comentarios, y documentación del código. Adicionalmente, también desean conocer, riesgos causados por cambios en el código o por una mala estimación del esfuerzo.
Mejores prácticas de desarrollo. Similar a la categoría anterior, pero aquí los profesionales de ingeniería de software están interesados en conocer las mejores (o peores) vías para conducir una práctica de software. Por ejemplo, los profesionales quieren conocer las técnicas adecuadas para migrar entre versiones del software, la mejor forma de rastrear los elementos de trabajo, el momento adecuado para usar métodos formales para el análisis de software o que criterios deberían influenciar en la decisión de usar un lenguaje de programación particular o API.
Prácticas de pruebas. En esta área los profesionales de ingeniería de software quieren saber aspectos como: automatización de las pruebas, estrategias de pruebas, pruebas unitarias, desarrollo basado en pruebas, coberturas de las pruebas y eliminación de casos de pruebas. Adicionalmente, los profesionales están interesados en el proceso de evaluación, por ejemplo, escribiendo pruebas: quien debería hacerlo y cuando debería ocurrir, compartir pruebas e infraestructura de pruebas entre los equipos, y medir la efectividad de ciertos tipos de pruebas para encontrar errores que causen impactos.
Evaluación de la calidad. En esta área los profesionales desean saber: optimización de código, las mejores métricas para decidir si enviar software, métricas complejas, duplicación del código, la relación existente entre la cobertura de pruebas y el uso de las características del cliente, legado y envejecimiento de bases de código, y las causas más comunes de una baja calidad del software.
Servicios. La mayor parte de preguntas están formuladas entorno al desarrollo de software para la nube. Algunas inquietudes están relacionadas a cómo cambiar el desarrollo y las prácticas de pruebas cuando se migra el software a la nube.
Clientes y Requerimientos. Esta categoría contiene los aspectos relacionados con los intereses de los clientes, enfocándose en como los clientes pueden reaccionar a diversos acuerdos de desarrollo, por ejemplo, la necesidad de compatibilidad hacia atrás, o el impacto de realizar pruebas en producción. Aquí los profesionales de ingeniería de software también están interesados en los beneficios que se derivan de la inversión en especificaciones en varios grados, y los costos asociados con el aumento de la aportación del cliente en el diseño de software.
Ciclo de vida del desarrollo del software. Todas las interrogantes en esta categoría están relacionadas con el tiempo como un factor vital en el diseño del ciclo de vida del software. Por ejemplo, los profesionales de ingeniería de software quieren conocer como el tiempo de desarrollo debe ser asignado entre la planeación, el diseño, la codificación,las pruebas, y el impacto que esta asignación puede tener en el software.
Proceso de desarrollo de software. La elección de la metodología de desarrollo de software es la principal interrogante que surge en esta categoría. ¿En que vías es una metodología ágil mejor que una en cascada? ¿Cuáles son los beneficios de programación en parejas?
Productividad. Esta categoría es la que los profesionales más asocian con “software data analytics” y produce temor entre los profesionales debido a las consecuencias de ser juzgados injustamente en cuanto a su rendimiento. Las preguntas que surgen en esta categoría incluyen la investigación de algunas métricas para medir la productividad de los desarrolladores de software y entender la relación entre la productividad individual y el éxito del equipo.
Equipos y colaboración. En esta categoría, los profesionales de ingeniería de software desean resolver sus dudas en cuanto a la constitución de los equipos. Por ejemplo, cuantas personas de varios roles de desarrollo deben estar en el equipo, y que tan grande debe ser para el desarrollo de una característica determinada. Los profesionales también desean conocer, cuales practicas pueden mejorar la colaboración entre equipos, especialmente en lo referente a compartir el conocimiento.
Compartición y reúso de componentes. En esta categoría la inquietud principal que surgió en los profesionales de ingeniería de software fue cuando debería escribirse el código desde cero vs reutilizar el código. Los profesionales desean saber el costo de investigar el código correcto y el impacto potencial causado por simplemente vincularlo vs. copiar todo el código.
Conclusión
Los resultados de las encuestas realizadas a profesionales de Microsoft dan como resultado un conjunto de 145 interrogantes agrupadas en 12 categorías. Algo a destacar entre los resultados de las encuestas realizadas, es que las categorías en la que los profesionales muestran mayor interés es en aquellas relacionadas con las prácticas de desarrollo, pruebas y trabajo en equipo. Mientras que las categorías que menor interés muestran los profesionales, principalmente los directores, son aquellas relacionadas con la productividad de sus empleados y como esta productividad individual afecta al equipo.