Nociones básicas de metodologías ágiles

Una empresa que trabaja con agilismo ahorra tiempo, se adelanta a la competencia, reduce los riesgos, mejora en el tiempo de respuesta frente a los cambios y los equipos trabajan con más motivación y autonomía.

Los marcos de trabajo ágiles como Scrum, Kanban y XP no solo sirven y son útiles para enfrentarse a problemas de desarrollo de software sino también a todo tipo de problemas que tengan incertidumbre y complejidad, necesiten de retroalimentación y, eventualmente, hacer cambios en el camino. Es decir, podrían aplicarse perfectamente a la política.

El beneficio más grande de una empresa que usa agilismo es la adaptabilidad, la capacidad de responder a los cambios que el mismo camino le muestra, además tener información para tomar decisiones y generar valor. Entre las ventajas está el ahorro de tiempo; adelantarse a la competencia; reducción de riesgos, porque se detectan en el camino a medida que avanzan los equipos; mejora en el tiempo de respuesta frente a los cambios, ya que el cliente no tiene que esperar que se termine todo el producto o servicio; además, mayor motivación, autonomía y compromiso de los equipos.

Mientras que las empresas que no usan metodologías ágiles, se enfrentan a todo lo contrario a la adaptabilidad, tienen la incapacidad de actuar oportunamente y corren el riesgo de no sobrevivir.  Si la empresa va lenta, cuando saca un producto al mercado, la necesidad ya no existe o no es relevante, los competidores actúan más rápido y los hábitos de consumo de los clientes cambian.

Carlos Andrés Palacio, agile Coach de Pragma, explica qué es el agilismo, por qué es importante, habla del Manifiesto Ágil, de las características de los equipos ágiles, y se centra en el Scrum, una de las metodologías más exitosas.

Índice

Nuestro experto 

carlos_palacio

Carlos Andrés Palacio, Agile Coach de Pragma.
Ingeniero de Producción de la Universidad Eafit y máster en Ingeniería y Consultoría en Textil y Confección, con amplio conocimiento y experiencia en gestión y mejoramiento de procesos de negocio, enfocado en facilitar soluciones ágiles a problemas complejos.

Se ha desempeñado como analista de procesos de negocio, como director del sistema de gestión, director de procesos, director de Soluciones y mejora continua, así como Agile Coach en Transformación de Cultura Ágil.
Toda su experiencia profesional ha estado motivada en ayudar a las personas, a los equipos y a las organizaciones.

 

¿Qué son metodologías ágiles?

La Agilidad puede entenderse como un conjunto de principios, valores y modelos mentales que nos permite enfrentar de una manera más efectiva la solución de los problemas. Del agilismo se desprenden las llamadas metodologías ágiles asociadas a una serie de prácticas, frameworks o marcos de trabajo que utilizamos para que las cosas sucedan.

En el pasado, la industria del software estaba acostumbrada a enfrentar problemas con métodos y maneras ‘tradicionales’, para predecir la solución, sin entender muy bien las incertidumbres. Es decir, cuando había un problema, los ingenieros suponían que lo resolverían con una determinada clave, entonces planeaban, diseñaban, desarrollaban y entregaban lo trazado, pero pasaban meses, y al final, se daban cuenta de que no era la solución.

A pesar de que ya había algunos indicios en el siglo pasado, el agilismo como movimiento nació a principios de este siglo con el manifiesto para el desarrollo ágil, que tiene 12 principios, entre ellos, satisfacer al cliente mediante la entrega temprana y continua de software con valor y aprovechar el cambio para proporcionarle ventajas competitivas al cliente.

El agilismo como movimiento nació a principios de este siglo, a pesar de que ya había algunos indicios en el siglo pasado con el manifiesto para el desarrollo ágil, que tiene 12 principios, entre ellos, satisfacer al cliente mediante la entrega temprana y continua de software con valor y aprovechar el cambio para proporcionarle ventajas competitivas al cliente.

Al trabajar con metodologías ágiles, las personas no pueden predecir completamente la solución de los problemas, lo que sí pueden hacer es acercarse lo máximo posible, en pequeños períodos de entregas, y recibir retroalimentación del cliente en cada una de ellas. Si el camino está bien, hay continuar ese mismo, de lo contrario, buscar otros.

Hablemos de los valores del Manifiesto ágil

En el Manifiesto ágil se valoran más a los individuos e interacciones sobre los procesos y las herramientas, es más valioso un software funcionando que una documentación extensiva, asimismo, se valoran más a las personas y sus interacciones, que a los procesos y las herramientas. Destaco esto, pero hablemos de los 12 principios en los que se soporta el Manifiesto ágil.

1. Nuestra mayor prioridad es satisfacer al cliente, mediante la entrega temprana y continua de software con valor.

2. Aceptamos que los requisitos cambien, incluso, en etapas tardías del desarrollo. Los procesos ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.

3. Entregamos un software funcional, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.

