Descubre ai4dev parte 3: predicción de esfuerzos en proyectos de software con inteligencia artificial

¿Cómo la inteligencia artificial puede ayudarnos a estimar el esfuerzo en proyectos de desarrollo de software?

En el desarrollo de software, la gestión de los recursos y la estimación del esfuerzo son tareas clave para garantizar la eficiencia y el éxito de los proyectos. Sin embargo, estas tareas no son sencillas debido a la complejidad y la incertidumbre inherentes al proceso de desarrollo de software.

En este contexto, en Proxya se está trabajando en un proyecto de investigación industrial que busca mejorar la gestión de los recursos mediante técnicas de inteligencia artificial. En concreto, se está investigando el uso de redes neuronales recurrentes para estimar el esfuerzo de tareas a partir de una descripción textual de las mismas, lo que permitiría una mejor asignación de recursos y una gestión más eficiente del proyecto.

En este tercer artículo de la serie, profundizaremos en este objetivo específico del proyecto, explicando cómo se pueden utilizar técnicas de inteligencia artificial y redes neuronales recurrentes para estimar el esfuerzo de tareas de software. Desde el estudio de las técnicas de regresión y predicción más avanzadas hasta la puesta en marcha de un servicio de estimación de esfuerzo integrado en la aplicación Redmine, descubrirás cómo esta técnica puede mejorar la eficiencia y la gestión de recursos en el desarrollo de software.

El desarrollo de software es una tarea compleja que requiere una gran cantidad de tiempo y recursos. Una de las tareas más complicadas durante el proceso de desarrollo de software es la estimación del esfuerzo que requiere cada tarea. En particular, la creatividad que muchas veces se necesita para llevar a cabo estas tareas introduce una gran incertidumbre en la estimación del esfuerzo que es difícil de predecir. Además, existen otros factores, como la diferente productividad de los miembros del equipo y las situaciones imprevistas, que dificultan la asignación de personas a tareas que minimice el tiempo de desarrollo de un proyecto y su coste.

En este contexto, la inteligencia artificial (IA) puede ayudar a los equipos de desarrollo de software a mejorar la precisión en la estimación del esfuerzo de las tareas y, por lo tanto, a optimizar el tiempo y los recursos necesarios para el desarrollo de un proyecto.

El objetivo general de nuestro proyecto de investigación industrial es mejorar la productividad, calidad y eficiencia en la ejecución de proyectos de software incorporando técnicas de IA en tres aspectos del desarrollo de software: pruebas, mantenimiento y planificación de proyectos. En este artículo, nos centraremos en el tercer objetivo: la estimación de esfuerzos.

Para abordar este objetivo, se han definido tres objetivos específicos:

  1. O3.1: Estudiar las técnicas de regresión y predicción basadas en inteligencia artificial utilizadas en la literatura para estimar esfuerzos en tareas de proyectos de software.
  2. O3.2: Investigar y diseñar redes neuronales recurrentes para estimar el esfuerzo de las tareas a partir de la descripción textual de las mismas.
  3. O3.3: Ofrecer un servicio de estimación de esfuerzo de tareas integrado dentro de la aplicación Redmine, usada por la empresa para la gestión de las tareas de proyectos de software.

 

El objetivo específico O3.2 se centra en el diseño de redes neuronales recurrentes para estimar el esfuerzo de las tareas de un proyecto de software a partir de una descripción textual de las mismas. Para ello, se han estudiado las técnicas de regresión y predicción basadas en IA utilizadas en la literatura para estimar esfuerzos en tareas de proyectos de software.

 

El objetivo O3.3 tiene como finalidad ofrecer un servicio de estimación de esfuerzo de tareas integrado dentro de la aplicación Redmine, usada por la empresa para la gestión de las tareas de proyectos de software. Con este servicio, los miembros del equipo de desarrollo podrán obtener estimaciones precisas del esfuerzo requerido para cada tarea, lo que permitirá optimizar el tiempo y los recursos necesarios para el desarrollo del proyecto.

El KPI3 (objetivo general OG3) establece que se estima que podrán predecirse el esfuerzo requerido para las tareas con un MAE (Mean absolute error) de 3 o menos en una fracción de segundo. En una empresa como Proxya, esto supone una reducción de esfuerzo de más de 35.000 horas de trabajo de sus empleados.

En resumen, la incorporación de técnicas de inteligencia artificial en proyectos de software puede mejorar la productividad, calidad y eficiencia en la ejecución de los mismos. En este artículo hemos analizado tres objetivos del proyecto de investigación industrial en el que se está trabajando en Proxya, cada uno centrado en un área diferente del desarrollo de software: la generación automática de casos de prueba, la refactorización automática de código y la estimación de esfuerzos y tareas.

Más noticias