En el ecosistema de entrega de productos de software, enfrentamos la necesidad de entregar valor al usuario y desarrollarlo de la manera más eficaz posible. Aquí es donde las metodologías ágiles juegan un papel fundamental.

¿Pero realmente éstas metodologías se deben seguir al pie de la letra? Mi respuesta posiblemente es polémica, pero sencilla: NO. 

El marco del agilismo y la adaptación son aquellos que nos permiten alcanzar los objetivos de negocio y enviar a producción los desarrollos de producto realizados por el equipo que vayan acorde a las expectativas del mercado y que a su vez sean escalables. La burocracia y el exceso de seguimiento de las directrices de los marcos metodológicos, pueden retrasar las entregas y generar la sensación de “pérdida de tiempo” dentro del equipo.

Desde mi punto de vista el agilismo es un apalancador que permite manejar los constantes cambios y adaptarse tanto a las necesidades del cliente como del equipo sin gastar un tiempo excesivo en planificación como sucede en metodologías como el desarrollo en cascada o “waterfall”. 

La eficiencia debe ser la clave y aún más importante, hemos de tener en cuenta que la aplicación de éstas metodologías varía de acuerdo a la madurez del equipo, el conocimiento del producto y la definición previa de los roles en los que la adaptabilidad haga parte intrínseca de su ADN.

¿Por qué se tiende a pensar que el agilismo es sólo scrum?

La metodología scrum fue popularizada al principio de la década del 2000 y rápidamente empezó a implementarse en los equipos de desarrollo en compañías tan relevantes como Microsoft, Google o Salesforce, haciéndola ampliamente popular y aplicándose en todo tipo de industrias, ya fuese dedicadas en exclusiva a la creación de productos de software a aquella en las que la tecnología era una de las piedras angulares del negocio.

En la metodología Scrum encontramos roles claramente identificados dentro del equipo (Developers, Product Owner, Scrum Master) y ceremonias que permiten la planificación de cada de las tareas que deberán ser abordadas por el equipo. 

Y si hablamos de otras metodologías ágiles

En cuanto a las metodologías ágiles, aunque scrum es una de ellas, hay otras como Kanban o Lean,  que permiten la auto-organización y la entrega continua de productos de software.

Particularmente soy partidaria de utilizar el agilismo más no ceñirme a principios rígidos (como algunas ceremonias del scrum), que pueden restarle velocidad al equipo y ni añadir valor final para los usuarios.

Conceptos del Lean como el MVP, permiten que el equipo entregue valor en el menor tiempo posible, llegando oportunamente al mercado y conociendo lo antes posible las opiniones de los usuarios. 

En ésta metodología el producto es el corazón y el compromiso del equipo son esenciales para lograr escalar desarrollos y entregar nuevas funcionalidades e incluso productos.

Cuando nos centramos en productos maduros con entregas continuas y cambios en priorización, personalmente me decanto por Kanban, con un tablero sencillo y una pila de tareas o backlog, podemos ser flexibles, tomando tareas acordes a la capacidad del equipo y aquellas principales que realmente otorgan valor,  mantengan un flujo constante de entrega de producto y hagan los procesos más eficientes.

Ejemplo de Kanban:

Kanban, Product Manager

¿Cómo logramos que la filosofía ágil sea aplicada en los equipos?

El primer paso es el conocimiento del producto y el ¿Por qué? 

Siempre que empezamos a desarrollar un producto o que continuamos trabajando en él, debemos conocer porqué se hace o cuál es el fin de éste, cómo vamos a ayudar a los usuarios, qué necesidad suplimos o qué valor vamos a generar.

Después de tener ésta primera idea general, apoyándonos en herramientas como la fase de discovery, el equipo debe ser consciente del compromiso común que tiene de entrega y calidad del software, y que a su vez cumpla con los requisitos acordados y preestablecidos que logren alcanzar altos niveles de eficiencia.

Con los cambios constantes que vivimos en tecnología, tendencias de mercado y nuevas necesidades del usuario, el desarrollo de software se convierte en crucial para lograr la entrega continua de productos, siendo necesaria una orquestación de todos los miembros del equipo involucrados con un objetivo común.

Ceremonias como el “daily” que proviene del scrum, las encuentro muy útiles para que todos los miembros estén continuamente alineados, descubrir posibles bloqueos e incluso generar nuevas ideas para mejoras del producto.

Es por ésto, que la comunicación bidireccional y continua, es fundamental para evitar los denominados “desperdicios” o el “retrabajo”. 

La colaboración constante, permite que los diferentes puntos de vista agreguen valor a los entregables y a su vez permitan adelantarse a posibles fallos o incluso mejoras o nuevas funcionalidades.

El aprendizaje e investigación acerca del cliente son igualmente relevantes, ya que nos permiten pivotar el producto, hacer entregas eficaces e intuitivas e incluso recibir su constante retroalimentación o feedback.

Herramientas como workshops, entrevistas a los usuarios o incluso encuestas, permiten conocer continuamente sus opiniones, testear el producto e introducir continuas mejoras que permitan colmar sus expectativas.

Por último quiero resaltar que toda metodología o “framework” de trabajo nos permite llegar a cumplir los objetivos . Éstas metodología ágiles, son herramientas de apoyo para el desarrollo del producto que permiten lograr una mayor eficiencia, adaptabilidad a los cambios y versatilidad.

El conocimiento de la estrategia y el para qué se hacen las cosas son la base de todo equipo de desarrollo para lograr entregables y completar los ciclos que involucren tanto al producto, a los stakeholders, al usuario y al equipo de desarrollo.