agile_meth

4. Los responsables del negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.

5. Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan y confiarles la ejecución del trabajo.

6. El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara.

7. El software funcionando es la medida principal de progreso.

8. Los procesos ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.

9. La atención continua a la excelencia técnica y al buen diseño mejora la agilidad.

10. La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado es esencial.

11. Las mejores arquitecturas, requisitos y diseños emergen de equipos autoorganizados.

12. A intervalos regulares, el equipo reflexiona sobre cómo ser más efectivo para ajustar y perfeccionar su comportamiento en consecuencia.

En agilismo, deberíamos siempre estar pensando, diseñando, desarrollando en función del usuario, lo que al final va a determinar si algo es valioso, o no, a partir del uso y la satisfacción de la necesidad. Como vemos, uno de los principios del Manifiesto ágil dice que la principal prioridad es satisfacer al cliente, mediante la entrega temprana y continua, lo que resume el foco, y los otros valores complementan mucho ese. Los equipos reflexionan constantemente para encontrar maneras de ser más efectivos y ajustar sus comportamientos.

¿Cuáles son las características de los equipos ágiles?

Son equipos que tienen cross-funcionalidad, que significa como un todo (como equipo), tienen todas las capacidades necesarias para resolver un determinado problema y no deberían depender de otras áreas o equipos, no quiere decir que sean superhéroes, que sepan de todos los dominios del conocimiento, pero entre ellos se complementan y aprenden.

agile_teams

Son autoorganizados, eso significa que a partir de un objetivo y unas prioridades en función del valor, deciden cómo desarrollar la solución, toman ciertas decisiones y asumen riesgos y compromisos que les permite lograr los objetivos. Normalmente, son equipos pequeños, algunos expertos dicen que lo ideal es de siete personas, pero no significa que uno de cuatro personas, o nueve, no funcione.

Tiene que ver con la complejidad de las relaciones de las personas, cuando tengo grupos grandes empiezo a tener mayor dificultad para que se organicen, para que los conflictos sean aceptables y tengan soluciones; es mucho más difícil que tengan esa cross-funcionalidad y resuelvan el problema por sí mismos.

Son equipos que pueden tener competencias de desarrollo de software y pruebas como normalmente los conocemos, pero también deberían incluir otras capacidades más allá de desarrollar líneas de código y probarlas, en nuestro caso es importante la participación de expertos en Experiencia de Usuario, en Arquitectura y Seguridad. Alrededor del equipo, pueden estar otras personas que apoyan el entendimiento de las necesidades y soluciones.

Inspección y adaptación: los principios más importantes del agilismo

A partir del resultado, me inspecciono, me adapto y tomo decisiones, la inspección y la adaptación pueden darse desde muchas dimensiones: la forma cómo trabaja un equipo y los métodos que usa, entonces los integrantes se preguntan ¿estamos trabajando bien?, ¿nos analizamos? o ¿hacemos cambios? Es inspeccionar el resultado, adaptarse y hacer ajustes con la retroalimentación del cliente.

Entonces tiene mucho que ver con las personas que están trabajando y las interacciones que tienen porque finalmente somos individuos que conformamos equipos para solucionar problemas que tienen otras personas, no es tener una fórmula mágica. La complejidad de los mismos usuarios y sus interacciones hacen que nos tengamos que enfrentar permanentemente a esas cosas inesperadas, los productos y relaciones en el mercado.


Hay muchas metodologías, pero centrémonos en Scrum ¿Qué es?

El Scrum es un marco de trabajo, un framework basado en los principios y valores del agilismo, parte de la base de lo que se llama un product backlog o pila de producto, que está priorizada. Los equipos entienden las necesidades con la ayuda del product owner (dueño del producto) y establecen un compromiso para desarrollar cierta porción de esa pila de producto en el sprint (tiempos de entrega), que suele ser un periodo entre 15 o 30 días. Lo ideal es que se realice en máximo 15 días, ya que se puede reducir el espectro de errores o cambios en ese tiempo.

Los equipos empiezan a trabajar en el sprint, haciendo inspección y adaptación. Todos los días, se evalúan los compromisos, las cosas que se hicieron para acercarse a este y cómo se va a comprometer cada persona al siguiente día y si tiene algún impedimento, algo que lo está bloqueando, para seguir el objetivo del sprint.

El framework invita a tomar el proyecto que hay en mente y detallarlo a través de historias de usuario, que ayudan a conocer con profundidad todo el espectro del proyecto. Una vez realizadas, se define cuáles de esas historias dan valor al producto de manera inmediata.

Uno de los aspectos más resaltantes del framework es que ayuda a la corrección de errores o a la adaptación de cambios en tiempos muy cortos. El paso siguiente es tomar esas historias de usuarios que definimos en principio y dividirlas en sprints para entregar el mayor valor posible al producto, tomando en cuenta la velocidad del equipo de trabajo y la complejidad de las historias.

 

 

