17 de marzo de 2013

Quemando las iteraciones del Proyecto Havannah


Quinta y última entrega de la traducción capítulo 23 del libro Agile Estimating and Planning, de Mike Cohn. En el post anterior, dejábamos al equipo a punto de comenzar la primera iteración de 2 semanas, que habían planificado en 4 historias de 18 puntos. También habían previsto que el proyecto duraría entre 12 y 20 semanas. En este post veremos lo siguiente:
  1. El equipo demuestra los resultados de la 1ª iteración (completan 16 puntos de 18) y planifican la 2ª iteración con 3 historias de 18 puntos.
  2. Demuestran la 2ª iteración completa al 100% y planifican la 3ª teniendo en cuenta dos nuevas funcionalidades “emocionantes” que ha investigado Diana, de 30 y 35 puntos, respectivamente. Si quieren mantener la planificación en 12-20 semanas, deben renunciar a una funcionalidad emocionante de 30 puntos. Antes de arrancar la 3ª iteración, quedan por quemar 133 story points (más que los 132 que tenían al principio del proyecto, ¿significa esto que van para atrás?).
  3. Por último, atendemos a la reunión de revisión de la última iteración del proyecto, finalizado en un plazo 22 semanas, con 2 semanas de retraso sobre la estimación inicial comunicada de 20 semanas, pero a cambio de mucho más valor para el negocio.
En este caso práctico, los métodos ágiles han supuesto una cuantificable mejora del proceso de desarrollo de software, sobre todo comparando con el retraso acumulado del proyecto anterior de 6 meses.

Siguiendo mi recomendación en un post anterior, he anotado estas historias en un tablero virtual de Evernote, que pueden acceder fácilmente a través de Evernote por web o desde su propio Evernote desktop, usando como usuario y contraseña la palabra “pmpeople”.

[…]

2 semanas más tarde



–Ojalá pudiéramos haber terminado todo. Aun así, estoy impresionado con lo que hemos conseguido –dijo Santiago al resto mientras esperaban que comenzase la reunión.
–Por desgracia tuvimos que dejar quiero que el ordenador reconozca una figura ganadora, pero de verdad que necesitaba tu ayuda para programar el motor de movimientos, Santiago, gracias –dijo Alberto al otro programador.
–No hay problema, Alberto. Somos un equipo. Es más importante que podamos demostrar que el motor puede hacer anillos y puentes –dijo Santiago.
–¿Listos para la demo? –pregunto Francisco mientras entraba en la sala y dejaba una caja de rosquillas en la mesa.
–Por supuesto –dijo Santiago–. ¿Sabes si asistirán los otros ejecutivos y otros Project Managers?
–Felipe y Laura dijeron que vendrían –dijo Francisco– refiriéndose al director general y a la directora financiera.
–Y también asistirán un par de programadores de otros equipos. Sienten curiosidad sobre los métodos ágiles aplicados al desarrollo software –dijo Alberto.

En el transcurso de la siguiente media hora, el equipo enseñó lo que habían completado. Demostraron cómo el motor podía hacer anillos y puentes, cómo podían jugar dos jugadores humanos intercambiándose el tablero. También mostraron las dos funcionalidades a la vez haciendo que el jugador humano pudiera jugar contra el ordenador. El humano casi siempre ganaba, lo cual no era sorprendente contra un motor débil. Los gráficos eran rudimentarios (unos rápidos bocetos de Rosa), pero Felipe, el director general, estaba entusiasmado de ver que solo después de 2 semanas, una parte del juego ya era funcional. Se mostró incluso más satisfecho cuando Paula de pasó el tablero y fue capaz de jugar por sí mismo, ganando a duras penas al ordenador.

–Enhorabuena a todos –agradeció Felipe, levantándose de la silla–. ¿Vais a mostrarme más cada 2 semanas?
–Claro, cada dos semanas, aquí de nuevo a las 9 en punto –dijo Santiago.
–Volveré la próxima. Voy a apuntar estas reuniones en mi agenda. Estos 30 minutos viendo el software funcionar son más útiles que cualquier informe de seguimiento que haya leído. ¿Y qué hay del cronograma? ¿Ya puedo preguntar?
–Puedes –dijo Francisco–. Por el momento nos ceñimos a la planificación inicial de entre 12 y 20 semanas. Vamos a planificar la siguiente iteración ahora después. Habrá más precisión dentro de 2 o 4 semanas. Entonces seremos capaces de comprometernos con un plazo que podamos anunciar a los distribuidores.
–Genial –replicó Felipe–. Laura y él salieron de la sala de reuniones, al igual que las otras seis personas que habían venido a ver la demo.

