Las ágiles sobreviven a la tormenta
Hace años, la industria del software se adaptó a los cambios constantes. Qué son las metodologías ágiles y cómo pueden aprovecharlas el resto de los sectores.
La industria del software -que alcanzó ventas a escala global por más de u$s 3,5 billones en 2016, según Gartner, y que en la Argentina factura unos $50,6 millones, de acuerdo a datos de la Cámara de la Industria Argentina del Software (Cessi), crea y comercializa productos intangibles. Son, ni más ni menos, líneas de código que resuelven un problema puntual. Pero las facilidades del mundo virtual, como la reproducción ilimitada y la escalabilidad, también tienen su contraparte: una competitividad alta y la necesidad constante de adaptarse, todo al menor costo posible.
Esto, sumado a las frecuentes diferencias con los clientes, la necesidad de trabajar en equipo para alcanzar un alto grado de eficiencia y la lucha de los desarrolladores por su autonomía, hacen que el rubro tenga que lidiar con problemas profundamente relacionados a cómo las personas, dentro y fuera de un equipo, se relacionan entre sí para entregar un mejor producto. Para solucionarlos, idearon una serie de prácticas que marcan cuál es el camino a seguir para evitar las complicaciones.
Así surgieron las llamadas metodologías ágiles que se centran en una serie de valores que debe respetar un equipo para ser eficiente y sustentable en un mundo donde el cambio es constante. Principalmente, plantean que los individuos y las interacciones son más importantes que los procesos y las herramientas; que una pieza de software que funciona vale más que una buena documentación; que un cliente que colabora es más útil que uno que negocia y, quizás lo más importante, que la posibilidad de responder ante los cambios aporta más que el seguimiento de un plan fijo.
Primero, la colaboraciónCada metodología ofrece un proceso de trabajo distinto y su conveniencia depende del producto o servicio que se esté desarrollando, pero también del equipo. "Las metodologías ágiles dan herramientas para vincularse de otra forma con tus compañeros, para generar lazos de confianza y lograr colaborar de manera eficiente", explica Ingrid Astiz, fundadora de Fuerza Tres, una consultora dedicada a la gestión de proyectos. Según explica la especialista, no todas las empresas logran sobrevivir a la era digital y dentro de este grupo están aquellas que no trabajan en equipo. "No tienen que estar los 12 principios aplicados siempre; eso lo dicen algunos fanáticos nada más. Mientras haya algunos, y las cosas funcionen, los proyectos avanzan. Los que son innegociables son la colaboración y la confianza", remarca Astiz.
Dentro de la industria del software, se ven reflejados en un conjunto de herramientas que optimizan y trazan una ruta hacia la resolución de un problema. Prácticas como la programación en pareja y la inclusión de las pruebas dentro del desarrollo mismo son algunos ejemplos. "En intive-FDV, los programadores suelen compartir una misma computadora en dos casos: al comienzo de un proyecto, para que surjan mejores soluciones, menos errores y el doble de creatividad, y cuando entra un miembro nuevo al equipo, para acelerar su adaptación", cuenta Navarro. Esta práctica permite no solo que se conozcan mejor sino que también, y quizás aún más importante, mejore la calidad del producto final ya que cada línea de código que escribe uno es revisada en tiempo real por el otro.
La agilidad viene en gran parte del trabajo en equipo. Construir proyectos alrededor de individuos motivados es, después de todo, uno de los cinco puntos del manifiesto ágil, y el sector, por la naturaleza misma de sus productos, desarrolló buenas prácticas colaborativas antes que otros verticales. Aunque las reuniones cara a cara son la forma ideal de crear una solución, el trabajo remoto puso a prueba esta máxima. Resolvieron el problema incentivando algunas reuniones presenciales y utilizando comunicaciones unificadas.
Más allá del software"Tecnología suele diferenciarse de otras áreas porque ahí saben trabajar en equipo. En Administración tienen tareas distintas y se piden poca ayuda. Lo mismo sucede con los vendedores que tienden a ser individualistas con sus objetivos", comenta la especialista de Fuerza Tres y agregá: "Ahora los desafíos hacen que se den cuenta que tienen que colaborar. Es lo que nos pasó a nosotros, los que trabajamos en software, hace unos 10 años".
A mitad de camino están aquellas empresas donde si bien el desarrollo de software no es central, su implementación se ha convertido en un pilar para mejorar al negocio. Por ejemplo, el área de Sistemas del Hospital Italiano, que desarrolla soluciones in house, implementó algunas prácticas ágiles. "Teníamos desarrollos muy grandes y largos cuyos resultados tardaban demasiado en llegar a los usuarios, entonces buscamos incorporarlos en una etapa temprana para evitar que llegase tarde y el producto terminase distando mucho de la necesidad original", explica Darío Waicen, líder de Proyectos Informáticos del hospital. Su incorporación fue un proceso evolutivo que comenzó con la implementación de un registro de incidencias con Jira, un software de seguimiento de proyectos, y con una serie de capacitaciones que les permitió conocer a fondo las metodologías.
De a poco, otras industrias empezaron a ver que, aplicando estos preceptos, podían resolver eficazmente muchos de los problemas cotidianos. Morph Interactive, por ejemplo, es un laboratorio multimedial, algo más cercano a una productora audiovisual que a una software factory, que implementó una mezcla de Kanban y Scrum desde sus comienzos para optimizar el proceso de creación de contenido para sus clientes. "Como no tenemos un producto grande, sino muchos pequeños en simultáneo, optamos por realizar ciclos de producción semanales, algo adaptado de Scrum, pero también usamos Kanban para visualizar todo el trabajo y tenemos un sistema de tickets interno para repartir las tareas", explica Guido León, productor de la empresa y líder de equipo. Es por su experiencia trabajando en una consultora de software que decidieron aplicar estas metodologías en la productora. "Usamos Jira para organizarnos. Ahí armamos un proyecto y dentro de este los distintos entregables y sus subtareas. Así, fijamos fechas de entrega y evitamos los cuellos de botella", describe y aunque aclara que el plan puede fallar, destaca: "Si algo sale mal podés saber qué impacto va a tener en otro lado. Hoy en día realizamos muchos proyectos en simultáneo y si no tuviésemos esta estructura sería una locura". Al principio fue extraño, para los que se sumaron al equipo especialmente, aprender cómo funcionaba pero finalmente se acostumbraron.
Paso a pasoGlobal News, una empresa dedicada al monitoreo de noticias, también comenzó a implementar distintas prácticas a su esquema de trabajo. Comenzaron intentando implementar Scrum pero no funcionó. A pesar de eso, no desistieron e incorporaron prácticas sueltas. "Hay algunas que están muy pensadas para el desarrollo de software y son difíciles de adaptar, pero Kanban nos funcionó. Al brindar un servicio, el modelo de entrega continua es ideal y nos permitió coordinar distintas áreas, encontrando fallas en el proceso que hasta entonces ni siquiera habíamos visto", cuenta Carlos Díaz, el CEO de la compañía. Según sus informes, desde que se agilizaron, la satisfacción de los clientes aumentó un 20% y los reclamos se redujeron en un 40%.
Aunque Díaz admite que aplicar algunos preceptos fue positivo, también detectó ciertas áreas donde no son aplicables. Y, dice, el fanatismo por las metodologías ágiles no es algo bueno. "No es cuestión de implementar Scrum al 100% porque sí. Se trata de ser crítico con el propio esquema de trabajo y mejorarlo, ya sea implementando prácticas conocidas o quitándolas de la rutina si no resultan", reflexiona Navarro.
Mientras que la industria del software está varios pasos adelante, el resto está incorporando cada vez más metodologías de trabajo para dejar de tocar de oído y empezar a estructurar, medir y optimizar el esfuerzo de los equipos. No hay que ser puristas sino tomar, de cada una, lo que sirva.
Para todos los gustosMientras que el corazón de la agilidad son sus principios y valores, existen metodologías formales que estructuran el trabajo y resuelven problemas específicos. Entre ellas se destacan Kanban, enfocada en la visualización del trabajo para mantener un desarrollo continuo y detectar problemas; Scrum, diseñada para que equipos de tres a nueve personas resuelvan problemas complejos al dividir el trabajo en iteraciones semanales o mensuales; Extreme Programming, pensada para mejorar la calidad de los productos y facilitar la respuesta ante los cambios; y Lean, la respuesta occidental al modelo toyotista, cuyo principal objetivo es minimizar el gasto innecesario al demorar las decisiones para tomarlas cuando hay información útil. Son diferentes, pero también son compatibles. Existen numerosos casos donde un equipo toma partes de distintas metodologías, resultando en nuevos arquetipos como la mezcla entre Scrum y Kanban, Scrumban, y la incorporación de las prácticas intensivas de Extreme Programming a otros esquemas de trabajo.Toyotismo de MillennialsEl concepto tuvo su pico en 2001, cuando varios expertos de desarrollo de software se reunieron en las montañas Wasatch, en Utah (Estados Unidos), para encontrar una manera de estructurar la innovación y terminaron escribiendo un manifiesto. Pero la historia de esta búsqueda comenzó mucho antes. "Parece que nació hace algo más de 16 años pero viene desde más atrás, cuando Toyota adoptó ciertas prácticas relacionadas con el Lean Thinking y con la inclusión de piezas flexibles y multidisciplinarias la cadena de producción se transformó en algo diferente y pasó a ser más ágil", cuenta Facundo Navarro, Project Manager de intive-FDV, una empresa argentina que se dedica al desarrollo de software.
Los ingenieros industriales Taiichi Ohno y Eiji Toyoda desarrollaron el sistema de producción Toyota, diseñado para evitar siete clases de desperdicios o "muda", según su término en japonés. Este fue el precursor del Lean Thinking, una metodología que plantea hacer lo menos posible; medir y actuar sobre las mediciones para evitar tener que cambiar cosas más tarde, minimizando de esta forma los gastos innecesarios. Las metodologías ágiles adoptaron algunos de sus conceptos enfocados a mejorar la productividad como el "kaizen", la idea de innovar de forma continua, y aquellos que tratan sobre el mutuo respeto y el trabajo en equipo.
Con el tiempo, estas prácticas se afianzaron en la industria del código y dieron lugar a metodologías formales como Scrum, usada en compañías de la talla de Microsoft, Adobe y HP, y Kanban, implementada en equipos que se dedican al desarrollo continuo como los de SAP e, incluso, la cadena pública de medios de Gran Bretaña, la famosa BBC.