-
Vientos de Cambio
Mucho se oye de Agile, de Agile project management o de la “Agile methodology” como algo propio del siglo XXI, pero en realidad el origen y los valores Agile comezaron a gestarse un poco antes. Los 90s fueron una década muy interesante, MTV tuvo su mejor momento, la música Grunge invadió la radio y la Internet llegó a la vida de las masas. Junto con todo el boom de Internet la manera de hacer software cambió por completo, las empresas comenzaron a aprender cómo hacer software a gran escala y para usuarios interconectados en todo el mundo, lo que trajo nuevas exigencias. En la búsqueda del éxito muchas de esas compañías comenzaron a importar las “buenas prácticas” de otras industrias esperando buenos resultados, los cuales al final fueron mixtos en muchos casos (vea Waterfall Model).
Muchos sistemas electromecánicos ya comenzaban a ser sustituidos por electrónica, y un tiempo después el software comenzó a tener cada vez más relevancia, pero el desarrollo y la interacción de estos elementos se vieron atrapados por modelos predictivos que intentaban saber todos elementos involucrados en un sistema de antemano, lo cual resultaba (y aún resulta) muy difícil de establecer al comienzo de un proyecto de software con altos niveles de incertidumbre, lo que causa desde entonces periodos de tiempo de desarrollo muy largos con fechas de término difíciles de predecir. Esta situación llevó a la frustración a muchos líderes, quienes a pesar de la situación fueron creando y adaptando sus propias técnicas, métodos y marcos de trabajo a los modelos tradicionalistas de desarrollo, lo que eventualmente dio pie a los primeros guiños del pensamiento Agile.
Nace Agile
Después de varias reuniones previas, en Febrero del 2001 un grupo de profesionales tuvieron una nueva y ahora famosa reunión cuyo mayor aporte fue el Manifiesto Agile (The Agile Manifesto). Este manifiesto fue escrito y firmado por diecisiete líderes del desarrollo de software (hoy conocidos como la Comunidad Agile). Su documento dio un nombre a cómo este grupo estaba desarrollando software y proporcionó una lista de declaraciones de valor Agile:
- Individuos e interacciones sobre procesos y herramientas
- Software trabajando sobre documentación completa
- Colaboración del cliente sobre la negociación del contrato
- Responder al cambio sobre seguir un plan
Y el grupo añadió:Esto es, mientras que hay valor en los elementos en la derecha, valoramos más los elementos de la izquierda.Puede ver la historia y el manifiesto original en agilemanifesto.org
En particular, estos líderes de opinión buscaron formas de construir rápidamente un software en funcionamiento y ponerlo en manos de los usuarios finales. Este enfoque de entrega rápida proporcionó un par de beneficios importantes. Primero, permitió a los usuarios obtener algunos de los beneficios comerciales del nuevo software más rápido. En segundo lugar, permitió que el equipo de software obtuviera retroalimentación rápida sobre el alcance y la dirección de los proyectos de software de forma periódica. En otros palabras el enfoque Agile había nacido.
Detrás de las Declaraciones de Valor Agile.
Ya conoce la lista de declaraciones de valor, pero veamos cuales son las razones detrás de ellas:
Valorar las personas y las interacciones sobre los procesos y herramientas. Los que tenemos un camino en recorrido en el mundo de desarrollo sabemos que un equipo con grandiosas personas funciona bien aun utilizando mediocres herramientas y que estos equipos siempre superan a otros equipos disfuncionales con personas mediocres que tienen excelentes herramientas y procesos. Si se trata a las personas como piezas desechables no habrá proceso, herramienta o metodología que salve a sus proyectos de fallar. Los buenos procesos de desarrollo reconocen las fortalezas (y debilidades) de los individuos y sacan provecho de ello en lugar de intentar que todos sean homogéneos.
Valorar el software que funciona sobre la documentación completa. Porque nos lleva a tener versiones incrementalmente mejoradas del producto al final de cada iteración. Esto hace posible recolectar temprana y frecuentemente algo de retroalimentación sobre el producto y el proceso nos permite saber si deberemos corregir el rumbo, hacer ajustes o seguir adelante con la misma visión. A medida que el software desarrollado crece con cada iteración, se puede mostrar a los usuarios probables o reales. Todo esto facilita la relación con los clientes y mejora las probabilidades de éxito.
Valorar la colaboración con el cliente sobre la negociación de contratos. Porque para crear equipos ágiles debemos buscar que todas las partes involucradas en el proyecto trabajen para lograr el mismo conjunto de metas. La negociación de contratos a veces pone en conflicto al equipo de desarrollo y al cliente desde el principio. Creo que los juegos multiplayer online battle arena son un gran ejemplo, personalmente me gustan juegos como Heroes of the Storm o League of Legends. Estos son juegos cooperativos donde se forma un equipo de 5 miembros, el objetivo es que el equipo debe destruir la base del enemigo trabajando juntos. Todos los jugadores ganan, o todos los jugadores pierden. Estos juegos son sorprendentemente divertidos, y lo que nos gustaría es que los equipos de desarrollo de software y los clientes se acercaran con esta misma actitud de colaboración y objetivos compartidos. Sí, los contratos a menudo son necesarios, pero los términos y detalles en un contrato puede ejercer una gran influencia sobre las diferentes partes involucradas, y convertir un ambiente colaborativo a uno competitivo.
Valorar responder a los cambios sobre seguir un plan. Porque el objetivo principal es aportar la mayor cantidad de valor posible al cliente del proyecto y usuarios. En proyectos grandes y/o complejos, encontrará que es muy difícil incluso para los usuarios y/o clientes, conocer cada detalle de cada característica que desean. Es inevitable que los usuarios vengan con nuevas ideas, o bien que decidan que algunas características críticas inicialmente ya no lo son tanto. Para un equipo ágil, un el plan es una visión del futuro, pero muchos puntos de vista son posibles y los factores ambientales pueden cambiar con el tiempo. A medida que un equipo gana conocimiento y experiencia sobre un proyecto, el plan debe ser actualizado de acuerdo a ello.
Con las cuatro declaraciones de valores del Manifiesto Ágil en mente creo que puede comenzar a comprender que significa tener un enfoque ágil para estimar y planificar.
Enlaces relacionados:
To agility and beyond: The history—and legacy—of agile development
What Is Agile?
Planeación, Cono de Incertidumbre y Estimaciones en ITEstos son alguno libros recomendables para saber más:
Emmanuel Herrera
IT professional with several years of experience in management and systems development with different goals within public and private sectors.
Emmanuel worked through development and management layers, transitioning from developer and team development leader to Project Manager, Project Coordinator, and eventually to Scrum Master, Product Owner, and Agile Coach.
Some certifications include: PSM, PSPO, SSM.