¿Cuáles son los  roles de un equipo de Scrum?

Product owner: es la persona que sabe cuáles son las necesidades de los usuarios, conoce el negocio de pies a cabeza y junto con él se definen las prioridades del proyecto.

Scrum master: conoce todo el seguimiento del proyecto, se encarga de coordinar las reuniones, se preocupa por el rendimiento y la mejora continua del equipo, ayuda a quitar obstáculos que puedan presentarse durante el trabajo y hace de muro de contención para cuando llegan las presiones externas.

Equipo de desarrollo: es el equipo conformado por el grupo de desarrolladores que se encarga del cumplimiento de las actividades del proyecto.

Usuarios o stakeholders: son las personas para quienes esta dirigido el proyecto, es decir, los usuarios finales que utilizarán el producto que estamos desarrollando, tal y como lo indica su término en inglés, son “las partes interesadas”.

¿Qué se realiza en el proceso de Scrum?

Product backlog: según la guía de Scrum, la Lista de Producto es una lista ordenada de todo lo que podría ser necesario en el producto, y es la única fuente de requisitos para cualquier cambio a realizarse en el producto. La Lista de Producto enumera todas las características, funcionalidades, requisitos, mejoras y correcciones que constituyen cambios a ser hechos sobre el producto para entregas futuras. Los elementos de la Lista de Producto tienen como atributos la descripción, la ordenación, la estimación y el valor.

La idea es conseguir la historia más sencilla dentro de las que tenemos. No significa necesariamente la más fácil de realizar, sino la que todos los miembros del equipo sepan cómo hacerla para que se convierta en el común denominador.  Puntuar es una actividad que se realiza dentro del proceso de Scrum y nos ayuda a dar puntuaciones altas a historias complejas y bajas a historias más sencillas. Con base en eso podremos conocer la cantidad de puntos a los que puede comprometerse un equipo durante una iteración o sprint.

Sprint backlog: Según la guía de Scrum, es el conjunto de elementos de la Lista de Producto seleccionados para el Sprint, más un plan para entregar el Incremento de producto y conseguir el Objetivo del Sprint.

Burndown chart:  es una herramienta para facilitar la visibilidad en el progreso hacia la entrega de valor y el cumplimiento del compromiso establecido por el equipo en la reunión de planeación, mediante elementos del backlog terminados a lo largo del sprint representados en puntos de historia de usuario

Es una gráfica que nos permite conocer el avance del equipo, que cruza los días del sprint contra los puntos prometidos. De esa forma, el product owner puede estimar si el desarrollo va lento o si, por el contrario, el equipo puede producir más puntos del que se comprometió en este sprint.

scrum_board

¿Cuáles son los pasos o ceremonias que contempla Scrum?

Sprint planning: consiste en una reunión con los miembros del proyecto. Los únicos de los que se puede prescindir en esta reunión serían los stakeholders. En ella se toman todas las historias de usuarios ya priorizadas previamente y se decide sobre cuáles de estas se realizarán en el sprint. Se reparten las actividades entre los miembros del equipo y se establece la cantidad de puntos con las que se va a comprometer el equipo en ese sprint.

Daily Scrum: es un proceso iterativo que se realiza diariamente con todos los integrantes del equipo de trabajo, una reunión de máximo 15 minutos (algunos suelen usar 30 minutos), en la que se discute el desarrollo que ha tenido el sprint y solo se permite responder cuatro preguntas a cada integrante del equipo: ¿Qué ha realizado desde el último daily? ¿Qué va a realizar hoy? ¿En qué tiene obstáculos? ¿O en qué le puedo ayudar el equipo?

Sprint review: al final del Sprint se lleva a cabo una revisión de Sprint para inspeccionar el Incremento y adaptar la Lista de Producto si fuese necesario. Durante la revisión de Sprint, el Equipo Scrum y los interesados colaboran acerca de lo que se hizo durante el Sprint. Basándose en esto, y en cualquier cambio a la Lista de Producto durante el Sprint, los asistentes colaboran para determinar las siguientes cosas que podrían hacerse para optimizar el valor. Se trata de una reunión informal, no una reunión de seguimiento, y la presentación del Incremento tiene como objetivo facilitar la retroalimentación de información y fomentar la colaboración.

Sprint restrospective: es una oportunidad para el Equipo Scrum de inspeccionarse a sí mismo y crear un plan de mejoras que sean abordadas durante el siguiente Sprint.

En definitiva, cada vez más empresas del sector tecnológico y bancario usan el agilismo para resolver problemas complejos, enfrentar el cambio, adelantarse a la competencia y a lo que quieren sus usuarios. 

Empresas exitosas como Spotify, Amazon y Airbnb trabajan para innovar cada día con metodologías ágiles, les dan autonomía a sus equipos, aprenden de los errores y potencian un trabajo colaborativo para ser líderes en el mercado e inspirar a nuevos emprendedores.