16 diciembre 2012

Be Agile! / Se Ágil (una reflexión)

 http://blog.outsystems.com/aboutagility/Caution-agilists-beware.gif

Hoy quise escribir un poco respecto a la onda Ágil o Agile, que se anda escuchando mucho últimamente y de lo que significa para mi. Durante el tiempo que llevo como desarrollador he tenido la oportunidad de participar en cierto número de proyectos con diferentes resultados. Si me pidieran realizar una lista de observaciones a todos estos, tal vez la lista sería como la que sigue:
  • Proyectarse a realizar un proyecto de larga duración con fases secuenciales muy marcadas (Análisis, Desarrollo, Pruebas y Despliegue) no siempre es un buen ídea, es más por lo general no lo es porque bajo ciertas circunstancias el coste de los cambios (que siempre suelen ocurrir) es elevado.
  • El verdadero valor de un proyecto como el mencionado en el punto anterior no se conoce sino hasta el final, lo cual puede ser muy costoso y frustrante cuando el cliente se da cuenta que las cosas han cambiado y aquello que se hizo ya no tiene razón de ser.
  • En muchas ocasiones se quiere dar solución a situaciones utópicas en lugar de atacar los puntos críticos del proyecto.
  • En ocasiones quien realizaba la estimación o bien no tenía idea de lo que se tenía que hacer o bien no tenía los suficientes skills técnicos para comprender cabalmente lo que involucra el desarrollo de una solución.
  • En muchas ocasiones tener a alguien detrás preguntando a cada rato "¿Cómo vamos?" es incómodo y tendía a hacernos perder la concentración en lo que veníamos realizando y no está de más, nos aumentaba la presión y la tensión.
  • No suele tenerse en claro el concepto de mejora continua, tras los errores de un proyecto, por lo general, se olvidan y se vuelven a repetir en el siguiente.
  • Los desarrolladores y más los jefes de proyecto, deberían tener en claro que es OBLIGATORIO escribir pruebas unitarias o en general todo desarrollo debería estar en la capacidad de testearse de forma constante.
Y podría seguir alargando más la lista pero ese no es el objetivo de este post. En fin, hace ya 3 años, tuve mi primer acercamiento al mundo ágil, a través de Scrum, en un proyecto para una reconocida compañía de seguros; nunca olvidaré la sensación que tuve al experimentar lo que significa estar en un "equipo auto-organizado", contar con una relación de "colaboración" más estrecha con el cliente, encontrar oportunidades de mejora durante las "retrospectivas" e incluso, la organización del tiempo del proyecto en tramos cortos que se conocen como "sprints". Podría decir que nunca antes me había sentido tan productivo, nunca antes había disfrutado tanto con realizar mi trabajo de una forma distinta.

Al principio, aprendí sobre Scrum, sobre XP, sobre Kanban, y otros frameworks ágiles. Supuse que aprendiendolos conseguiría ser feliz en mi trabajo, pero la realidad a veces no suele ser la ideal; aquí entra una frase que oí en repetidas ocasiones a Alan Cyment: "pragmatismo a corto plazo, idealismo a largo plazo"; no se trata de aplicar violentamente todo un framework, en ocasiones uno se debe "adaptar" y generar el cambio de a pocos. Hubieron ocasiones en las que el entorno era tan hostil, que suponía un alejamiento de las prácticas ágiles, bueno, cuando sucedió esto no perdía la esperanza y siempre buscaba oportunidades para enseñar lo que había aprendido hasta el momento.

Pero "ser ágil", por lo que entiendo ahora, no es solo una manera de trabajar o de hacer diferente el trabajo, sino que va más allá... es un cambio en el pensar y en la forma en la que realizas las cosas en tu diario vivir. Recuerdo una ocasión en la que hablando con uno de mis "mentores", le contaba sobre algunos problemas que había tenido con un par de personas; lamentablemente, con la primera las cosas terminaron mal; sin embargo, para la segunda, cuya riña aun no llegaba a un desenlace, mi mentor me dijo: "Armando, tu eres un chico ágil, aplica la agilidad!". Salí de aquella sesión con la plena intención de mejorar los canales de comunicación mediante una conversación "cara a cara", estableciendo "un objetivo" y "una visión", antes de analizar los problemas... el resultado fue, por creces, muy satisfactorio. Y así podría mencionar algunas otras ocasiones en el que valores y principios ágiles también podrían aplicarse en la vida cotidiana.

Esta es una pequeña reflexión sobre lo que significa el "ser ágil" para mi, sabiendo que el término "ágil" es solo una etiqueta para muchas ideas, conceptos y prácticas; que no son nuevas, pero que están cobrando relevancia últimamente.
Publicar un comentario