Planificando la 2ª iteración



–Si no recuerdo mal –dijo Francisco- habíamos planificado una velocidad de 18 story points.
–Es correcto –dijo Diana.
–Pero no pudimos terminar la historia sobre que el ordenador reconozca una figura ganadora, por tanto nuestra velocidad es menor que 18. ¿Nos damos un punto por hacer la mitad de la historia? –preguntó Francisco.
–No –dijo Carlos-. En general aplicamos el enfoque de todo o nada a los story points. Es complicado darnos una ganancia parcial porque realmente no sabemos cuánto trabajo queda. Mejor que adivinar, no lo ganamos hasta que lo terminamos por completo.
–Entonces nuestra velocidad son 16, porque estimamos originalmente esa historia con 2 puntos –dijo Rosa.
–Tenemos que planificar que el proyecto dura más, ¿cierto? –preguntó Francisco.
–Aún nos mantenemos entre las 12-20 semanas que le dijiste a los ejecutivos –dijo Santiago–. Empezamos con 132 puntos. Terminamos 16, así que quedan 116. Dividiendo 116/16 = 7,25. Para asegurarnos, digamos 8 iteraciones más de 2 semanas. Incluyendo las 2 semanas gastadas, hace un total de 18 semanas.
–Son 4 meses y medio, Francisco, ¿supone un problema? –preguntó Paula.
–En realidad, no. La entrega no está ligada a una fecha específica. Lo queremos fuera tan pronto como sea posible –dijo Francisco–. No he tenido la ocasión de comentar esto todavía: Aún no hemos cerrado el contrato sobre Deep Black & White con el distribuidor japonés. Aún quieren distribuir el juego, y estamos a esto de firmar –separó los dedos un par de milímetros– pero aún no quieren anunciarlo hasta que no tengan tiempo de preparar la campaña de marketing, con anuncios en las revistas de mayor tirada. Esto significa probablemente 4 meses más. Y del modo en que esto funciona, no veremos royalties hasta un trimestre después del lanzamiento. Podríamos estar hablando de 8 meses antes de que Deep Black & White nos traiga algún dinero. Idealmente, Havannah podría ser un quick-win para nosotros. No a la misma escala que Deep Black & White, pero como no necesitaremos el tiempo inicial de marketing, el beneficio sería más inmediato.
–Además, lo siento Francisco, pero como he tenido que hacer más pruebas de las que esperaba, no he tenido tiempo de hacer la investigación de mercado en esta iteración –dijo Diana.
–De acuerdo. Está bien, pero démosle prioridad esta iteración, aunque signifique hacer menos pruebas –dijo Francisco.
–Entonces, Francisco, ¿qué es lo que más te gustaría ver terminado al final de la siguiente iteración?
El equipo planificó la segunda iteración de la misma manera que lo habían hecho la primera vez. Cuando terminaron, se habían comprometido como equipo con las estas 3 historias de usuario estimadas en 18 puntos:


–Pero si nuestra velocidad fue 16 en la primera iteración, ¿por qué planificamos 18 ahora?
–La velocidad se usa como guía para medir el progreso contra el plan de entregas –dijo Carlos–. La velocidad no se planifica exactamente como la velocidad media de las iteraciones pasadas. Cada iteración se planifica sobre la base de lo que nos podemos comprometer cada vez. Se añaden puntos solo después de estar seguros de que nos podemos comprometer. Cuando lo hacemos así, la velocidad debería estar cerca de la media histórica, pero puede variar.
–¿Por qué?
–Por dos razones, principalmente –continuó Santiago–. La primera: Esta vez haremos un uso más eficaz del tiempo de Rosa. Ella es primordialmente diseñadora gráfica, no analista de pruebas. Fue genial que nos pudiera ayudar con tantas pruebas la última vez, pero esta iteración va a dibujar los tableros de madera y metal y las piezas. Yo haré el código para que el usuario elija tableros y fichas, y Paula seguramente sea quien pruebe la historia. Aparte de eso, la mayor parte de los 8 puntos vienen de Rosa. Segunda razón: ya tenemos empezada la historia de reconocer la figura ganadora, si bien no pudimos acabarla. Yo me siento bastante cómodo con las historias que hemos seleccionado. Aunque sean 18 puntos otra vez, suman 15 horas menos que la iteración anterior.
–Me has convencido –dijo Francisco-. Hagámoslo.

