Tales from the Scrum: Cómo transferir conocimiento en un proyecto ágil

Ayer conocí, gracias a un mensaje del bueno de Jonathan Cisneros, autor del AjGenesis Studio, de este interesante experimento:

How to transfer knowledge in an Agile Project

(Ciertamente, es un único experimento que habrá que refrendar con otros experimentos). Pero he asistido a situaciones similares y puedo decir que es una forma válida de transferencia de conocimiento en un proyecto ágil, Scrum en particular.

¿En qué consistió el experimento? Steve Bockman trataba de saber cuál es la mejor forma de transferir conocimiento. En un proyecto ágil, Scrum en particular, es frecuente trabajar en un equipo con distintas habilidades y conocimientos, y es importantes que lo que un miembro del equipo conoce y sabe hacer, sea en algún momento asimilado por los otros miembros del equipo. Steve explica su experimento en:

Avoiding the knowledge transfer bottleneck

En el experimento, Steve trató de transferir conocimiento sobre un producto no usual: cómo construir un aeroplano de papel. Lo intentó de tres formas:

- Documentación: a los participantes se les dio instrucciones escritas (22 pasos) para armar el aeroplano.

- Ingeniería Inversa: a los participantes se les dio un aeroplano completo que podían estudiar para reproducir los pasos para armarlo.

- Mentoring: el “diseñador en jefe” arma el aeroplano paso por paso, y los participantes replican cada paso a medida que lo ven realizado.

El experimento fue realizado con 8 participantes, con una duración total de 5 minutos para cada escenario. Los resultados fueron:

Sólo 12.5% de las personas pudieron completar el trabajo usando la estrategia de leer la documentación. Usando ingeniería inversa, el 25% de las personas pudieron armar el aeroplano. Mientras que usando mentoring, el 100% de los participantes completó el trabajo.

Yo pienso que esto es otra forma de demostrar que no somos Vulcanos: un vulcano escribiría la documentación, de tal forma, que cualquier otro vulcano podría entenderla de primera vez, para realizar el trabajo. Y entendería casi inmediatamente el por qué de los pasos.

Tal vez, el mentoring, no transfiere tan rápidamente el “por qué” de alguna práctica. O eso lo van descubriendo los participantes con el tiempo, o por contraste con otra práctica. Ejemplo: podemos aprender pair programming, usando mentoring, pero por qué preferimos esa práctica de programación a pares, será cuestión de verlo por contraste con no hacerla.

En un anterior post:

Tales from the Scrum- cualidades de los miembros del equipo

sugería que se puede hacer pair programming en una tarea, donde uno de los participantes está más capacitado que otro. Esto tiene también la consecuencia de transferir las habilidades y conocimientos de un miembro del equipo al otro. Vean que hablo no sólo de conocimientos: también de habilidades. Yo puedo conocer todo sobre armonía musical pero no tener la habilidad de tocar el piano.

Esa forma de pair programming, viene descripto por Young Ye y Royce Fay en un paper (pdf)

Knowledge transfer using Asymmetric pair Programming

Este método lo aplican no sólo a trabajo de a pares con desarrolladores, sino también entre desarrolladores y usuarios del dominio. Pone énfasis, entonces, en la comunicación humana más que en la documentación.

Alan Skorking escribió también sobre el tema en:

Effective vs Ineffective Pair Programming

Escribe: “En mi opinión, el beneficio más importante es el hecho que trabajar de a pares es altamente favorable a la transferencia orgánica de conocimiento…. Creo que es la clave porque en un sistema grande prácticamente no hay otra forma de hacerlo bien”.

Justamente, ahora estoy envuelto en el desarrollo en equipo de un sistema con un dominio grande, y complejo. Sería interesante comenzar a aplicar este tipo de transferencia, no sólo dentro del equipo, sino también con los expertos del dominio. Esto no quita la existencia de documentación, pero es difícil de escribir en dominios complejos.

Imagen tomada de http://www.kegoodpractice.org/

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 10549, 2752, 3463. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>