Con el advenimiento de lo ágil como moda desde hace unos años, y sabiendo que casi ninguno de nosotros querría trabajar en Jurassic Park, todos los que de alguna u otra manera estamos al tanto de lo que pasa afuera de nuestro trabajo, en eso que muchos llaman ‘mundo’ y otros ‘internet’, podemos decir que a nosotros los desarrolladores nos dan muchas ganas de saber y entender que es esto de ágil, que es Scrum, XP, TDD, PP y como puede beneficiar nuestro trabajo diario este conjunto de siglas, sobre todo si de quitar burocracia se trata, que es una de los temas que mas nos molesta a nosotros.

Equipos de Trabajo

Ya desde hace un tiempo que me toca manejar equipos de trabajo y una de las cosas que me a quedado más clara de la naturaleza humana (y en esto obviamente me incluyo), es que muchas veces queremos obtener el resultado sin pasar por el proceso de obtenerlo. Esto quiere decir que queremos ser ágiles, hacer Scrum, XP, TDD, PP y en general no estamos muy bien dispuestos a comenzar de a poco a caminar el sendero del aprendizaje, sabiendo que es un camino largo, de años para poder entender y conocer realmente estas metodologías y técnicas. Por como es nuestra sociedad, todo lo queremos ya, sin esfuerzo y por consiguiente sin aprendizaje; querríamos que alguien nos trasmita por ósmosis su experiencia y así poder decir, soy ágil, sé Scrum, XP, TDD, PP, etc.

Volviendo un poco a lo ágil, hace ya un par de años que en un equipo en el que participo estamos aprendiendo algunas metodologías y técnicas de lo que hoy llamamos ágil. Puedo decir que después de este tiempo entendemos que sólo la agilidad funciona y que ya nadie apoya el proceso de cascada. Todos sabemos que debemos hacer iteraciones (aunque no todos entendemos el concepto realmente) y comprendimos como tenemos que tomar los temas en paralelo.

En nuestro equipo hicimos pasos muy importantes con el tiempo y hoy podemos decir que sabemos lo que puede dar Scrum, aplicamos muchas técnicas de XP, entre ellas TDD que es la que hasta ahora mas esfuerzo nos ha llevado por ser un cambio en la forma de pensar de los desarrolladores, y ahora hace un par de meses estamos incorporando PP (programación en parejas) otra que se ve que nos va a llevar igual o mayor esfuerzo que TDD, ya que es un cambio en las relaciones entre las personas.

Y en un futuro está en nuestra mente experimentar el pensamiento Lean de alguna manera para poder encontrar sus beneficios y así tener mas herramientas ágiles con las que contar para los diferentes problemas que nos enfrentemos.

Valores y Personas

Después de estos años, entendimos que antes de construir software debemos construir personas y vamos descubriendo que las personas en realidad desconocen lo que conlleva la palabra ‘ágil’, y solo se enfocan en mejoras como la menor burocracia, la autogestión (aunque no del todo bien entendida). Ahora, cuando uno empieza a aplicar las técnicas difíciles (por el cambio que implican) de lo ágil, la mayoría de las personas darían  media vuelta y se escaparían corriendo. Esto se nota cuando uno dentro de ágil tiene que involucrarse en equipos participativos, colaborar con uno mismo y con los demás del equipo, tener a una persona que piensa de una manera diferente al lado (como puede ser el cliente o un tester), ser trasparente, compartir conocimientos, asumir otro tipo de responsabilidades además de programar en ‘solitario’.

¿Estamos preparados?

En general vemos preguntas del estilo ¿está tu empresa preparada para ágil? Y quizás nos deberíamos preguntar ¿está tu equipo preparado para ágil?

Podemos ver aquí los cambios que produce Scrum por ejemplo, tanto en la empresa como en cada uno de nosotros.