2 semanas más tarde



En la revisión de la siguiente iteración, el equipo demostró buen progreso otra vez. Habían completado todas las historias planificadas. Diana tuvo tiempo de completar su investigación de mercado. Los ejecutivos Felipe y Laura atendieron de nuevo. Como se había extendido la noticia, había más asistentes de otros proyectos que la vez anterior.

–El juego está tomando forma. No puedo creer que el motor de movimientos me haya vencido –dijo Felipe-. Y Rosa, estos dos primeros tableros tienen una apariencia estupenda. ¿Aún seguimos con la misma previsión de plazo? ¿Entre 8 y 16 semanas más?
–Hasta ahora hemos progresado según lo esperado –dijo Francisco-. De momento vamos bien. Diana ha hecho más investigación de mercado en esta iteración, y ha descubierto algunas funcionalidades interesantes que puede que necesitemos incluir. Yo voy a pedir que se hagan, pero quiero oír la opinión del equipo primero. Yo sugeriría cambiar el plazo. Estoy seguro de que las nuevas funcionalidades traerán más dinero. Ahora necesito ponderar el valor adicional contra el desarrollo extra y el plazo extra.
–Me gusta la parte de “traerá más dinero”–dijo Laura la directora financiera.
–Y a mí –agregó Felipe-. Pero no me convence que admitamos un retraso tan pronto.
–No sería un retraso, Felipe –dijo Francisco-. Si quieres que el producto salga en el plan inicial de 12-20 semanas, podemos hacerlo. Lo que vamos a discutir después de esta reunión es cuánto tiempo llevará hacer un juego de mayor valor. Luego veremos si hay funcionalidades que podemos no hacer que nos permitan mantener nuestro plazo máximo de 20 semanas.
–Siempre me interesan que los juegos sean más valiosos. Hazme saber tu recomendación –dijo Felipe según se levantaba y salía de la sala de reuniones. El resto de los invitados salieron también, dejando solo al equipo del proyecto.


Revisión del Plan de Entrega (Release Plan)


–Francisco ya ha dicho que he encontrado algunas nuevas funcionalidades “emocionantes” –dijo Diana-. Algunos me habéis oído hablar de ellas por teléfono con potenciales clientes. La buena noticia es que nuestro público objetivo realmente quiere dos funcionalidades en las que no habíamos pensado. En primer lugar, quieren que el ordenador tenga diferentes personajes para jugar de forma distinta. Un personaje puede ser muy agresivo, otro conservador. Un carácter que mucha gente quiere es uno que se mofe. Que se burle después de un mal movimiento, que se ría de ellos cuando pierdan, cosas así…
–Suena divertido–dijo Alberto-. Eso cambiará el motor de movimientos, pero probablemente no mucho. Ya es configurable para jugar más agresivo o más conservador.
–Esta es la primera funcionalidad nueva –continuó Diana-. La segunda es jugar en línea. La gente quiere jugar por internet contra otros humanos.
–Esa es grande–dijo Santiago-. Tendríamos que conseguir espacio en la sala de ordenadores, adquirir el hardware y contratar un tiempo parcial de un administrador.
–Nos lo podríamos permitir –dijo Francisco-. No se descarta, pero tienes razón que es algo grande. Diana: ¿tienes algún indicio sobre cuál es más importante?
–Los personajes. Unos buenos personajes podrían disparar la satisfacción. Es una funcionalidad inesperada que la gente realmente quiere –dijo Diana.

