Agilidad, complejidad y método empírico
18 de diciembre de 2024
¿Cómo llegan a ser más sencillos los problemas complejos? ¿Cómo evitar que la incertidumbre sea un agujero negro que vaya obstaculizando todo el proceso?
Tratamos de responder a estas preguntas para que podamos empezar a diferenciar cuándo recurrir al método agile puede ser una ayuda y cuándo puede ser innecesario.
Origen, contexto y retos
Agile nace y se desarrolla de la mano de la industria del software. Industria que, en sus orígenes, comienza haciendo análisis muy exhaustivos basados en asunciones, y con la convicción de que es importante lanzar productos muy completos, para evitar que nos roben la idea o que nuestros clientes la rechacen por tener una baja calidad; intentando, de esta forma, cuidar la marca y la reputación.
Estos procesos lentos entran en conflicto con el hecho de que la tecnología y el desarrollo de software han contribuido a acelerar el mundo. Las necesidades y los mercados cambian muy rápido, lo que hace aumentar la incertidumbre. Además, los problemas a resolver muchas veces son complejos y/o requieren especialidades muy diversas.
Con todo esto, para que un negocio pueda mantener su posición en el mercado y establecer ventajas competitivas, necesita ser hábil y rápido en:
- Conocer a sus usuarios, las necesidades y la evolución de los mismos
- Validar que las soluciones resuelven los problemas reales
- Crear soluciones diferenciales, innovadoras, minimizando riesgos y pérdidas
Es decir, deben conseguir:
- Contar con la inteligencia colectiva
- Optimizar procesos
- Fallar pronto y aprender rápido
Agile es una filosofía, una forma de hacer, de gestionar y de liderar que, apoyándose en diversas metodologías y marcos, trabaja en los puntos anteriores. En contextos en los que los cambios se suceden muy rápidamente, en los que la incertidumbre es elevada y hay una alta complejidad, las recetas y las prescripciones no suelen funcionar, no hay fórmulas mágicas ni pasos preestablecidos que podamos seguir con garantía absoluta de éxito. Todos los marcos contribuyen a mejorar la comunicación, la colaboración y la toma de decisiones:
- Alineando a los equipos en torno a un conjunto de valores
- Tratando de minimizar el desperdicio de recursos (tangibles e intangibles) haciendo iteraciones cortas
- Transformando las asunciones en hipótesis, definiendo cómo validar dichas hipótesis, y aprendiendo siempre de la experiencia.
Los valores como Guía
Hace más de veinte años surgió el Manifiesto Agile, que se compone de 4 valores (y 12 principios):
- Individuos e interacciones sobre procesos y herramientas
- Software funcionando sobre documentación extensiva
- Colaboración con el cliente sobre negociación contractual
- Respuesta ante el cambio sobre seguir un plan
Valores que nos han de servir para reflexionar sobre lo que realmente aporta valor y es importante en un momento determinado, pero que no deben llevarnos a considerar que procesos y herramientas, documentación, negociación o plan no son necesarios. En cualquier marco de trabajo ágil existen, pero tienen que existir en la medida en la que nos ayudan a conseguir en cada momento lo más valioso:
- Procesos que nos ayudan a ser más eficientes
- Documentación que nos ayuda a ser rápidos cogiendo contexto y a evitar silos
- Contratos que nos ayudan a tener claras y alineadas las expectativas
- Planes que podamos revisar y adaptar, y que nos ayuden a cumplir nuestros compromisos
Los valores marcan nuestras preferencias y, por ello, nos ayudan a elegir. Por lo tanto van a dar una dirección al trabajo que hacemos, a las acciones que tomamos, a nuestro comportamiento, y nos ayudan así a la hora de definir metas y propósitos.
Los actores que participan en un proyecto son personas con muy diversos valores. El éxito de un proyecto nunca depende de las acciones individuales , sino de cómo de bien o mal colaboran las distintas personas. Una herramienta muy potente para mejorar la colaboración y la toma de decisiones es alinear al equipo en torno a los valores del equipo garantizando que todos los entienden de la misma forma.
El método empírico en Scrum
Agile en general y scrum en particular fomentan y facilitan el uso del método empírico y nos llevan a aprender de la experiencia y a tomar decisiones basadas en lo que observamos, basadas en los datos que recogemos de nuestros experimentos en cada momento. Tenemos que aplicar el método empírico, y tenemos que hacerlo en ciclos cortos, ya que la velocidad de los cambios es elevada. Tenemos que aplicar el método empírico para conocer a nuestros clientes, para conocer y aprender sobre el mercado, pero también para conocer el equipo que formamos, para conocer el ecosistema en el que desarrollamos nuestro trabajo.
En Scrum el método empírico se apoya en tres pilares fundamentales: la transparencia, la inspección y la adaptación.
La transparencia nos indica que tanto los procesos como el trabajo emergentes tienen que ser visibles tanto para aquellos que realizan el trabajo como para aquellos que lo reciben. Es importante visualizar y que la información esté actualizada, tenga el grado de detalle justo que necesitarán sus consumidores y sea fácil de entender por los mismos.
La transparencia nos habilita para poder realizar una inspección óptima, es decir, nos permite confirmar si se cumple lo esperado o si existe alguna variación, nos permite detectar riesgos y problemas. Si no hay transparencia corremos el riesgo de invalidar el proceso de inspección, y esto nos puede llevar a engaños, a una mala gestión de expectativas y a generar desperdicio. Cuando necesitamos saber si vamos bien o vamos mal, debemos preguntarnos con respecto a qué: ¿respecto al presupuesto?, ¿a las fechas?, ¿al plan?, ¿a la consecución de objetivos? Cuando no hay transparencia con respecto a las variables anteriores, no solo es difícil dar una respuesta, sino que no se tiene la información necesaria para poder detectar cuando hay un problema al que es urgente buscar una solución.
Llevando a cabo una buena inspección estaremos capacitados para hacer o no la adaptación necesaria. Es decir, es lo que nos permitirá corregir procesos, perseverar, modificar o descartar la solución que estamos construyendo para un problema determinado.
Para poder completar este ejercicio de adaptación las personas necesitan estar empoderadas, poder autogestionarse y tomar decisiones, siempre sin perder de vista que la adaptación tiene que ser coherente con los medios que se tienen y consensuada con todas las personas interesadas. Es decir, no podemos adaptarnos decidiendo unívocamente modificar la fecha de publicación de la solución, tampoco decidiendo disminuir sin consensuar el margen de un proyecto, ni eliminando funcionalidades que estaban comprometidas sin que esto se haya gestionado adecuadamente.
Es importante buscar la coherencia con el contexto que tengamos en un momento dado, y gestionar las expectativas y canalizar los esfuerzos del equipo sabiendo el margen de adaptación que se va a tener. Elaborar propuestas a las que no se les va a dar una oportunida no solo nos lleva a no optimizar la capacidad del equipo, sino también a aumentar la frustración y la desmotivación del mismo. Implantar esta forma de trabajar es un proceso en sí, puede ser una transformación progresiva en la que ir consiguiendo progresivamente los beneficios descritos.
En resumen, agile nos ayuda a minimizar la incertidumbre a través del uso del método empírico, mostrándonos una forma de trabajar y organizarnos en la que continuamente debemos estar experimentando y aprendiendo de los resultados, definiendo hipótesis, pensando cómo vamos a comprobar si se cumplen o no, midiendo, analizando datos y decidiendo si perseverar, modificar algo, o abandonar directamente un camino o alguna práctica.
Nos ayuda a enfrentarnos a cambios rápidos: implementando ciclos cortos, facilitando la inspección y la adaptación. Y nos ayuda a abordar la complejidad dividiendo el problema, ayudándonos a diferenciar lo imprescindible, lo fundamental de lo superfluo, y mantenernos enfocados.
¿Y cuándo no debemos aplicar agile? Cuando, por el contrario, estemos en contextos con poco cambio, en los que tengamos un histórico y un conjunto de buenas prácticas que podemos aplicar sin problemas, problemas sencillos, poca incertidumbre, equipos pequeños, o plazos, diseño y alcance no modificables.
Gestión de la Complejidad y la Incertidumbre a través de Scrum
Scrum es un marco de trabajo*(¹) ligero que ayuda a generar valor a través de soluciones adaptables para problemas complejos. Esta complejidad se deriva de la velocidad a la que todo cambia, de la incertidumbre, de la necesidad de aunar distintas especialidades para construir una solución a un problema.
Scrum no define pasos específicos en detalle, sino las reglas del juego para que cada equipo defina cómo jugar. La primera regla es que en cada evento, en cada artefacto y desde cada rol se deben fomentar y facilitar la aplicación del método empírico. No nos prescribe cómo usarlos exactamente, sino que nos proporciona una serie de reglas para guiar a todas las personas del equipo en sus relaciones e interacciones. Profundizaremos en estos elementos en próximos artículos.
¿Cómo se apoya Scrum en los valores para lograr el éxito? Alineando al equipo en torno a una definición de compromiso, enfoque, apertura, respeto y coraje, garantiza que todos estén preparados para remar en la misma dirección, centrarse en lo importante y comunicarse de forma efectiva. Veremos más adelante cómo Scrum nos proporciona eventos y artefactos diseñados para aplicar de manera continuada la transparencia, la inspección y la adaptación, para aprender, y tomar decisiones basadas en este aprendizaje. Y a través de los valores da al equipo una referencia de cómo comportarse en los eventos, cómo enfrentarse a los problemas, cómo elegir acciones cuando en cada evento tengamos que decidir cuáles son los siguientes pasos, nos ayudará a fijar nuestros objetivos y propósitos a medio y a largo plazo.
(¹) La diferencia entre metodología y marco de trabajo arroja un matiz bastante interesante:
- Metodologías: conjunto de procedimientos para conseguir ciertos objetivos que requieren habilidades específicas.
- Marcos de trabajo: conjunto estandarizado de conceptos, prácticas y criterios, que sirven para resolver un tipo de problema, y que se pueden tomar como referencia para afrontar problemas similares.
Podríamos decir que agile no es más que una filosofía, una forma de hacer, de gestionar y de liderar, que se apoya en algunas de estas metodologías y marcos de trabajo.
Nuestras últimas novedades
¿Te interesa saber cómo nos adaptamos constantemente a la nueva frontera digital?
19 de diciembre de 2024
Contract Testing con Pact - La guía definitiva
10 de diciembre de 2024
Tecnologías rompedoras hoy, que redibujarán el mapa de la innovación en 2025
3 de diciembre de 2024
Desarrollo sostenible: Minimizando la huella digital y optimizando el consumo
26 de noviembre de 2024
El ecosistema digital con el que Vítaly reinventa el cuidado de la salud