Mostrando entradas con la etiqueta planificación. Mostrar todas las entradas
Mostrando entradas con la etiqueta planificación. Mostrar todas las entradas
1

Planning poker

Posted by David Doctor on lunes, diciembre 07, 2009 in , ,
Hemos comenzado un nuevo proyecto y el otro día tuvimos la primera sesión de estimación de las historias de usuario, en nuestro caso utilizamos planning poker como método de estimación, cada componente del equipo que va a desarrollar tiene una baraja de cartas y cada carta tiene un estimador. Los estimadores siguen una serie de Fibonacci para que seamos conscientes de que una estimación nunca será exacta y se transmita la incertidumbre que tenemos sobre el proyecto.



En nuestro caso esta estimación se hace al principio del proyecto para proporcinarle al dueño del producto los puntos de usuario de cada una de sus historias, evidentemente se harán más reuniones de este tipo a medida que aparezcan nuevas historias de usuario.

La técnica ya se explicó en un post anterior, pero después de la cantidad de reuniones que hemos tenido de este tipo quiero compartir algunas conclusiones:

1.- Si haces reuniones muy largas la convergencia en las estimaciones empiezan a aparecer sencillamente porque la gente está cansada, cuando veáis que en la primera tirada cada uno saca un estimador y terminan convenciéndose sin casi argumentos es hora de dejar la reunión para otro día

2.- No siempre es posible que todos coincidan en el estimador, para eso hay diferentes tiradas y cada uno va explicando su razonamiento pero en un momento dado (tras 3 o 4 rondas) es el Scum Master el que termina preguntando: ¿te importa aceptar esta estimación? tomando como resultado el valor más votado. Hasta ahora no me he encontrado a nadie que diga: no, creo que yo tengo razón y vosotros no tenéis en cuenta esto y esto.


3.- Evitar que el dueño de producto y el equipo se centre en detalles. La última vez nuestro dueño de producto hablaba incluso ya del interfaz gráfico de usuario, en mi opinión esto deberá ser discutido cuando se planifique el sprint y aquí solo hablar de funcionalidad. El equipo también termina hablando de si usar un API, un lenguaje , etc y siempre les intento centrar en que valoren la funcionalidad y complejidad.

La siguiente reunión donde planificamos el sprint y ya no estimamos en puntos de historia sino en horas ideales ya no usamos planning poker, normalmente no nos hace falta a ese nivel y suele agilizar la planificación, de otra forma creo que serían demasiadas horas discutiendo sobre si una tarea tiene 2 o 3 horas ideales.

Me gustaría saber vuestras experiencias: ¿usáis planning poker en estimación del producto y también en la estimación de cada sprint? ¿cómo lográis que haya convergencia?

|
3

Reunión de planificación de un sprint

Posted by David Doctor on lunes, noviembre 02, 2009 in ,
Una vez que se han estimado las historia de usuario (al menos las más prioritarias) ya nos podemos reunir en una reunión de planificación del sprint, en nuestro caso real sería la planificación del primer sprint, el Scrum master convoca a las siguientes personas:

1.- Product owner
2.- Equipo de desarrollo

El orden de la reunión que hemos seguido nosotros es la siguiente:

•11:30 – 11:45. El product owner establecerá la meta del primer sprint y resumirá el product backlog. Se propondrá el lugar, fecha y hora de la demo.

En este caso el dueño de producto nos ha leido las historias más prioritarias y se establece la meta, suele ser una frase corta, en nuestro caso "Permitir búsquedas básicas de fondos de inversión"


•11:45 – 12:00. Se clarificarán las historias de usuario más prioritarias

Se realizan todas las preguntas necesarias al dueño de producto para aclarar dudas y pidiendo más detalles. Lo bueno de las historias de usuario es que permiten,sobre todo, hablar al equipo completo en lugar de leer grandes documentos o, lo que es peor, no tener nada para leer.En la siguiente imagen podemos ver al scrum master y el product owner comentar las historias y sus prioridades.



•12:00 – 12:45. El equipo selecciona las historias que serán incluidas en el sprint.


En nuestro caso como no conocíamos velocidades previas, se seleccionarán aquellas que el equipo considere capaz de realizar en dos semanas que dura el sprint.


•12:45 – 14:00. Se seleccionará la fecha y lugar del daily scrum meeting y las historias serán descompuestas en tareas. Estimación de las tareas en horas ideales.

Aquí podemos ver la funcionalidad comprometida por el equipo y las tareas preparadas para ir al taskboard junto con el burndown chart:



La semana próxima comenzamos el primer sprint y, tan pronto tenga tiempo, actualizaré el blog, creo que es muy buena idea ir mostrando nuestra experiencia casi como un reality show ;-)

|
0

Estimando proyectos software

Posted by David Doctor on jueves, julio 30, 2009 in , ,
Antes de que se forme cualquier equipo y se comiencen a planificar las diferentes tareas hay que pasar por algo ineludible: la estimación del esfuerzo y el tiempo.

En una serie de entradas del blog me gustaría tratar técnicas de estimación, desde las clásicas como COCOMO II hasta las ágiles como planning poker, comentando cómo hemos llevado a cabo estimaciones dentro de los equipos en los que he estado trabajando.

El esfuerzo en proyectos de ingeniería civil como hacer una carretera, se puede tangibilizar en los kilómetros que se tienen que construir y el tiempo se derivaría de este esfuerzo. Por ejemplo, si tenemos que hacer 1000 kilómetros con 10 personas que son capaces de realizar 12 km al día se estima que el proyecto durará aproximadamente 83 días. En proyectos software el esfuerzo se mide en persona-día que es el trabajo que una persona es capaz de realizar en un día.

Tan pronto como el comercial de tu empresa ha "mal vendido" un proyecto ya empiezan las presiones: ¿cuánto va a costar hacer esto? ¿en cuánto tiempo lo tendréis?,quiero un plan de proyecto para entregárselo al cliente... uno se queda estupefacto ante tanta prisa y cúmulo de peticiones sobre todo porque internamente piensa "cómo puedo decir el tiempo que tardaremos si ni siquiera se lo principal: ¿qué hay que hacer?" y, cuando empezamos en esto de gestionar proyectos, nos lanzamos a la piscina por eso del que dirán y contestamos: esto estará en 3,5 meses y necesitaré a 5 personas... !craso error!

Antes de empezar a hablar de técnicas y métodos para estimar hay dos reglas que, en mi opinión, son fundamentales:

1.- Estimar significa estimar. Algo tan trivial como esto no siempre parece obvio y, sobre todo, no es fácil hacerlo entender al equipo de ventas. Si a mi me preguntan: ¿cuánto tardo en viajar de Madrid a Valencia? suelo contestar que, basándome en mi experiencia en otros viajes previos, aproximadamente entre 3,5 y 4 horas. Uno nunca sabe si va a encontrar tráfico, si va a parar a tomar un café o si el coche se va a averiar en el camino. Por eso es importante siempre dar un rango en las estimaciones y no parecer que la cifra que das no tiene ninguna incertidumbre.

2.- El rango es inversamente proporcional a la información y el momento en el que se haga la estimación, esto es, si estamos en una fase temprana o disponemos de muy poca información no nos podemos negar a dar una estimación, pero si podemos dar un rango muy amplio y viceversa, si ya disponemos de mucha información el rango puede disminuir.

Siempre me gusta esta figura, el famoso cono de la incertidumbre de Boehm donde se puede ver que dependiendo de la fase en la que nos encontremos (en el caso de un desarrollo en cascada) si damos una estimación en una fase temprana esta puede variar desde un 25% hasta un 400%.



Pongamos un ejemplo: nuestro equipo de ventas nos dice "nuestro cliente quiere un portal web para gestionar sus productos, ¿cuánto vais a tardar?", nosotros intentaremos obtener toda la información posible para, usando nuestra técnica preferida, dar una estimación. Después de reunirse el equipo se estima que el proyecto durará 10 semanas y nuestra contestación sería: entre 2,5 y 40 semanas. Las reacciones, claro está, pueden ser muy diversas, la más común sería: "hombre, vaya estimación dáis, con ese rango yo no puedo vender nada" pero nuestra respuesta debería ser: "mi grado de incertidumbre es tan grande como el tuyo, tan pronto tengamos más detalles sobre el proyecto podremos afinar más". He dicho "debería ser" porque, al final, de ese rango suelen coger los números más favorables a su venta ;-)


En este post nuestra intención era introducir que es estimar proyectos software sin entrar en detalle, una vez que sabemos que el proceso era obtener información de qué hay que hacer, aplicar una técnica y ofrecer unos resultados en las siguientes entradas del blog hablaremos de tecnicas y compartiremos ejemplos. Para los que no puedan esperar aquí tenéis el conocido método "estimación de mi jefe": si nos dicen que tiene que estar en 2 días, subid a la siguiente unidad temporal y multiplicarlo por dos. Casi con total seguridad serán 4 semanas de trabajo real ;-)

|