Scrum avanzado
En este curso conoceremos cuáles son los valores de Scrum, conoceremos los tableros kanban y ampliaremos el conocimiento...
La adopción de la metodología Scrum continúa en aumento en todo tipo de empresas, lo que sumado al hecho de que la integración de la inteligencia artificial está cambiando el tablero de juego. ¿Quieres saber cómo la IA puede mejorar Scrum?
¿Te gustaría poder predecir con certeza cuándo se terminará de implementar un cambio recién solicitado por el cliente o los usuarios? ¿Crees que sería buena idea poder identificar las 3 causas que más tiempo hacen perder al equipo de proyecto en su trabajo diario? ¿Te gustaría saber cuánta capacidad debes reservar para resolver las incidencias que se pueden producir en el sprint siguiente? ¿Y dentro de 2 o 3 sprints, o a más largo plazo? ¿Quieres tener el mejor argumento posible para explicar a tu cliente cuándo terminará el proyecto, o por qué puede ser conveniente modificar el presupuesto?
Scrum es la metodología más utilizada para la ejecución de proyectos ágiles gracias a su simplicidad: propone trabajar en sprints cortos (por ejemplo, una semana), con roles definidos para el Scrum Master (o facilitador del proyecto y del proceso) y Product Owner (define el producto y valida los avances), y sobre entregas incrementales de producto como resultado de cada sprint.
Si quieres conocer cómo optimizar los beneficios de esta metodología utilizando inteligencia artificial, te invito a que leas este artículo detenidamente.
El primero de los grandes desafíos en Scrum es no adoptar un enfoque “fundamentalista” de la metodología: debemos aplicar Scrum con los ajustes que hagan falta en cada caso, no basta con poner en marcha sprints cada semana, con un scrum master, un product owner, etc.
¿Y la adecuada priorización, el planteamiento de productos mínimos viables, la gestión rápida de atascos, dependencias con terceros o bloqueos entre las personas del equipo? Estos “detalles” -que en realidad son lo más importante- van más allá del contenido de la teoría de Scrum, y son lo que en la práctica permiten que el trabajo fluya, y con él, las entregas en fecha y calidad.
Si quieres conocer más a fondo éste y otros enfoques ágiles, te recomendamos realizar la carrera de experto en metodologías ágiles.
El segundo gran reto es madurar en el uso de datos y métricas. Existe el mito de que en Scrum (y en agile en general) la gestión es “liviana” porque el equipo se autoorganiza. Sí, es cierto que el equipo se autogestiona el trabajo, pero precisamente así es como se generan más y mejores métricas, por ejemplo:
Y todas estas métricas por cada release, por cada épica, por cada iteración, por cada requisito… y todas las combinaciones entre ellas (es decir podemos estar hablando de decenas de métricas de muy alto interés).
La generación, captura y uso de estos datos es una herramienta fundamental para la óptima gestión de equipos. Si quieres profundizar, puedes realizar el curso de gestión de equipos en Scrum.
Teniendo en cuenta la necesidad y el valor que aportan las métricas, en este aspecto es donde la IA puede venir a aportarnos una ayuda enorme.
El modelo más básico posible de IA sería un modelo diagnóstico, es decir, un modelo que nos señala la causa de una realidad, un patrón causa-efecto, como por ejemplo, “las incidencias que afectan al cierto componente técnico tardan en doble en ser resueltas que las demás”; éste sería el patrón más sencillo posible en el que sólo se combinan dos variables (componente técnico y tiempo medio incurrido).
Pues bien, si ese patrón existe, entonces podemos preguntar a un sistema predictivo “dada esta nueva incidencia petición de cambio, ¿cuánto tiempo debemos reservar para su resolución?” sin apenas saber nada de dicha incidencia… y tendremos una muy buena respuesta (que se cumplirá en la realidad) si hemos alimentado un algoritmo de aprendizaje automático con datos de incidencias o peticiones anteriores (que es ni más ni menos que la traducción a la práctica de la inteligencia artificial, al menos, en este campo).
Estos patrones pueden crecer hasta comprender docenas de variables relacionando tiempos, complejidad, componentes técnicos, prioridades, estimaciones, deuda técnica, datos implicados, subsistemas, peticionarios, tecnologías, entornos, etc.
Si construimos modelos diagnósticos en base a estas métricas, entonces podremos disponer de una analítica predictiva sobre, al menos, la gestión del tiempo y el presupuesto, la colaboración efectiva, la adaptación al cambio, la gestión de riesgos, la gestión de incidencias y por lo tanto en la toma de decisiones en general.
Como ejemplos de modelos diagnósticos, y en consecuencia modelos predictivos, que podemos construir aquí son:
Si registramos cuántas horas incurre cada persona asignada al equipo (p.ej 40 horas a la semana), y cuánto es el incurrido real de cada tarea, podemos predecir la productividad en iteraciones siguientes (algo del tipo “30 de cada 40 horas se aplican efectivamente a tareas técnicas”), y saber cuánto tiempo dedicamos a “otras cosas” como tiempos de gestión, de reuniones (¿cómo de productivas?), desperdicios de tiempo…
Diferencias entre estimados e incurridos, para aprender en qué tipos de tareas nos equivocamos repetidas veces al estimar, en qué medida nos quedamos cortos al estimar, e incluso cuánto trabajo reservar para esas tareas “de las que no sabemos casi nada, pero tenemos que llevar a cabo”.
Poder conocer, por ejemplo, cuánto tiempo va a permanecer el evolutivo siguiente en el estado de “desarrollo” o en el de “pruebas”. Estos datos nos ayudarían mucho para calcular y argumentar fechas de entrega.
Aunque parece que sólo existe chatGPT, no es así. Disponemos de una amalgama amplia de herramientas para aliviar el trabajo directamente relacionado con el desarrollo de código como Codesnippets, Spellbox, GitHub Copilot, Alphacode y otro largo etcétera.
Esto no quiere esto decir que ya no sea necesario un perfil de desarrollo de código en proyectos de software, sino que (como ocurre con otros muchos campos de actividad), el programador no dedique su tiempo simplemente a “picar código”, sino más bien a pensar cómo hacer que el código sea seguro, no generar deuda técnica, ser más creativo, colaborar mejor con sus compañeros, integrar el código sin esfuerzo y sin cometer errores por simple “aburrimiento” o debido a configuraciones infinitas y delicadas. De esta forma estará aportando más valor a cambio del mismo tiempo de dedicación, además de disfrutar más de su trabajo.
Uno de los grandes motivos de utilizar Scrum es que necesitamos adaptarnos a los cambios, y por eso preferimos trabajar en sprints cortos, en lugar de generar y seguir largas y detalladas planificaciones predictivas, etc.
Además de los cambios, tenemos las incidencias: en cualquier momento de cualquier sprint, aparecen una, dos o 30 incidencias que, si no se controlan, consumirán el tiempo del equipo hasta detener la dedicación a los evolutivos, con lo cual se incumplirán fechas de entrega…
Con algoritmos de aprendizaje automático, es bastante sencillo prever cuántas incidencias se van a producir en el siguiente sprint (también en el sprint n+2, n+3, etc.) y cuánto tiempo nos va a llevar su resolución, por lo tanto en el planificación del sprint podemos hacer la reserva de capacidad suficiente.
En realidad ésta sería una de las aplicaciones más sencillas e inmediatas de aplicar en cualquier proyecto, puesto que se basa en una analítica descriptiva que ya deberíamos tener implantada, y que nos diga cuántas incidencias hemos tenido por unidad de tiempo, sus estimaciones, sus incurridos reales, distribución por prioridades, etc.
Así que, en general, y totalmente alineado con la idea de “madurar como data driven company”, de lo que se trata es de disponer de datos que asistan a las decisiones de gestión del proyecto Scrum: ¿cuántos requisitos podemos implementar en la siguiente iteración? ¿Cuánta capacidad debemos reservar para resolución de incidencias, de forma que cumplamos con los acuerdos de nivel de servicio? ¿Cuánto tiempo estamos desperdiciando en tareas que podrían aliviarse como la automatización de configuraciones, desarrollo de código y otras? ¿Cuántos cambios se van a producir y de qué complejidad, y cómo afectan a las fechas de entrega o a los productos mínimos viables ya previstos?
El primer paso debe ser plantearse estas cuestiones, es decir, saber qué preguntas queremos responder; después, tomaremos los datos que pueden ayudar a construir una respuesta; inyectamos estos datos a algoritmos de aprendizaje automático para generar patrones causa-efecto (lo cual ya por sí mismo genera valor que ayuda a la gestión), y finalmente obtendremos predicciones fiables (tan fiables como lo sean los datos de entrada) de dichos patrones o modelos.
Jira es la herramienta corporativa de gestión de proyectos de infinidad de empresas, mientras que TargetProcess está más dirigida a empresas de tamaño medio o grandes (Repsol, Airbus, BBVA, etc.)
Estas dos herramientas de gestión de proyectos son grandes generadoras de métricas, como decíamos en apartados anteriores; por ello están incorporando ya módulos de machine learning que “estudian y aprenden” sobre dichas métricas para darnos una visión no sólo descriptiva, sino diagnóstica y predictiva, de la gestión de proyectos (no sólo con Scrum sino con cualquier metodología ágil ajustada a cada caso).
Si el uso de IA es ya prácticamente nativo en las herramientas de gestión de proyectos más utilizadas del mercado… nuestra labor al respecto es la de asegurar que las métricas que capturan dichas herramientas sean las adecuadas (si la calidad del dato de entrada es buena, los modelos generados por la IA también lo serán).
Deloitte, KPMG, PwC, etc. Cualquier consultora que (entre otras cosas) se dedique a la ejecución de proyectos ágiles (no sólo con scrum, y no sólo para desarrollo de software), le interesa que estos proyectos no sólo tengan éxito (o sea, que entreguen lo comprometido en la fecha comprometida) sino que sean rentables, cada vez más rentables… y para ello, nada mejor que recopilar datos de la ejecución de proyectos y contratos, aprender de estos datos, y refinar los procesos de trabajo para ajustarlos progresivamente y aplicarlos en proyectos siguientes (o ya en iteraciones siguientes de los mismos proyectos actuales).
Pero si las grandes consultoras obtienen grandes números de una pequeña ganancia del tipo “perder un 2% menos de tiempo en atascos del equipo”, o “generar un 1% menos de deuda técnica”, ¿acaso no interesa lo mismo a medianas y pequeñas empresas, cuyos números son más ajustados y necesitan sacar partido de todo aquello que pueda ser mejorado?
Si las grandes empresas se han dado cuenta de la sinergia entre el proceso ágil de gestión de proyectos y la inteligencia artificial, nos puede servir a los demás como referencia para hacer “benchmarking”, es decir, vemos cómo lo han hecho otros para tratar de copiar -perdón, queremos decir “replicar” ;-)- y sacar la misma ventaja en nuestro ámbito, nuestros clientes y nuestros proyectos.
Una conclusión fundamental es que la inteligencia artificial, aplicada en la optimización de la aplicación de Scrum, muy poco tiene que ver con el concepto “cinematográfico” que podamos tener. Aquí hablamos de utilizar el aprendizaje automático para la creación de patrones, es decir, modelos de datos, que nos proporcionan sistemas de asistencia a la decisión que nos ayuden a saber más deprisa, y de manera fiable, cuál es la mejor estimación para un evolutivo, cuántos problemas nos puede dar una subsistema o componente técnico, en qué momento se producirá la siguiente incidencia, ahorrar tiempo en trabajos de bajo valor añadido como “picar código” de un funcionalidad más o menos estándar, etc.
Así que la tendencia a futuro en el corto y medio plazo es muy clara: no es que la IA vaya a gestionar un proyecto en Scrum en nuestro lugar ni nada por el estilo, sino que es una herramienta valiosa como ayuda a las decisiones en base a los datos de gestión de proyecto que genera el trabajo del día a día. La cuestión a preguntarnos sería no tanto “¿por qué?”, sino “¿por qué no hacer uso de una herramienta que nos aporta una argumentación muy potente para explicar estimaciones, tiempos de cambios, reservas de capacidad para eventos como incidencias, etc?”
Si junto a tu equipo Scrum necesitas estimar cuánto tiempo reservar para un evolutivo o una incidencia, si quieres saber en qué momento es más probable que se produzca la siguiente incidencia, si necesitas poder argumentar mejor una fecha de entrega de una parte del backlog, o si te gustaría detectar los motivos de pérdida de productividad, entonces la analítica predictiva es el uso más natural e inmediato de la inteligencia artificial que puedes hacer como herramienta para optimizar la aplicación y el funcionamiento de proyectos gestionados bajo metodología Scrum.
¿Te gustaría profundizar en este tema y todos sus aspectos? Te invitamos a suscribirte al Plan Profesional de OpenWebinars y disfrutar de 15 días gratuitos de acceso a las mejores formaciones.
Si tu objetivo es mejorar las habilidades y conocimientos de tu equipo, te recomendamos solicitar una demostración gratuita de OpenWebinars. Podrás experimentar de primera mano todo lo que ofrecemos en términos de formación de equipos.
También te puede interesar
En este curso conoceremos cuáles son los valores de Scrum, conoceremos los tableros kanban y ampliaremos el conocimiento...