El problema con ser Agile, es no ser Agile


Querer, en un equipo o empresa, adoptar la agilidad (Agile) por las razones equivocadas se transforma en un problema, ya que al nacer de una idea equívoca es muy posible que quienes estén involucrados en el proyecto no entiendan realmente qué es el agilismo y las ventajas que aportaría el adoptarlo correctamente, además de ello también es probable que el equipo o la empresa no tengan claro cómo lograr ser Ágiles.


“Administrar es hacer las cosas bien. Liderar es hacer lo correcto”

Peter Drucker


De acuerdo con el 15th State of Agile Report (2021), las razones más urgentes para que las organizaciones adopten el agilismo son la velocidad y la flexibilidad, las cuales no son necesariamente razones desacertadas, pero probablemente en esa acción reactiva, dada la urgencia, se caiga en la tentación de darle prioridad a la celeridad dejando de lado, muy probablemente, la calidad de la solución o al equipo de desarrollo.


Recordemos los cuatro valores que se mencionan en el manifiesto del desarrollo ágil, en el cual se reconoce el mérito de lo que se encuentra a la derecha de cada valor, pero se le da más importancia a lo que encontramos a la izquierda:

  • 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


Estos valores, al igual que los doce principios del mismo manifiesto, deberían ser claros para todo el equipo de desarrollo de software ágil, y ser puestos en práctica en el día a día de su trabajo, esto ayudará a mantener la simplicidad y ligereza que caracteriza al agilismo.


Este manifiesto es una forma abstracta de ver el agilismo que nos entrega una ayuda gigante a la hora de saber si lo estamos haciendo bien, sin embargo nos encontraremos, en la práctica, con interrogantes como ¿Cómo aseguraremos que el software está funcionando correctamente?, ¿Cómo aceptaremos los cambios en los requerimientos?, ¿cómo se negociará con el cliente para tener un nivel de colaboración acorde a sus necesidades?, entre otras que, en mi opinión, deben responderse haciendo un análisis de cada caso, sin embargo, ya existen metodologías ágiles, como eXtreme Programming (XP), que pueden ayudar a contestar estas preguntas.


“Aunque las escrituras engañen a la gente acerca de la verdadera naturaleza de la realidad, pueden no obstante conservar su autoridad durante miles de años”

Yuval Noah Harari



Estas metodologías ágiles, y muchas otras, han surgido dentro de lo que podríamos considerar un boom del agilismo en el que, como dice Robert Martin (2020), pueden realmente ser agilismo pero con otras cosas más, las cuales pueden llegar a complicar su entendimiento e implementación, o que sencillamente lleven a los equipos a transformarse en algo similar al agilismo.


Por ejemplo, Scrum es un framework ágil que ha ido evolucionando en el tiempo, en gran medida adoptando prácticas de XP, en la actualidad el Scrum Master tiene el rol de ayudar al equipo a implementar adecuadamente el framework, es decir es el coach del equipo, y es común encontrarnos con situaciones donde el Scrum Master pasa a tomar el rol de director del proyecto, cargo que difiere bastante del de un coach, esto puede deberse a la falta de conocimiento y experiencia del Scrum Master.


Actualmente la certificación de Scrum Master es ofrecida por diversas empresas de manera virtual, usualmente está acompañada de un programa de estudio en el que se comparte información realmente valiosa para entender Scrum, pero este programa suele tener una duración de a lo sumo una semana, después de la cual el alumno estaría en condiciones de rendir el examen teórico. De aprobar dicho examen se estaría preparado, hipotéticamente, para enfrentar el rol de Scrum Master.


“Si vas a ganar en la era digital, ser un mejor socio comercial y colaborador con tu equipo de tecnología es crítico.”

Jhon Rossman


La realidad es que un Scrum Master requiere habilidades más allá de solo conocer el framework Scrum, por ejemplo, se necesita desarrollar habilidades de liderazgo servicial, como lo es poder influir en otros para llevar con éxito la gestión del cambio en el equipo para la implementación y el mantenimiento del marco de trabajo Scrum; requiere desarrollar pericia para llevar a los directivos de la empresa a permitir la adecuada implementación de una metodología ágil, además de entregar la confianza y libertad necesarias para ello. Estas habilidades, en conjunto con otras, se desarrollan en mucho más tiempo que una semana de estudio, asimismo, me atrevería a decir, se requiere mucha experiencia.