También podemos pensar un poco en nuestra cultura, en como influencia ésta a nuestro trabajo, entonces podemos empezar a entender que no es lo mismo aplicar metodologías ágiles en Suecia, que en EEUU que en Japón. En estos países (mas maduros que nosotros por supuesto) la cultura de la colaborar,  de poner el hombro para el equipo, para el prójimo, de hacer suyos los proyectos, de estar comprometidos, de aprender y compartir este conocimiento y lograr una mejora constante, es una moneda corriente. Nosotros tenemos una cultura muy diferente a estos países, y esto nos lleva a tener que comprender que estas diferencias pueden hacer peligrar la adopción de ágil, y nos tendríamos que preguntar cada uno de los que deseamos ser ágiles si estamos dispuestos a:

  • Estoy dispuesto a participar de un equipo a crecer como grupo (o solo estoy interesado en sentarme en mi lugar de trabajo, trabajar las horas estipuladas e irme a mi casa).
  • Quiero adaptarme, aprender y buscar el ideal siempre.
  • Acepto tener menos foco en los procesos y mas en los principios y valores
    • Estoy dispuesto a ser sincero.
    • Estoy dispuesto a comprometerme con una meta.
    • Quiero enfocar todo mi esfuerzo y habilidad en mi trabajo y cumplir lo que comprometí.
    • Acepto ser transparente y honesto y siempre mantener todo lo que respecta a mi trabajo en forma visible.
    • Respeto a las diferentes personas del equipo y sus formas de pensar..
    • Tengo el coraje para llevar adelante el ser sincero, el compromiso, la honestidad y el respeto hacia mi y hacia los demas.
  • Acepto los cambios. Como llevo adelante los cambios que me proponen ya sean en lo que respecta a técnicas de trabajo o a los cambios en los proyectos que estamos realizando.
  • Quiero trabajar codo a codo con el cliente. Normalmente los desarrolladores no trabajamos directamente con el cliente, esta tarea la realizan otras personas, y estamos nosotros dispuestos de verdad a cambiar y tomar esta tarea.
  • Estoy dispuesto a trabajar en equipo, hacer reuniones de equipo, hacer tareas de a pares  (o solo quiero quedarme encerrado en mi cubículo (mundo) y nada mas).
  • Quiero tomar mas responsabilidades y así madurar profesionalmente sabiendo que dichas responsabilidades llevan a que tenga que tomar ciertas decisiones y que esto puede afectar tanto a la empresa, al proyecto, como al cliente.
  • Estoy dispuesto a comenzar a ver los temas desde el lado de la empresa y del cliente para poder tomar las responsabilidades y decisiones de las que hablamos en el punto anterior. 

Cambios en las personas

Aunque estamos convencidos de esto, es comprensible ver la dificultad que existe y que nos impide el cambio por la agilidad, por lo que a los que nos toca llevar adelante a equipos de trabajo, tenemos que entender que debemos hacerlo en carácter de facilitadores, seguir los conceptos de shu-ha-ri que pueden allanarnos mucho el camino, comprendiendo que a muchas personas nos cuesta salir de nuestra zona de confort y esto implica un trabajo duro y diario y tiene que ser a largo plazo.

Conclusión

En conclusión, las metodologías ágiles son en general muy simples en su composición, sin embargo sus fundamentos teóricos y los valores en los que se fundamentan tienen implicaciones que van más allá de la simplicidad de sus componentes y si realmente queremos algo simple, vamos a tener que olvidarnos de lo ágil.
En este tipo de forma de trabajo, lo que se tiene en cuenta en primer lugar es a las personas, estas son las que aceptan o no los cambios constantes en todos los aspectos del trabajo, son las que se hacen responsables y comienzan a tomar decisiones sabiendo las implicancias de ellas, son las que pueden transformarse y aprender constantemente para elevar su trabajo y apuntar a la excelencia en forma constante.

Los valores ágiles son el "pegamento" que une a las personas y les permite cumplir con sus compromisos día a día hasta el éxito del proyecto.

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw