viernes, 20 de junio de 2014

Implementando agile en una empresa tradicional

Acabo de leer una nota de InfoQ acerca de la necesidad de entrenar y acompañar a los gerentes de IT (y sumaría de las áreas clientes) en metodologías ágiles para asegurar que se implemente de manera exitosa las políticas y prácticas propuestas.

Leer esta nota me hizo pensar en la tarea que estamos encarando en la empresa para cambiar la forma de trabajo en IT, buscar mayor agilidad, previsión y calidad en lo que producimos.

Desde fin del año pasado estoy empujando la implantación de metodologías ágiles en la empresa. Es un cambio cultural enorme y un desafío profesional que me propuse encarar con todas mis energías.

En un principio eramos unos pocos locos los que iniciamos con la idea de agilizar la forma en que producimos software, basándonos en metodologías ágiles (luego la base sería SCRUM), los principios de Lean y la filosofía de DevOps. Ese grupo de 3 o 4 locos con un conocimiento previo casi nulo comenzamos a estudiar y leer mucho, para luego sentar las bases de la nueva forma de trabajo que íbamos a proponer, y comenzamos la cruzada de sumar adeptos para formalizarlo.

Una vez que formamos una masa crítica de gente convencida de que era necesario cambiar, era necesario hacer que el efecto contagio escalara a toda la organización. Comenzamos de la manera tradicional, presentando al top management lo que proponíamos como cambio. Luego de una presentación de unas horas compraron el cambio (volveré a este punto en un rato), con lo que teníamos luz verde para seguir escalando a toda la empresa (una empresa con miles de empleados, con una base de personas que trabajan en IT del 5%). Las tareas que nos propusimos (y realizamos) fueron:

  1. Medir la temperatura de las ganas de cambio. Esto lo hicimos mediante presentaciones, charlas y talleres con el equipo IT. La conclusión de esta actividad fue que todos queríamos cambiar, que no podíamos seguir trabajando como lo estábamos haciendo. Eso era muy bueno. Pero también nos dimos cuenta que si bien todos querían el cambio, nadie quería empujar ese cambio, y esperaban que alguien lo hiciera. Decidimos ser nosotros el motor de ese cambio.
  2. Selección de herramientas que soportaran la metodología. Uno de los problemas detectados en las herramientas que soportaban la metodología actual era la falta de una herramienta que permitiera una trazabilidad end to end desde el requerimiento a la implementación, y el hecho de que dicha herramienta (o el proceso implementado) tenía mucha burocracia y una automatización casi nula. Luego de mucho analizar, decidimos implementar varias herramientas de Atlassian, sumadas a otras para resolver problemáticas puntuales (Grunt, Selenium, Bower, Artifactory)
  3. Organizar y dictar talleres sobre la nueva metodología, para establecer las bases teórico-prácticas. Preparamos y dictamos talleres sobre:
    1. SCRUM
    2. Gestión de requerimientos y planificación ágil (inception, user stories y user story mapping)
    3. Pair Programming, TDD y BDD como prácticas básicas para asegurar calidad y compartir conocimientos.
    4. Demo de la suite de herramientas que soportarán la metodología
    5. Talleres de acompañamiento prácticos para comenzar a trabajar con agile en un proyecto real.
  4. Proponer nuevas maneras de contratación para servicios de desarrollo y testing, de forma tal que se amoldaran a las filosofías agile.
  5. Contar con una consultora especializada en metodologías ágiles para ayudarnos a dar los primeros pasos, y brindar capacitaciones formales sobre agile.
  6. Sumar al área de recursos humanos al cambio cultural, para brindar soporte y acompañarnos con el gran cambio que significa salir de una metodología tradicional e ir a agile.
Este último punto es crucial, ya que es muy necesario ver este tipo de cambios como una modificación de la cultura organizacional, y no como un mero cambio de la forma en que trabaja IT. Hicimos y estamos haciendo un excelente trabajo en conjunto. Una de las tareas que realizó el equipo de gestión de cambio fue un assessment de las personas principalmente impactadas por el cambio, para entender que acciones se debían realizar. En las conclusiones de ese análisis surgió un punto que lamentablemente no me sorprendió, y que tiene mucha relación con como comencé este post. El principal punto de atención no era el miedo (que existía), ni la aversión al cambio (inexistente por suerte). Sino que veían que los gerentes no compartían la visión que comunicábamos y compartíamos con ellos.

Atentos a este warning, disparamos acciones adicionales:
  1. Sumar a los talleres al top management.
  2. Sumar al top management a las capacitaciones formales.
Es necesario que todos estén convencidos y sumados a la filosofía propuesta por agile, para lograr que sea un éxito. Ya que no es solo un cambio en la forma en que programamos, gestionamos requerimientos o analizamos. Es un cambio cultural y organizacional que abarca, también:
  • Como contratamos y gestionamos proveedores
  • Como planificamos un proyecto y medimos su avance
  • Como definimos y manejamos el budget
  • Como tratamos con nuestros clientes (internos y externos).
Podríamos haber hecho las cosas diferentes, seguro, pero estoy convencido que dimos y estamos dando todos los pasos necesarios para lograr trabajar de una manera mas eficiente, que nos permita crear software de calidad, y ser felices trabajando sin luchar contra las burocracias de una gran empresa.

0 comentarios:

Publicar un comentario