martes, 9 de febrero de 2010

Estimación de poker

Desde la primera vez que leí acerca de la estimación de poker, tuve claro que era una técnica que podía aportar mucho al equipo. Desde mi punto de vista, sus principales ventajas (teniendo en cuenta mis circunstancias) son:

  • Visión general del proyecto. Estimar el tiempo que se debe invertir en realizar una tarea, requiere hacer un esfuerzo e imaginar cómo la haríamos y qué hace falta para realizarla. Esto hace que todos los miembros del equipo tengan una idea más precisa de lo que se hará en la siguiente iteración y no sólo de su parte.

  • Flujo de conocimiento. Cuando algún miembro hace una estimación que se sale de la media, tanto por encima como por abajo, lo normal es que explique en qué se basa. Esto puede hacer, por ejemplo, que este miembro o miembros muestren una situación que el resto del equipo no han tenido en cuenta y que hubiera hecho que se incumplieran las estimaciones; o que informe de alguna librería, utilidad, etc., que facilitaría en gran medida la implementación de la tarea y por eso requiere mucho menos tiempo.

  • Distribución de la responsabilidad en la estimación. La estimación ya no depende de una o algunas personas. Todo el equipo se implica en este proceso, aportando mucho más valor.
Afortunadamente, en mi empresa trabajamos en un ambiente distendido en el que las ideas no tienen las puertas cerradas. Siempre que se hagan responsablemente, toda propuesta es bienvenida, por lo que he aprovechado que estábamos a punto de iniciar una nueva iteración en un proyecto importante para proponer el uso de esta técnica.

Como me costaría ser objetivo, en las siguientes líneas Lucía explicará su experiencia con la estimación de poker. Ella ha sido la encargada de dirigir el proceso, así que nadie mejor para ofrecer una impresión parcial:

Bueno, antes de empezar a expresar mi opinión, quiero darte las gracias Gregorio por ofrecerme la oportunidad de aportar mi granito de arena a este blog, por el cual te felicito.

Empezando con la experiencia en sí, aunque sólo ha sido un primer pequeño pasito, creo que ha sido muy enriquecedora. En primer lugar, este tipo de estimación exige que haya una descripción clara de la tarea a realizar, pero que no sea excesivamente extensa. En nuestro caso, escogimos realizar la estimación vía web, usando la herramienta google wave con la extensión 'ScrumPoker'. El hecho de tener que explicar la tarea de forma escrita, no hablada, da menos interacción entre los participantes, pues no permite tan claramente un turno de dudas y preguntas tras la explicación de la tarea, lo que podría haber sido una desventaja, pero creo que en nuestro caso ha servido para definir con más rigor las tareas, lo cual en sí ya es una ventaja. Además, también nos evitamos que el turno de dudas se extienda demasiado, ya que, en todo caso, las dudas se responden directamente a la persona.

También el ser vía web creo que ha podido dar un poco más de tranquilidad a los participantes en las primeras estimaciones, pues para quien estima por primera vez puede ser un poco violento el dar una estimación muy desviada con respecto al resto dentro de una reunión 'cara a cara'. Además se evita el peligro de no tomar del todo en serio la estimación al ser una forma tan distendida de estimar, hablando claramente, no se corre el riesgo de demasiados comentarios jocosos durante la reunión que, antes de que todos los componentes hayan visto la utilidad de este tipo de estimación, es fácil que se dé.

En cuanto al momento de la estimación, la acogida por el grupo de trabajo fue muy buena, ya que todos los componentes se han implicado y han respondido muy bien. Al estudiar los resultados he visto que, salvo alguna excepción, las estimaciones eran muy similares, lo que facilita enormemente la estimación final de la tarea. En este sentido, he visto realmente útil los siguientes aspectos:
  • Facilidad a la hora de especificar la estimación final: el tener una visión de todo el equipo acerca de la duración de cada tarea hace más fácil especificar la estimación definitiva, así como da más seguridad sobre estar acercándonos más a una duración real.

  • Mayor conocimiento de los componentes del equipo: al ver la estimación realizada por cada componente del equipo, se conoce algo más de la forma de trabajo de cada persona, y las diferencias existentes en el equipo según tareas. Esto ayuda mucho para saber también quién sería el mejor candidato para cada tarea, lo cual es una ventaja extra que, hasta realizar la estimación, admito que no había previsto.
Creo que otro punto importante es el que señala Gregorio acerca del flujo de conocimiento, aunque si quiero ser sincera, creo que aún es pronto para saber el impacto que ha tenido en el grupo el conocer previamente la descripción de cada tarea (en este aspecto, espero que dentro de un tiempo Gregorio me deje otro “cachito” de blog para describir como ha influido :-)).

Esta primera prueba que hemos hecho creo que ha sido solo una pequeña aproximación a la estimación de poker, pues hubo algunos aspectos que creo que hicieron que no se pudiera sacar todo lo positivo posible, como la falta de tiempo para poder comentar mejor las desviaciones de las estimaciones o el desconocimiento de la herramienta utilizada. Aún así, Roma no se construyó en un día, y creo sinceramente que si la primera vez que se realiza ha dado tan buenos resultados, seguramente en la siguiente iteración, con más tiempo, con el equipo conociendo ya de qué se trata exactamente, las ventajas que nos dé este tipo de estimación pueden aumentar.

Para terminar, querría sólo comentar brevemente la experiencia del uso de la extensión 'ScrumPoker' de google wave. Creo que es una gran herramienta, muy sencilla de usar, y que hace muy cómoda este tipo de estimación, aunque aún está en fase de pruebas y, como es normal, tiene algunos errores que debe arreglar para ser realmente útil. Creo que cuando haya terminado la fase de pruebas, puede ser una herramienta que facilite mucho las estimaciones en los proyectos.

Lucía Manescau García

2 comentarios:

  1. Totalmente de acuerdo con los dos. Veo muchas ventajas en su uso y quiero resaltar algunas:

    Usar esta técnica de estimación disminuye la sensación que tiene cada desarrollador de estar en un compartimento estanco en el que sólo desarrolla una porción de código, por así decirlo.

    Con la estimación de poker todos los participantes entienden el objetivo global y cada una de las tareas que se van a realizar, independientemente de la tarea asignada finalmente a cada uno de ellos.

    El conocimiento previo de todos los participantes puede ser aprovechado mucho mejor, pues al estimar las tareas se está haciendo un estudio más detallado de lo que se requiere por lo que es más posible que alguien indique cómo se hizo en una ocasión anterior, proponga un camino a seguir, etc.

    Creo también que a la larga nos beneficiará para realizar el mantenimiento o solución de incidencias ya que muchas personas tendrán una idea global de la aplicación y de sus componentes. Por así decirlo, tendrán una visión de la arquitectura mucho más profunda. De otra manera sólo tendrían la visión de su trabajo, no del conjunto.

    Felicitaros a los dos.

    Sergio González

    ResponderEliminar
  2. Hola Sergio,

    Antes que nada gracias por el comentario. Sienta bien ver que continuas siguiendo el blog ;)

    Creo que en general esta idea ha sentado muy bien y le augura un buen futuro en el equipo. Como ya comentó Lucía, el blog tiene un huequito reservado para compartir las impresiones del equipo en un futuro, cuando la técnica ya se haya asumido y madurado.

    ResponderEliminar