Es común que las empresas, o sus directivos, crean que el único que debe ser capacitado en la metodología ágil es el coach, pero lo cierto es que todo el equipo debería ser capacitado, ya que todos sus miembros deberían disponer de ese conocimiento para facilitar la implementación de las prácticas ágiles, y el cumplimiento de los principios y valores del agilismo.


Por ejemplo, es usual que los directivos de las empresas o los clientes de un proyecto sientan la necesidad de tener «fechas contractuales» donde se realizarán entregas con un alcance y costo definido, a veces disfrazan estos hitos en el agilismo como un Release Planning, pero la realidad es que los proyectos de Software son diferentes a otros tipos de proyectos y, como lo menciona Robert Martin, el equipo debería tener la habilidad y capacidad para volver a estimar en el tiempo esas entregas, es decir, no tener firmado en sangre el alcance, costo y fecha de estas entregas; el agilismo nos invita a que el equipo pueda identificar de manera muy temprana los cambios sobre las estimaciones hechas para el Release Planning y tener el coraje de informar a tiempo cambios sobre la estimación inicial, esto le dará información valiosa al cliente y a los directivos, y con ello podrán tomar decisiones más oportunas, también les permitirá tanto al cliente como al equipo entrar en una estimación más honesta y aterrizada, donde se pueda reducir el alcance para entregar ciertas características del software que le darían el valor mínimo necesario para una entrega, y dejar otras características para futuros releases; estas prioridades deberían ser identificadas y definidas entre el equipo de desarrollo de software y el cliente.


Permitir tener la flexibilidad de adaptarse a los cambios (tanto de requerimientos como de alcance), facilitará sacar el máximo valor del agilismo, sin embargo se debe tener en cuenta que la calidad del producto no se debería negociar.


Los equipos ágiles se caracterizan por aprender de la experiencia, y esto ayuda a mantener un ritmo de trabajo que debería ser sostenible a través de las iteraciones, como se menciona en XP, sin embargo, situaciones donde el código fuente no esté limpio reducirán la velocidad del equipo, porque la mantenibilidad del sistema se volverá cada vez más complicada.


“Elijo a una persona perezosa para hacer un trabajo duro. Porque una persona perezosa encontrará una manera fácil de hacerlo.”

Bill Gates


El desarrollo ágil, según Kent Beck (1999), es para equipos pequeños o medianos de desarrollo de software para manejar los requerimientos poco claros o en constante cambio, reduciendo la brecha entre empresa y desarrollo. En casos de problemas grandes donde hay soluciones de software de mayor envergadura, proyectos donde se debe abordar muchas características al tiempo, se puede pensar en varios o muchos equipos pequeños, incorporándose en la gestión de una empresa grande; por ejemplo, existen frameworks, como LeSS o Scrum de Scrums, que documentan una serie de herramientas y prácticas para gestionar estos escenarios más complejos, y por consiguiente son más difíciles de implementar y seguir y lo cierto es que ya no es agilismo, sino que puede ser agilismo con otros elementos añadidos. Lo recomendable es evitar complicar la metodología ya que esto permitirá resolver los problemas de manera más fácil.


Existen muchos otros problemas a los que se enfrentan los equipos en búsqueda del agilismo, en este artículo intenté resaltar los que, en mi opinión, son más comunes. Es importante mantener la simplicidad y la facilidad de las cosas al momento de adoptar el agilismo, tomar acciones con base en la información de cada iteración, sin dejar de lado la profesionalidad, los valores y los principios. Un Agile coach será de gran utilidad en este proceso, recordando que todo el equipo debe ser capaz de entender las prácticas que se adopten.


Y tú, ¿con qué problemas te has encontrado al momento de implementar las metodologías ágiles?


Por Carlex

Edición por Kirito

Fuente oficia y agradecimientos por el contenido: El problema con ser Agile, es no ser Agile – El arte del software (wordpress.com)




31 visualizaciones0 comentarios

Entradas Recientes

Ver todo