Recuerdo el chiste donde el profesor decía a la clase: 

A ver.  Al que conteste primero le pongo un 10. 

¿Cuánto es 55 por 4?

Pepito se levanta de inmediato contestando: 

¡200!  

Y el profesor lo empieza a regañar: 

Pepito. ¡Eres un tonto!

55 por 4 no son 200. ¡Son 220! 

A lo que Pepito sagazmente contestaba: 

Decídase profe,  ¿qué quiere? 

¿Rapidez o Exactitud?

Así me siento yo cuando nos piden usar metodologías ágiles para terminar más rápido nuestros proyectos. Porque creo que tenemos el problema de confundir agilidad con rapidez.

Algunas definiciones encontradas en wikipedia son:

Ágil: Que tiene facilidad para moverse con soltura

Rápido: Que tarda menos tiempo del que se considera normal

En Sistemas Premium, prácticamente desde que se fundó en 2013, hemos estado promoviendo el uso de las mejores prácticas para desarrollo de software. Pero llega un momento en el que tenemos que formalizar cuales son las mejores prácticas que vamos a seguir y como las vamos a aplicar. Porque hay tantas opciones que es imposible adoptarlas todas y tampoco pueden ser aplicadas a raja tabla.  Deben ser permeadas, entendidas y adecuadas a la cultura de cada empresa.

Cuando iniciamos, era relativamente fácil estandarizar nuestras metodologías y dar seguimiento a nuestros avances, porque apenas éramos 10 personas.  Pero conforme crecemos, las cosas se complican y no siempre es fácil que todos estemos en el mismo canal.

Fue entonces que decidimos apostar por las metodologías ágiles y decidimos que SCRUM era el camino a seguir.  Nuestro objetivo era volver a alcanzar la velocidad de respuesta que nos había caracterizado cuando éramos pocos en la empresa y trabajamos al estilo SWAT, entrando rápido y saliendo rápido de las tareas asignadas.

Pero después de 3 años hemos aprendido que la agilidad no es hacer rápido las cosas.

Es hacerlas bien en el menor tiempo posible.

Me explico:

Cuando estás en un equipo pequeño, respondes muy rápido a las necesidades de tu cliente.  Estas cerca de él y todos entienden lo que te pide.  El equipo trabaja motivado y con buen ritmo. 

Pero tienes una capacidad limitada.  No puedes atender a muchos clientes o traer varios proyectos al mismo tiempo simplemente porque no alcanzan las horas. Tampoco puedes hacer proyectos demasiado complejos o crear soluciones sofisticadas porque te llevarían demasiado tiempo.

Es entonces cuando debes crecer y establecer un proceso, que te permita producir en mayor escala. Es decir, establecer una fábrica de software que puede atender a muchos clientes y sacar proyectos complejos adelante al mismo tiempo. Lamentablemente, esta fórmula tiene una condicionante. Tienes que planear y no puedes interrumpir tus procesos a cada momento, pues eso te lleva al caos en menos de lo que te imaginas.

Es aquí donde se pierde la rapidez de respuesta a la que estaban acostumbrados los clientes.  Porque ya no podemos estar desbaratando los planes y deteniendo la línea de producción para atender de inmediato todos los requerimientos nuevos que llegan.  

¿Recuerdan que ya tenemos muchos clientes y proyectos de mayor alcance? Esto implica que sí tenemos más gente que antes, pero normalmente están comprometidos en varios proyectos y tenemos muchos más clientes que esperan recibir lo prometido a tiempo.  

Esto no pasaba cuando atendíamos pocos clientes o pocos proyectos.  Era muy fácil pausar algo y atender con prioridad un nuevo requerimiento, porque casi siempre era el mismo cliente el que pedía detener cualquier otra cosa que le estuviéramos trabajando. También podíamos ir entregando cosas mientras entendíamos que quería el cliente y hacíamos cualquier ajuste necesario en campo.

Las metodologías ágiles nos ayudan a entender mejor lo que necesitan los clientes desde el principio y asegurarnos que lo que entra a la fábrica de software salga muy apegado a lo que espera el cliente y que casi no haya re-trabajos.  Pero no pueden quitar el tiempo de espera previo a que el requerimiento entre a la línea de producción.  Solo en condiciones especiales podemos detener las tareas en proceso para meter algo nuevo o urgente.

Adicionalmente, en Sistemas Premium hemos aprendido que hay muchas formulas de agilidad.  SCRUM es una de ellas, pero no siempre es la mejor opción.  Siempre es recomendable conocer que otras alternativas ágiles podemos aplicar de acuerdo a las características del proyecto.

Nosotros empleamos actualmente SCRUM, KANBAN y SCRUM-BAN.  Seguimos aprendiendo y definiendo lo que llamamos Agilidad Premium, que estamos seguros nos ayuda a entregar las mejores soluciones a nuestros clientes. 

No más rápido. Pero sí en el menor tiempo posible.