–Diana, nos acabas de decir que tenemos corrupción del alcance. Y ya estábamos en la parte superior de nuestro rango estimado de entre 12 y 20 semanas –dijo Paula-. ¿Por qué dices que es una “buena noticia”? ¿Tienes algo más que decirnos?
–No. Eso era todo, Paula –dijo Diana-. Pero es una buena noticia. Acabamos de encontrar dos nuevas funcionalidades que nos pueden ayudar a vender más unidades a un precio mayor. Si las hacemos, por supuesto: el plazo aumentará, pero me gusta tener este tipo de problemas. Podemos terminar el producto sobre la planificación actual y obtener un buen retorno. O bien podemos cambiar la planificación y hacer más dinero. Las planificaciones son siempre predicciones en un punto del tiempo. Acabamos de encontrar un mejor futuro al que dirigirnos. Ya tengo escritas las historias de usuario para ambas funcionalidades. Deberíamos estimarlas para decidir si queremos cambiar el plan para incluir una o las dos.
–Hagámoslo –dijo Francisco-. Estoy completamente de acuerdo con cambiar la fecha de fin si podemos hacer más dinero y no supone un gran retraso. Estas funcionalidades parecen muy lucrativas.

–Pero Diana, ¿por qué tu cuestionario no identificó estas funcionalidades? –dijo Paula.
–Los cuestionarios están bien para priorizar lo que ya sabemos –dijo Diana-. Obviamente no son buenos para descubrir funcionalidades que no sabemos. Algunos de las respuestas que obtuvimos mencionaban los personajes y el juego online, pero no lo bastante como para hacernos pensar que era una tendencia. He pasado esta iteración hablando con más potenciales clientes para confirmar si son buenas ideas y ajustando mis modelos financieros para estimar cuánto beneficio extra pueden retornar estas funcionalidades.

–Me gusta cómo suena –dijo Alberto-. Si el juego da más beneficios, quizá Francisco nos lleve a algún sitio mejor que una hamburguesería cuando sea el momento de celebrar.
–A mí me gustó la hamburguesería a la que fuimos para celebrar la finalización de Deep Black & White –dijo Paula.
–Pues a mí no. Yo propongo que esta vez Francisco nos lleve a un restaurante de sushi –dijo Rosa.

El equipo estimó las nuevas historias que Diana había escrito. Al hacerlo, descompusieron algunas historias originales y combinaron otras. Cuando terminaron, las historias para el juego online sumaban 30 puntos, mientras que las correspondientes a los personajes medían: 15 el primer personaje y 5 cada personaje adicional. El equipo consideró suficiente 5 personajes en total, lo que suponía 35 puntos adicionales por la funcionalidad de los personajes:

Dado que los modelos financieros de Diana mostraban más beneficio que el juego online, todos acordaron modificar el plan para incluir los personajes pero no el juego online.

–En la primeras dos iteraciones terminamos 16 y 18 puntos. Acabamos de añadir 35 más. Vamos para atrás –bromeó Alberto.
–Estás en lo cierto, Alberto –dijo Carlos mientras alcanzaba una calculadora-. Tenemos 133 puntos. Con nuestra velocidad actual de 17 puntos por iteración, son 7,8 iteraciones más.
–Ocho iteraciones más, más las dos que ya ha hemos hecho, finalizamos con 10 iteraciones –dijo Francisco.
–Nos acercamos peligrosamente a las 10 iteraciones, Francisco –dijo Santiago-. Menos mal que no dijimos 8 iteraciones al principio. Sin embargo, si algo sale mal (si una historia es más grande de lo que pensamos, o si vamos más lentos, o si alguien se pone enfermo), podríamos tardar más que 8 iteraciones más.
–¿Estás diciendo que deberíamos cambiar la planificación? –preguntó Francisco.
–No, necesariamente –respondió Carlos-. Si queremos mantener la planificación en 10 iteraciones, podríamos soltar algunas historias de baja prioridad si empezamos a desviarnos. En caso contrario, deberíamos trasladar la expectativa de que podemos tardar más de 10 iteraciones.
–Podría renunciar a algunas historias, si hace falta –dijo Francisco.
–Bien, ¿recuerdas cuando te dije que era importante saber qué historias son más prioritarias, pero también las que son menos? Me sentiría cómodo manteniendo las expectativas en no más de 10 iteraciones si puedes identificar al menos 17 puntos de historias sin las cuales podrías vivir, en caso de que nos retrasemos con más de 10 iteraciones –dijo Carlos.
–Aquí hay tres sin las cuales podría vivir. En total suman 22 puntos:

–Entonces, deberíais trabajar en ellas en último lugar. Si ven que van a superar las 10 iteraciones, pueden soltar una o varias de estas –dijo Carlos.
–Y si vamos en fecha y elegimos no implementar estas historias, podríamos terminar al menos una iteración antes, ¿verdad? ¿Cuándo terminaríamos si las soltamos todas?–preguntó Francisco.
–Tenemos 133 puntos. Estarías dispuesto a eliminar 22 puntos, esto nos deja 111 puntos –dijo Carlos usando su calculadora-. Con una velocidad de 17, necesitaríais 7 iteraciones más. Podríais terminar en 18 semanas, en vez de 20.
–De momento, mantengamos esas historias en el plan. Las soltaré si es necesario, pero seguramente merezca la pena dos semanas para hacerlas –dijo Francisco-. Voy a contarle todo esto a Felipe, que quería estar informado, ¿alguien quiere venir conmigo?

Diana y Alberto dijeron que sí. No era una sorpresa en el caso de Diana. Como analista, Diana siempre se involucraba en las decisiones del producto y la planificación. En cambio, a Francisco le sorprendió el interés de Alberto. Normalmente, Alberto, uno de los mejores técnicos de Bomb Shelter, no quería involucrarse en las discusiones de negocio. Sin embargo, estaba muy involucrado desde que comenzó el proyecto 4 semanas atrás. Francisco apreciaba la involucración de Alberto porque solo podía ser beneficioso a la hora de tomar decisiones sobre el producto.
–Voy a subir ahora –dijo Francisco-. Vamos.
–¿No deberíamos preparar algo para Felipe, antes? –preguntó Alberto.
–No. Tiene una pizarra, la usaremos.


Presentación del Plan Revisado


–Hola, Felipe. ¿Aún quieres saber lo que hemos decidido sobre las nuevas funcionalidades de Havannah? –preguntó Francisco.
–Por supuesto. ¿Son las que mencionó Diana esta mañana?
–Sí.
–Tengo unos 15 minutos. ¿Será suficiente?
–Debería –dijo Francisco. Entonces le pidió a Diana que explicara que su investigación le habían permitido descubrir las nuevas ideas sobre juego online y personajes.
–Felipe, ¿recuerdas que hace unas semanas te dije que estábamos estimando en story points?
–Claro.
–¿Y que esos puntos medían el tamaño? Comenzamos con 132 puntos. En la primera iteración, completamos 16. En la segunda, completamos 18. ¿Alberto, lo puedes dibujar? –pidió Francisco apuntando a un espacio en blanco en la pizarra de Felipe. Alberto dibujó algo parecido a esto:

–Lo que ves aquí –continuo Francisco- se llama release burndown chart (gráfica del quemado de la entrega, en español). Observándolo, puedes saber el progreso real después de 2 iteraciones. De momento hemos “quemado” 34 puntos, con lo que quedan 98. Si extiendes la línea verás que vamos en línea con terminar en la iteración 8. Serían 16 semanas en total.

Mientras Francisco hablaba, Alberto dibujó una línea como la siguiente:


–El equipo al completo piensa que añadir los personajes que Diana ha identificado es una buena idea.
–¿Cuánto tardará? –preguntó Felipe.
–Creemos que necesitamos 5 personajes. Un total de 35 puntos –dijo Francisco.
–Lo que significa que nuestro gráfica se mueve hasta aquí –dijo Alberto, trazando una línea vertical hasta los 133 puntos:

–Vaya, no tiene buena pinta. Después de 2 iteraciones estáis peor que al principio.
–Realmente estamos mucho mejor. Hemos hecho 4 semanas de buen progreso –dijo Alberto, señalando esa parte del gráfico–. Hemos eliminado algunos riesgos importantes demostrando cómo funciona el motor de movimientos. Solo he hecho el motor del juego débil, pero estoy comenzando a ver cómo puedo programar el motor fuerte. También hemos aprendido mucho. Sabemos las funcionalidades que Diana considera “emocionantes” para nuestro público objetivo. Normalmente lo sabemos mucho más tarde. Si miro dónde estamos, sí todavía tenemos mucho trabajo que hacer después de 4 semanas de trabajo. Y cada vez que ponemos un punto en este diagrama, me siento más confiado, aunque no todo son buenas noticias, pero todo esto me hace estar bastante confiado sobre el progreso hasta ahora. –Alberto hizo una pausa-. Estamos mucho mejor que hace 4 semanas.
–Entonces ¿cuánto durará el proyecto si añadimos los personajes? –preguntó Felipe.
Francisco se sorprendió agradablemente de que la pregunta se la dirigiera directamente a Alberto.
–Probablemente tardaremos 8 iteraciones más, o un total de 20 semanas. Estamos terminando 17 puntos por iteración. A eso lo llamamos nuestra velocidad. Si trazamos una línea con una pendiente de 17 puntos por iteración, terminaríamos en 8 iteraciones más.

–La línea corta el eje horizontal al final de la iteración 10, así que hemos identificados otros elementos de baja prioridad que podríamos soltar si empezamos a retrasarnos o decidimos terminar antes de 18 semanas en lugar de 20.
–¿Y el juego se vendería más y a mejor precio? –preguntó Felipe.
–Estoy seguro –dijo Francisco–. Quiero investigar algo más y realizar algunas simulaciones para determinar si deberíamos vender más copias al precio actual o podríamos subir el precio 5$.
–Me habéis convencido. Gracias por enseñarme todo esto –dijo Felipe.

Alberto empezó a borrar el gráfico.
–No, no lo borres –dijo Felipe –. Quiero actualizarlo cada 2 semanas.
–Gracias por tu tiempo, Felipe –dijo Francisco mientras salían del despacho.

18 semanas más tarde



–Buen trabajo, equipo. El juego ha quedado estupendo –dijo Francisco al final del la reunión para revisar la última iteración. –No echo en falta nada. Los motores funcionan muy bien. Y Rosa: me encantan los personajes. La forma en que cada personaje está en línea con el motor es genial. Los jugadores seleccionarán un personaje para jugar antes que un nivel de juego. Admito que al principio era escéptico sobre el formato “caricatura”, pero ahora me parecen geniales. Me gusta cómo el pirata se burla del jugador y la sirenita amigable para el nivel fácil. Sus diálogos van a ayudar a que los jugadores aprendan a jugar. Pienso que estamos preparados para lanzarlo.
–Admito que el juego es fabuloso, pero todavía no me gusta sentir que nos hemos retrasado. Originalmente pensábamos terminar en 14 semanas, pero dijimos a todos de 12 a 20. Ahora nos hemos retrasado 2 semanas más. –dijo Paula.
–Sí, y hemos terminado en 22 semanas –dijo Santiago–. Nunca dijimos 14 semanas. Después de planificar la primera iteración, dijimos que entre 12 y 20 semanas y que después de 6 semanas podríamos dar una estimación más precisa.
–Y Paula, ten en cuenta que podríamos haber terminado hace 2 semanas si hubiéramos querido –dijo Francisco–. Elegimos dedicar tiempo para incorporar las funcionalidades adicionales de los personajes basándonos en las respuestas de los beta testers. Les encantaban los personajes pero nos hicieron buenas sugerencias que quisimos incorporar. Hicimos que el pirata se burlara un poco más a menudo. Y al cantante rap le dimos más diálogo. Por supuesto, la planificación inicial estaba mal, pero también el diseño del inicial. Aquel juego no habría situado las expectativas tan altas. Habéis jugado con la nueva versión. Todos sois conscientes de lo que ha mejorado con solo 2 semanas de retraso sobre nuestra estimación inicial. Si hubiéramos podido liberar la versión 1.0 sin personajes y después añadirlos más tarde, lo habríamos hecho. Pero no podemos hacer eso en este negocio. Estoy entusiasmado con el producto. Es más de lo que esperábamos y solo 2 semanas después de la estimación inicial.
–Y no olvides que Deep Black & White tuvo un retraso de 6 meses, no 2 semanas.
–Por cierto, Francisco, ¿vamos a comer hamburguesas otra vez para celebrarlo?
–No. Esta vez os llevo donde queráis.


FIN
Ir al post anterior

Este texto se ha traducido del libro:
Agile Estimating and Planning
Mike Cohn. Prentice Hall, 2012

2 comentarios: