Artículo

Ser o no ser ágil, ahí está el detalle

15 septiembre 2020 DevOps
post-ser-o-no-ser-agil

El mundo en general atraviesa por una situación compleja, las empresas necesitan hacer cada vez mas con menos, con menos recursos, con menos tiempo, con menos dinero. Esta situación aplica de manera transversal a todos los procesos de la organización, ninguna de las áreas escapa a ella. Además, la competencia por lograr acceso a nuevos clientes y nuevos segmentos de mercado es una lucha intensa donde no hay pausas. Como lo indican Jason Jennings y Laurence Haughton, en nuestros tiempos No es el pez grande quien se come al chico, es el rápido el que se come al lento. Aquellas empresas que pueden anticiparse a los cambios y ser ágiles para adaptarse son las que van a sobrevivir en el futuro cercano.

El desarrollo de software acompaña de forma estrecha todos los procesos de innovación de las empresas. Los responsables de identificar aquellos nichos de negocio donde existen oportunidades necesitan respuestas rápidas de los departamentos de Tecnología para llevar sus ideas a la realidad en el menor tiempo posible. Ya casi no escuchamos hablar de proyectos de implementación de soluciones que tomen un año en su desarrollo. Eso quedo en el pasado. Se necesitan resultados en semanas incluso en días. Es aquí, donde entra en el juego la agilidad.

Sobre la agilidad se ha escrito mucho, luego de leer y escuchar a varios autores mi definición de la agilidad pienso que “Es la capacidad que tienen los responsables de la dirección de proyectos en general, de estructurar una serie de pasos a seguir por parte del resto de los miembros del equipo de trabajo, estos pasos son el producto del aprendizaje resultante de la experiencia previa (aciertos y desaciertos) y tienen una estrecha relación con la habilidad de adaptarse a los cambios que pueden surgir en el ambiente, todo esto con el principal objetivo de alcanzar las metas trazadas en el menor tiempo posible”.

Ya hablando específicamente de proyectos de software el manifiesto ágil, nos entrega 12 principios que nos permiten tener mayor claridad sobre que debemos tener en cuenta para considerarnos ágiles.

  1. La principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor. Este principio no requiere mayor explicación, debemos trabajar de la mano con el cliente. Entender sus necesidades y alinear nuestras entregas a tiempo, garantizando la calidad.
  2. Aceptamos que los requisitos cambien, incluso en etapas tardías de desarrollo. Un cambio puede proporcionar una ventaja competitiva al cliente. Es importante ser resiliente, afrontar la adversidad y seguir adelante.
  3. Entregamos software funcional frecuentemente en el período de tiempo más corto posible. El “team” responsable del desarrollo son los encargados de establecer los tiempos de entrega, generar compromiso por parte de los integrantes del equipo y alinearlos con los objetivos del negocio nos ayudara a cumplir este principio.
  4. Los responsables del negocio y los desarrolladores trabajan juntos. Aun cuando, no es una buena practica que los responsables del negocio estén en el día a día de los desarrolladores, si es importante que exista una convivencia entre ellos, entender las necesidades de todos, permite generar equipos cohesionados y comprometidos.
  5. Los proyectos se desarrollan por medio de individuos motivados en un entorno apropiado. Un empleado motivado trabaja mas y mejor, de igual forma, un entorno de trabajo apropiado, donde los miembros del equipo cuenten con todas las herramientas necesarias permitirá que los objetivos trazados se alcancen en los tiempos planificados y con la calidad esperada.
  6. El método más eficaz de comunicar información es la conversación cara a cara. Promover ambientes donde la información fluya es vital para alcanzar los objetivos. Permitir que todos los involucrados puedan conversar cara a cara garantiza que los mensajes lleguen de forma clara y que todos puedan expresar sus puntos de vista.
  7. El software en funcionamiento es la medida principal de progreso. Una aplicación en producción, que haya superado los principios de calidad establecidos, donde los usuarios finales puedan ver reflejado lo que plantearon al equipo en la fase de descubrimiento y planificación, es la mejor medida del progreso en general del proyecto.
  8. Los procesos Ágiles promueven el desarrollo sostenido, se debe mantener un ritmo constante de forma indefinida. Este principio, se aliena de manera importante con la innovación, una empresa que mantenga un ritmo constante de salidas a producción de soluciones que ofrezcan nuevos servicios a sus clientes, genera un impacto entre sus competidores y usuarios. Los primeros tendrán que perseguirles y los segundos estarán atentos y a la expectativa de las nuevas soluciones que les van a ofrecer.
  9. La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad. Contar con un buen diseño, elaborado en etapas tempranas puede apartar mucho a la agilidad, de igual forma, un equipo que cuente con todas las habilidades necesarias para cumplir con sus tareas.
  10. La simplicidad es esencial. Debemos priorizar la simplicidad de los procesos de desarrollo, mantener todo simple va muy de la mano con la Agilidad.
  11. Los equipos auto-organizados generan mejores arquitecturas, requisitos y diseños. Los equipos que trabajan bajo esquemas agiles deben ser los responsables de organizar su trabajo. Este principio va muy de la mano de generar confianza en los miembros del Team. Ellos deben tener claro, que el producto final de su trabajo es la carta de presentación hacia el cliente final (que puede ser interno o externo). Si el equipo en su conjunto tiene clara esta responsabilidad, todos los frutos de su trabajo contaran con la calidad esperada.
  12. El equipo tiene que reflexionar sobre cómo ser más efectivo para ajustar su comportamiento y su trabajo. Con el pasar de las iteraciones, los equipos alcanzaran niveles de compenetración importantes. Todos estarán enfocados en lograr el objetivo trazado con la calidad esperada en el menor tiempo posible, no obstante, siempre habrá espacio para mejorar. Las reuniones del equipo, planificadas o no, deben darse con cierta periodicidad. Se debe promover un ambiente donde todos expresen sus ideas, sus reflexiones libremente. En esas sesiones, no hay ideas buenas o malas, correctas o incorrectas. Todos deben escuchar a todos, de esta forma el equipo podrá entrar en una espiral de mejoramiento constante que los haga cada vez mejores.

Desde nuestra experiencia, la administración de un proyecto va a depender en gran medida del juicio experto de la persona responsable. El camino mas largo que conduce a la sabiduría es la experiencia, es un camino tortuoso, pero al final luego de recorrerlo muchas veces te deja aprendizajes que no pueden ser adquiridos de otra forma. Existen muchas metodologías y marcos de trabajos que nos van a servir como una línea de referencia, sin embargo, es la experiencia la que nos permite actuar en casos bordes.

Para finalizar, hablar de agilidad está muy de moda hoy en día, muchas empresas presumen ser ágiles para poder atraer nuevos clientes. Desde mi punto de vista, la agilidad es el resultado de un proceso que toma tiempo, donde se debe lograr que todos los involucrados se comprometan con un fin y trabajen por un objetivo común.