Buscar en Gazafatonario IT

Mostrando las entradas con la etiqueta Planificación. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Planificación. Mostrar todas las entradas

martes, octubre 29, 2024

Planificación empírica de productos

 

Mi serie de artículos sobre los errores de los [nuevos] Scrum Masters despertó interés en algunos otros temas. La cuestión más recurrente que me llegó fue esta de la planificación empírica de productos. Es un descuido común. Lo decía en el primero de los tres artículos, mismo que encuentras aquí:

Siete errores comunes de los nuevos Scrum Masters al servicio de los Product Owners – Lucho Salazar

Pues bien, sobre este asunto ya escribí hace algunos años, así que para entenderlo mejor, empieza por aquí:

Nuestro Scrum empírico de todos los días - Gazafatonario IT

Específicamente, establecer una planificación empírica de productos para un entorno complejo significa tomar decisiones relacionadas con el producto basadas en datos, observaciones y evidencias reunidas a lo largo del proceso de desarrollo, en lugar de confiar en suposiciones, planes a largo plazo o predicciones. Y una advertencia en este apartado: hay que ser cuidadosos con ese “a lo largo del proceso de desarrollo”. En ocasiones no es bueno ir tan atrás.

En entornos complejos, donde las condiciones del mercado, las preferencias de los clientes y la tecnología cambian rápidamente, raya en lo imposible predecir con certeza qué le dará más valor al producto. Es allí donde aprovechamos el enfoque iterativo e incremental de Scrum para hacer planificación empírica de productos, recopilando retroalimentación con frecuencia y adaptándonos en función de lo que observamos y aprendemos.

Trataré de dilucidar al respecto.

Paso a los entornos complejos

Ya basta de Cynefin o de cualquier otro modelo que intente explicar los distintos entornos donde nos movemos. En la práctica, un entorno complejo se caracteriza por la gran cantidad de variables y factores desconocidos con las que los equipos lidian al intentar predecir de manera confiable el mejor curso de acción. Ejemplos de esto incluyen:

·       Tendencias de mercado cambiantes.

·       Necesidades inciertas de los clientes.

·       Evolución de la competencia o cambios regulatorios.

·       Avances tecnológicos rápidos.

En escenarios de esta clase, los planes a largo plazo basados en supuestos fijos no arrojan los resultados esperados. El éxito del producto depende de un aprendizaje constante vía experimentación, retroalimentación y adaptación.

Implicaciones de la planificación empírica de productos

La planificación empírica de productos requiere de transparencia, inspección y adaptación: los tres pilares de Scrum.

Transparencia: todos los involucrados en el desarrollo del producto tienen visibilidad sobre el progreso, los riesgos y el estado del trabajo. Esto requiere que los elementos del Product Backlog estén claros y actualizados, así como una comunicación continua.

El Product Backlog es compartido abiertamente y visible para todos los interesados. Alguien como el Product Owner lo actualiza regularmente en función de los últimos datos proporcionados por los usuarios, el mercado, regulaciones o descubrimientos técnicos. Ese 50 % del tiempo que el Product Owner no pasa con el equipo, lo debe transitar en el entorno del producto. Indaga. Profundiza. Se proyecta. Se anticipa, por ejemplo, a asuntos regulatorios por venir.

Inspección: todo el equipo, especialmente el Product Owner con ayuda del Scrum Master, inspecciona con regularidad el producto y el progreso hacia los objetivos. Recopilan retroalimentación con frecuencia a través de Sprints de corta duración, revisiones y pruebas.

Por ejemplo, al final de cada Sprint, el equipo Scrum revisa el trabajo completado y busca la retroalimentación del cliente. Además, inspeccionan métricas como el compromiso de los usuarios, los datos de rendimiento del producto en producción o las funcionalidades más usadas, entre otras.

Adaptación: en función de las observaciones durante las inspecciones, los equipos adecúan sus planes, prioridades y enfoques. En lugar de seguir una hoja de ruta fija, se ajustan para reflejar nuevos conocimientos. Es cuando la “magia” ocurre. Por ejemplo, si el Product Owner nota una disminución en el compromiso de los usuarios, con el equipo ajusta el Product Backlog, priorizando funciones que mejoren la experiencia del usuario en lugar de seguir el plan ya establecido.

Planificación empírica de productos en acción

En la planificación empírica de productos no creamos planes elaborados a largo plazo. En cambio, usamos un enfoque de onda continua, donde proyectamos en detalle para los dos o tres sprints siguientes a la vez que mantenemos el trabajo futuro flexible.

También hacemos planificación empírica cuando, en lugar de construir una funcionalidad basada en suposiciones sobre el comportamiento del usuario, lanzamos una versión básica después de uno o dos Sprints. A partir de allí, observamos cómo los usuarios interactúan con ella, aprendemos qué funciona y qué no y ajustamos los planes futuros.

Además, cuando adoptamos una mentalidad donde las funciones y mejoras son realmente experimentos, estamos haciendo planificación empírica de producto. Establecemos hipótesis, las probamos rápidamente y utilizamos los resultados para guiar nuestras próximas decisiones. Después de todo, de eso se trata el “ser” ágil: de experimentar.

Las cosas así, los beneficios no se hacen esperar. Mitigamos riesgos, porque evitamos perder tiempo y recursos en funciones que no aportan valor. Nos centramos en el cliente, ya que los ciclos frecuentes de retroalimentación aseguran que el producto esté en constante evolución para satisfacer sus necesidades. Y somos flexibles, esto es, respondemos rápidamente a cambios en el mercado o nuevas oportunidades.

La responsabilidad del Scrum Master en la planificación empírica de productos

No hay otra forma de decirlo: el Scrum Master debe asegurarse de que el Product Owner y el equipo en pleno adopten la planificación empírica de productos. Este es el quid de la cuestión.

·       Fomenta ciclos de planificación más cortos: promueve pequeños pasos incrementales en lugar de planes a largo plazo.

·       Facilita los ciclos de retroalimentación: se asegura de que las Sprint Reviews sean significativas y conduzcan a ideas accionables.

·       Enseña pensamiento adaptativo: ayuda al Product Owner y al equipo a centrarse en la toma de decisiones basada en evidencias, en lugar de planes rígidos basados en antojos o cábalas.

·       Impulsa la inspección y adaptación: facilita que el equipo e interesados inspeccionen el progreso con regularidad y adapten su enfoque según lo que aprenden.

Pensamiento final

Solo quiero enfatizar que el desempeño pasado no es garantía del desempeño actual y mucho menos de futuro. Son solo eso, predicciones, pronósticos, hipótesis en el mejor de los casos, unas fallarán, otras no.

Es un hecho, la cantidad de incertidumbre en un pronóstico aumenta a medida que miras hacia el futuro. Perentorio.


miércoles, marzo 29, 2023

Las 5 disfunciones de un equipo Scrum durante la Sprint Planning

En su libro The Five Dysfunctions of a Team: A Leadership Fable, Patrick Lencioni enfatiza que es difícil “responsabilizar a algunas personas porque son muy útiles. A otras porque se ponen a la defensiva. A otras porque son intimidantes”. Y remata diciendo que no cree que sea fácil responsabilizar a nadie, ni siquiera a nuestros propios hijos.

La planificación es acerca de responsabilizarse. Cuando lo hacemos a la usanza ágil, esa responsabilidad es compartida. Y nuestro modo de pensar insiste en que cuando la responsabilidad es compartida, en efecto, todo el equipo es responsable. Dado el carácter cíclico que tiene la planificación en Scrum, es común que los equipos empiecen a manifestar ciertos trastornos, sobre todo cuando están en etapas tempranas de su desarrollo como equipos.

En la práctica son muchas más de cinco, pero he seleccionado estas cuyas secuelas pueden echar al traste cualquier esfuerzo de desarrollo de productos. Estas son las 5 disfunciones de los equipos Scrum durante la Sprint Planning y cómo superarlas.

1.   No hay un objetivo de sprint claro o no lo hay del todo

Un objetivo de sprint claro es esencial para un sprint exitoso. Proporciona dirección y enfoque para el equipo y les ayuda a ordenar el trabajo. Sin un objetivo de sprint claro, el equipo puede trabajar en tareas que no están alineadas con los objetivos generales de la iniciativa. Para superar esta disfunción, el Product Owner debe trabajar con el equipo para definir un objetivo de sprint claro antes del inicio de cada sprint.

Como Scrum Máster, asegúrate de que todos los miembros del equipo conozcan el objetivo del sprint propuesto antes del inicio de la Sprint Planning. Esto les ayudará a comprender en qué deben concentrarse durante la sesión de planificación.

2.   No están todos los que son ni son todos los que están

La Sprint Planning es un evento colaborativo que requiere la participación de todo el equipo. Si faltan algunos miembros del equipo, puede ser difícil planificar con precisión el sprint y asegurarse de que todos estén en la misma página. Si hay personas que no son del equipo se puede perder el foco con facilidad debido a la falta de conocimiento de estas personas sobre lo que el equipo viene haciendo y hacía dónde va. Para superar esta disfunción, es importante programar la Sprint Planning en un momento en el que todos puedan asistir y asegurarse de que todos entiendan la importancia de asistir. No debe haber interrupciones redundantes durante la sesión.

3.   Muy poco tiempo para el evento o el tiempo es excesivo

La Sprint Planning debe tener suficiente tiempo para permitir una discusión exhaustiva y una planificación apropiada. Sin embargo, también es importante no dedicar demasiado tiempo al evento, ya que esto puede llevar al síndrome de la parálisis por análisis y retrasar el inicio del sprint innecesariamente. Para superar esta disfunción, es importante encontrar un equilibrio entre una planificación conveniente y un uso eficiente del tiempo.

4.   No hay historias de usuario refinadas

Las historias de usuario son la columna vertebral de cualquier sprint. Proporcionan al equipo una comprensión clara de lo que debe lograrse durante el sprint. Sin historias de usuario refinadas, el equipo puede tener dificultades para comprender lo que debe hacer y puede perder tiempo en tareas que no son necesarias. Para superar esta disfunción, el Product Owner debe colaborar con el equipo para refinar las historias de usuario antes del inicio de cada sprint.

5.   No se elabora un sprint backlog apropiado

El sprint backlog es una lista de tareas que deben completarse durante el sprint. Es esencial para hacer conocer el progreso del trabajo y garantizar que todo se haga. Sin un sprint backlog adecuado, puede ser difícil para el equipo saber qué deben hacer y cuándo deben hacerlo. Para superar esta disfunción, es importante que el equipo trabaje en conjunto durante la sesión para crear una Sprint Backlog para los primeros días del sprint y una hoja de ruta que permita al equipo el logro del objetivo del sprint.

Clic en la imagen para ampliar

Ahora bien, ¿cómo puedo mejorar la Sprint Planning de mi equipo?

En el libro Scrum: epítome de experiencias detallamos varias formas de mejorar la Sprint Planning de tu equipo. Aquí hay algunas otras:

  • Asegúrate de que todos estén preparados, de que todos tengan la información y los materiales necesarios antes del inicio del evento. Esto incluye un objetivo de sprint claro, historias de usuario refinadas y cualquier otra información relevante.
  • Fomenta la participación: la Sprint Planning es un evento colaborativo y todos deben participar activamente. Anima a todos a compartir sus ideas y opiniones y asegúrate de que se escuche la voz de todos.
  • Mantén el foco en el objetivo del sprint, este debe ser la fuerza guía detrás de la Sprint Planning. Asegúrate de que todas las discusiones y decisiones estén alineadas con el objetivo del sprint.
  • Usa el tiempo de manera efectiva durante la reunión. Evita que el equipo se atasque en largas discusiones y motiva la toma de decisiones de manera rápida y eficiente.
  • Revisa y mejora: después de cada Sprint Planning, tómate un tiempo para revisar qué funcionó bien y qué podría mejorarse. Utiliza el feedback para realizar cambios y mejoras para futuras sesiones de planificación.

Y una recomendación adicional, parte de mi mantra: da un paso a la vez. Recuerda que “el trabajo en equipo comienza generando confianza. Y la única forma de hacerlo es superando nuestra necesidad de invulnerabilidad”.

sábado, septiembre 12, 2020

El Scrum Master y el Scrum Diario

 

Según la guía de Scrum, “los Scrum Diarios mejoran la comunicación, eliminan la necesidad de realizar otras reuniones, identifican impedimentos a remover relativos al desarrollo, resaltan y promueven la toma rápida de decisiones y mejoran el nivel de conocimiento del Equipo de Desarrollo. El Scrum Diario es una reunión clave de inspección y adaptación”.

“El Scrum Diario es una reunión con un bloque de tiempo de 15 minutos para el Equipo de Desarrollo”.

Pero el Scrum Master, ni mucho menos el Dueño de Producto ni ninguna otra persona facilitan, conducen o gestionan este evento de Scrum. Es el mismo Equipo de Desarrollo en pleno el encargado de llevarla a cabo, si bien alguien como el Scrum Master se asegura de que el Equipo de Desarrollo tenga la reunión.

En el nivel Shu de Scrum, para que haya una reunión Diaria efectiva y se mantenga el espíritu de Scrum y ágil, el Scrum Master enseña al Equipo de Desarrollo a:

1.    Mantener el Scrum Diario en los límites del bloque de tiempo de 15 minutos.

2.    Planificar trabajo para las siguientes 24 horas

3.    Optimizar la colaboración y el desempeño del equipo mediante la inspección del progreso en el trabajo diario y haciendo una proyección del trabajo del Sprint a realizar a continuación

4.    Realizar el Scrum Diario a la misma hora y en el mismo lugar todos los días para reducir la complejidad

5.    Usar el Scrum Diario para evaluar el progreso hacia el Objetivo del Sprint y para evaluar qué tendencia sigue este progreso hacia la finalización del trabajo contenido en la Lista de Pendientes del Sprint.

6.    Entender cómo intenta trabajar diariamente en conjunto como un equipo autoorganizado para lograr el Objetivo del Sprint y crear el Incremento esperado hacia el final del Sprint

7.    Establecer la estructura de la reunión

8.    Conducirla de diferentes maneras siempre que se enfoque en el progreso hacia la Meta del Sprint

9.    Usar preguntas para llevar a cabo la reunión, pero también a basarse en discusiones y en otras tácticas para conducirla

10. Volverse a reunir inmediatamente después del Scrum Diario, para tener discusiones detalladas, o para adaptar o replanificar el resto del trabajo del Sprint

11. Ser los responsables de dirigir el Scrum Diario

12. Adueñarse de la reunión. A tratarla como una reunión interna del equipo, aunque haya otras personas presentes.

Cuando el Equipo de Desarrollo ha interiorizado y practica todos estos comportamientos, para lo cual puede pasar un tiempo considerable que depende más de la actitud y el compromiso de los miembros del equipo, que del acompañamiento, necesario por demás, de un líder como el Scrum Master o un coach ágil, entonces es posible pasar a un nivel Ha de la reunión, pero eso, mi estimado amigo, podrá o podrá no ser motivo de otro trabajo.

Para saber más de la Reunión Diaria, lee también mi artículo de 2014, Compendio Sobre el Scrum Diario, en este mismo Gazafatonario:

http://www.gazafatonarioit.com/2014/01/compendio-sobre-el-scrum-diario.html

Y te invito a descargar el póster en alta resolución para que lo compartas con tu equipo y con toda tu empresa:




Descarga el póster en alta resolución y en tamaño gigante (100 x 70) para que lo compartas con tu equipo y con toda tu empresa:


jueves, septiembre 10, 2020

Planificar historias de usuario en tareas


El trabajo a realizar durante el Sprint se planifica en la Planificación de Sprint. Este plan se crea mediante el trabajo colaborativo del Equipo Scrum completo.

En particular, en esta presentación  muestro algunos ejemplos de cómo descomponer historias de usuario de un backlog de producto en tareas de un backlog de sprint. También explico algunas prácticas y guías a tener en cuenta a la hora de la planificación.

Estas y otras ideas, en la presentación que puedes ver y descargar aquí.



lunes, abril 27, 2020

Ritmo sostenido, cadencia y el ciclo lunar

Imagen de Gerd Altmann en Pixabay

Hablaba con mi amiga Claudia Toscano sobre el por qué la duración de los Sprints debería ser siempre lo mismo, el por qué no era buena idea estar cambiando de duración a las iteraciones en Scrum y lo primero que se me ocurrió es que una de las razones principales es el ritmo, precisamente ese ritmo sostenido del que hablamos ya desde el manifiesto ágil, que nos permite conocer con más precisión (o menos imprecisión) la capacidad real del equipo.

Me refería a ese principio del Manifiesto que dice:
“Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida”.
Decíamos que ese ritmo constante tiene otros beneficios también, entre ellos mayor productividad, elimina el estar pensando precisamente eso de "este sprint de cuánto tiempo será". Esas conversaciones que son desperdicio y restan productividad desde el sprint anterior en donde las personas están sugiriendo que "el próximo sprint sea de 10 días o de 5", "qué tal si lo hacemos de 15", evita esos diálogos que generan estrés, agregan confusión a un contexto que quizás ya tiene mucha incertidumbre. En general, se reduce la complejidad, esa complejidad inherente a tener que tomar ese tipo de decisiones cada vez que va a empezar un nuevo sprint, aun desde el anterior.

Hay menos inseguridad. Hay menos gasto de energía y se genera menos estrés. Además, con el tiempo, los eventos internos del Sprint son más efectivos porque la gente ya conoce su  ritmo y eso es muy importante en la Planificación, porque el equipo ya tiene una proyección de lo que puede hacer en un Sprint. Hemos notado que al mantener un ritmo y vigilarlo continuamente ayuda a mejorar la eficiencia de las personas en el trabajo, reduce los riesgos inherentes al trabajo del conocimiento y al producto o servicio, disminuye el desperdicio que se pueda generar, sobre todo si mantenemos los elementos del backlog (historias de usuario) pequeños, y contribuye significativamente a la mejora continua.

Algo que nos pasaba con nuestra forma de trabajar anterior, en Cascada, era que lenta y casi imperceptiblemente empezábamos a caer en lo que podríamos llamar "vórtice de procrastinación". Uno en el que rápidamente estábamos perdiendo contacto con los clientes o consumidores, con los interesados, pero incluso más grave aún, con los propios compañeros del equipo. No sabíamos cuando íbamos a terminar algo, a pesar de los planes “detallados” a que éramos sometidos de manera dictatorial y el fin de una actividad pasaba de horas o días a semanas y rápidamente a meses… ¡un día a la vez!

¡Eso definitivamente no tenía nada de divertido!

¿Por qué? Porque somos seres rítmicos por naturaleza. Seguimos ciclos de manera casi ritual, por ejemplo, estamos despiertos y dormimos más o menos a las mismas horas, siempre. El ritmo nos ayuda a relajarnos, a calmar el estrés, nos permite determinar bloques de tiempos para actividades específicas y todo ello nos posibilita adaptarnos mejor a las circunstancias, porque podemos predecir o proyectar lo que podemos hacer y cómo hacerlo sin estrés, de manera más o menos divertida.

El Sprint en Scrum y el ciclo lunar

Imagen de Syaibatul Hamdi en Pixabay
El Sprint es el corazón de Scrum y en Scrum todo ocurre en el marco de un Sprint. El objetivo en el Sprint es crear un incremento de producto “Terminado”, utilizable y potencialmente desplegable en un ambiente donde al menos un grupo de usuarios o consumidores pueda “jugar” con él. De la guía también aprendimos que “es más conveniente si la duración de los Sprints es consistente a lo largo del esfuerzo de desarrollo”. Ya hemos establecido ampliamente el porqué es necesaria es invariabilidad.

Una de las duraciones más ampliamente usadas por los equipos en todo el mundo es 2 semanas para sus Sprints, según indica The 2015 State of Scrum Report de la Scrum Alliance. Más sobre este reporte en:


Pero también es importante definir Sprints cuyo inicio y fin concuerden con los ciclos lunares. Esto se les hace más natural a las personas porque nos adaptamos mejor a esas cadencias que son habituales para nosotros. Por eso siempre estamos buscando iniciar Sprints un lunes y terminarlos un viernes. Sin embargo, en países como Colombia donde las festividades fueron modificadas de manera artificiosa hace ya varias décadas, hay que adaptar esos ciclos para acomodar tales eventos y otras pausas habituales en las culturas locales. Por ejemplo, dado que en Colombia hay muchos lunes festivos, podría ser interesante experimentar iniciando los Sprints un martes y hacerlos de nueve días en vez de diez. En el caso de que durante ese ciclo de dos semanas no haya días festivos, el décimo día se puede usar para trabajar en la mejora del equipo o en apoyo a otros equipos y áreas de la organización, o simplemente en socialización al interior de la empresa. También son útiles estos días para realizar hackatones u otras actividades que fomenten la innovación.

De esta manera, los equipos establecen una cadencia acostumbrada y fijan expectativas con base en las fechas de finalización de los Sprints. El equipo puede sincronizarse con otros equipos para entregar incrementos de producto en el que estén trabajando en conjunto o para tener un mejor manejo de las dependencias entre ellos. Esto reduce los conflictos entre esos equipos y las personas nos sentimos más a gusto y cómodas trabajando con el horizonte de los ciclos naturales a los nos que hemos habituado desde niños. Esto mejora la motivación del equipo y afianza los valores y la visión establecidos.

Conclusión

Tener este tipo de hábitos, como Sprints de duración fija, reuniones diarias a la misma hora y en el mismo lugar, y conocer con anticipación las fechas de otros eventos como la Planificación, la Revisión o la Retrospectiva, permite que los miembros del equipo se enfoquen en sus tareas principales y hagan lo que mejor saben hacer, que es manejar la incertidumbre, los cambios y la ambigüedad inherente al tipo de tareas que hacemos diariamente, es decir, esa otra cara variable del trabajo.

Referencias

Para saber más sobre patrones Scrum puedes consultar el libro:

A Scrum Book: The Spirit of the Game, de Sutherland , Coplien , den Hollander y otros.

viernes, mayo 12, 2017

The User Story Conversation Canvas


Las buenas historias de usuario “estimulan”, en el buen sentido, la conversación entre los involucrados (por ejemplo, Dueño de Producto y miembros del equipo). Además, las historias de usuario ven, o dejan ver, la funcionalidad desde la perspectiva del negocio, específicamente desde el Valor que la historia proporciona al negocio.
Como su nombre lo indica, este User Story Conversation Canvas es un medio de comunicación, un instrumento para promover y facilitar las conversaciones que se dan o deben darse alrededor de las historias de usuario. En el fondo, es una herramienta visual para documentar diferentes aspectos o dimensiones de historias de usuario nuevas o existentes en el backlog de producto.
Con este lienzo cualquier persona involucrada, el Dueño de Producto, el equipo en pleno o solo un miembro de este, el Scrum Master, incluso un usuario, puede encontrar la ayuda que necesita para describir adecuadamente los aspectos más relevantes de una historia de usuario, desde las personas que están o se verán involucradas durante la definición, evolución, desarrollo y puesta en marcha de la historia, hasta el resultado esperado y las métricas asociadas a la historia, pasando por el contexto de la misma. Pero sobre todo, podrá encontrar el soporte que necesita para preparar conversaciones fantásticas sobre los elementos que componen el producto.
Las sesiones de refinamiento, la planificación y la revisión son tres de los escenarios principales donde podemos usar este Lienzo para Conversar Sobre Historias de Usuario. Pero se puede usar en muchas otras circunstancias: el dueño de producto hablando con los usuarios y otros interesados, los miembros del equipo de desarrollo, para acordar y sincronizar el trabajo a realizar, el Scrum Master y el Dueño de Producto, en conversaciones alrededor del producto, del backlog, al aplicar patrones para dividir las historias, entre otros escenarios.
¡Cuando se trata de historias de usuario, el énfasis es en la Conversación!
Para saber más sobre Historias de Usuario, los criterios INVEST de las historias y otros aspectos no menos relevantes sobre el tema, puedes visitar mi serie de artículos “Historias de usuario altamente efectivas” en mi Gazafatonario: http://bit.ly/lashistoriasdelucho.

Descarga el lienzo y la guía completa en alta definición aquí y me cuentas en el foro qué te pareció.


Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

miércoles, noviembre 02, 2016

Planear sprints en horas y no por puntos


Hace algunos días nuestro amigo Carlos Jaramillo nos preguntaba a algunos colegas si estábamos de acuerdo con el legendario Mike Cohn cuando dice que los sprints deberían planearse con horas y no con puntos. Carlos se refirió específicamente al artículo Why Sprints Should Be Planned with Hours, Not Points (Por qué los sprints deberían planearse con horas, no con puntos).

Como lo dice Cohn al inicio de su artículo, para mí y creo que para muchos de los que hemos leído su libro Agile Estimating and planning (Estimación y Planificación Ágil) fue una sorpresa cuando vimos el título ya que sabemos que él es un gran referente y promotor de los puntos de historia y de su uso. Pero pasemos a la que fue mi respuesta entonces:

¡Estoy de acuerdo!

En particular, estoy de acuerdo con Mike cuando dice que “los puntos (de historia) son demasiado imprecisos para ser útiles en el corto plazo”, es decir, en un sprint de menos de un mes. También me gustaría destacar aquello de que la velocidad, aunque ligeramente, puede variar de sprint a sprint.

Además de lo que dice Cohn en su artículo algunas otras razones me llevan a pensar así:

No hay una correlación directa entre puntos de historia y el esfuerzo de implementación de la historia de usuario. Es decir, no existe tal regla o ley que señale que si un punto de historia toma H horas implementarse, N puntos de historia tomarán N x H horas implementarse (por ejemplo: si la implementación de una historia de un (1) punto toma 25 horas, entonces la implementación de una historia de 2 puntos tomará 50 horas, no).

Es probable, eso sí, que al final, después de muchos sprints, el promedio muestre tendencia hacia esos números, pero nada evita, en el escenario propuesto, que una historia de 2 puntos le tome al equipo 15 horas y otra también de 2 puntos le tome 35 horas para implementarla o cualquier otro número, incluso podríamos tener una historia de 2 puntos cuya implementación tome 10 horas o menos. En cualquier caso, eso apenas sería la tendencia natural.

Además, aun con ritmo sostenido y con entrega de valor constante en cada sprint, no es lo mismo un equipo en el primer sprint del proyecto que en el séptimo o en el décimo noveno. No es lo mismo un equipo en abril que en septiembre o en diciembre. No es lo mismo un equipo si el proyecto va bien desde varios puntos de vista, como el valor entregado, la calidad, el consumo de presupuesto, etcétera, o si va regular o mal; y no es lo mismo si el equipo y aun la organización a la que pertenece han estado mejorando continuamente o si su crecimiento personal y profesional se ha estancado por acción del proyecto.

Todos esos factores que acabo de mencionar impactan positiva o negativamente la motivación del equipo y por consiguiente, el rendimiento de los miembros del equipo. Lo que finalmente se traduce en número de horas de esfuerzo necesarias para implementar una historia, o sea, para llevarla de ‘Propuesta’ o ‘En proceso’ a ‘Terminada’.

La misma calidad y el tamaño de las historias de usuario también afectan de una forma u otra el esfuerzo requerido para su implementación. Me refiero a la calidad con que son comunicadas al equipo por el Dueño de Producto o por quien corresponda, así también perturba de manera distinta una historia de 2 puntos que una de 5 o una de 8.

Y todo esto para concluir que en cada Planificación de Sprint se debe hacer el ejercicio de, precisamente, planear por horas de esfuerzo, de eso se trata esta ceremonia inicial de Scrum después de todo. La gran diferencia con la planificación de los métodos tradicionalistas es que no vamos a planear seis meses de trabajo o un año o dos, no, se trata solo de adelantarnos a lo que va a pasar en las próximas 2 semanas de trabajo, quizás tres.

Nuestros equipos deben o deberían tener el conocimiento y la experiencia para decirle al Dueño de Producto y al mismo Scrum Master, al final de la Planificación, cómo intentarán hacer su trabajo en el sprint que comienza y eso incluye contarnos el número de horas de esfuerzo que tomará implementar una historia de usuario en particular. Se trata es de dilucidar cuando nos tomará el diseño, la programación, las pruebas, la integración, la documentación y cualquier otra actividad concerniente a la construcción de la historia. Después de todo, para eso fue que precisamente se conformó el equipo.

¡Pero hay más!

Usamos Puntos de Historia para estimar el backlog y el esfuerzo a mediano y largo plazo porque son o representan un valor abstracto. También sabemos que es posible usar otros métodos abstractos de estimación como 'tallas de camisetas', días ideales, colores, tamaño de los planetas o, incluso como dice mi amigo Jorge Abad en sus Lecciones Aprendidas, podemos usar la técnica del ‘ojo de buen cubero’, estimar con Garrapatandamandapispuntos o con cualquier otra medida cuyas convenciones sean bien conocidas por todo el equipo.

El precepto fundamental aquí es que todos estos métodos producen estimados y los estimados, sobre todo en software, están condenados al error. Casi 50 años de experiencias después de aquella remota conferencia de la OTAN en Garmisch en la que de alguna manera se dio vida a la Ingeniería de Software nos han demostrado eso.

En cualquier caso para estos escenarios de mediano/largo plazo, si un usuario o cliente está exigiendo estimar en horas un proyecto Ágil, todavía no ha entendido el enfoque y necesita guía en ese sentido. Las horas son algo concreto sí, pero solo para lo que he explicado arriba, estimar un sprint corto o muy corto, de muy pocos días a dos semanas.

Pero igual que con los puntos, estimar con horas no nos eximirá del error inherente a las estimaciones. Así que en vez de salir corriendo detrás de las horas, deberíamos enfocarnos en habilitar y empoderar nuestros equipos para que hagan un mejor trabajo.
----------
¿Ustedes qué creen? ¿Cómo estiman los sprints? Déjenmelo saber en el foro - la sección de comentarios más abajo.


----------
Más sobre Planificación en:



El artículo de referencia de Mike Cohn lo pueden encontrar en:

sábado, julio 30, 2016

Un vistazo a la guía de Scrum

¿Hace cuánto leíste por última vez la guía de Scrum? Es bien sabido que a medida que tu experiencia y conocimientos crecen, tu forma de ver (leer) algo cambia respecto a la vez anterior. Quizás aprendas algo más, quizás seas capaz de visualizar o entender algo que antes no habías percibido o entendido.

Aprovechando la revisión de la que fue objeto la guía por parte de sus autores y de que había que traducir esa actualización, realicé una revisión exhaustiva tanto de la versión en inglés como de la versión en español en la que tuve la oportunidad de trabajar por primera vez en 2013. (Para conocer los cambios introducidos a la guía, ve a: http://www.gazafatonarioit.com/2016/07/revision-la-guia-de-scrum.html)

Con tres años más de experiencia y conocimiento en Scrum y temas relacionados, me tomé la libertad de actualizar la Gramática y redacción del documento y también algunos asuntos de fondo que me hacían ruido desde hacía mucho tiempo respecto a la versión original de la guía en inglés.

Con todo esto, aproveché también para “repasar” lo que dice la guía, para mirarla más a fondo y decidí traer aquí una lista, arbitraria por demás, pero de todo mi gusto, de algunos puntos que quiero resaltar. Son los siguientes:
“Scrum no es un proceso o una técnica para construir productos; en lugar de eso, es un marco de trabajo dentro del cual se pueden emplear varios procesos y técnicas”.
Es impresionante la cantidad de personas, equipos y organizaciones que solo “aprenden” o quieren aprender Scrum, como si con eso fuera suficiente para hacer todo el trabajado que se les viene por delante. La lista de proceso, técnicas, marcos de trabajo y prácticas que podemos y deberíamos usar con Scrum es extensísima, no voy a elaborarla aquí, pero lo que sí es cierto, lamentándolo mucho por quienes no lo han visto, es que Scrum solo no es suficiente.
“Scrum muestra la eficacia relativa de las prácticas de gestión de producto y las prácticas de desarrollo de modo que podamos mejorar”.
Scrum se basa en la teoría empírica  de control de procesos. Esto quiere decir básicamente que aprendemos de la experiencia. Scrum nos permite visualizar la eficacia las prácticas que usamos las personas, los equipos y las organizaciones y nos permite inspeccionarlas continuamente y adaptarlas y adaptarnos de acuerdo con los distintos escenarios circundantes.
“El Dueño de Producto es la única persona responsable de gestionar la Lista del Producto”.
Todavía me encuentro con muchos equipos y organizaciones que no terminan de integrar al negocio, vía el Dueño de Producto, en sus equipos. Y muchos menos son los Dueños de Producto que realmente actúan como tal. El muy comentado pero pocas veces entendido “backlog” de producto sigue siendo gestionado por el equipo y muchas veces solo por el Scrum Master o por alguien más que no es ninguno de los roles propuestos en la guía.
“El Scrum Master es el responsable de asegurar que Scrum se entienda y se adopte. Los Scrum Masters hacen esto asegurándose de que el Equipo Scrum trabaja ajustándose a la teoría, prácticas y reglas de Scrum”.
Usar Scrum no nos hace ágiles, eso lo tenemos claro muchos. Pero muchos no tienen claro que si vamos a usar Scrum como marco de trabajo ágil, debemos ajustarnos a las reglas enumeradas en la guía. Estas reglas condensan la experiencia de muchos años de trabajo, sobre todo en proyectos de software, de los autores y de muchos otros en la industria. Conjuguemos esta observación con la del primer punto más arriba.
“La Planificación de Sprint tiene un máximo de duración de ocho horas para un Sprint de un mes. Para Sprints más cortos el evento es usualmente más corto”.
En las versiones anteriores es español aquí decía que el tiempo de las reuniones era proporcional a estas ocho horas para sprints más cortos. En ninguna parte de la guía original en inglés dice así, de tal forma que la actualicé en este sentido.
“Al finalizar la Planificación del Sprint, el Equipo de Desarrollo debería ser capaz de explicar al Dueño de Producto y al Scrum Master cómo pretende trabajar como un equipo autoorganizado para lograr el Objetivo del Sprint y crear el Incremento esperado”.
¿Cuántos de los equipos en los que has trabajado, en los que eres Scrum Master, miembro del Equipo o Dueño de Producto, hacen esto? De hecho, muchos quieren terminar lo más rápido posible la planificación para ponerse a trabajar pero nadie es capaz de explicar cómo van a trabajar para lograr la meta trazada del Sprint.
“El objetivo del Sprint puede representar otro nexo de unión que haga que el Equipo de Desarrollo trabaje en conjunto y no en iniciativas separadas”.
Es más, muchas veces los equipos no establecen un objetivo más allá de aquel que indica el número de historias de usuario a construir en el sprint. La meta del Sprint debería ser algo más de Valor para el Dueño de Producto y, por ende, para el negocio. Dejaré este asunto de la meta del sprint para otro artículo pero además de pensar en las características o funcionalidades a implementar siempre es bueno pensar en las razones para llevar a cabo la iteración. Bien sabemos que metas efectivas nos sirven para probar o demostrar que nuestras ideas funcionan, para fomentar el trabajo en equipo, para reducir o eliminar un riesgo específico o para proporcionar mayor valor entregado al negocio.
 “El Equipo de Desarrollo o los miembros del equipo a menudo se vuelven a reunir inmediatamente después del Scrum Diario, para tener discusiones detalladas, o para adaptar, o replanificar el resto del trabajo del Sprint”.
La expresión clave aquí es “a menudo”. Hacer otras cosas después de la reunión diaria puede hacernos perder foco y, por consiguiente, productividad y puede alejarnos de la consecución del objetivo del sprint. Por ejemplo, en la reunión diaria no hablamos de las soluciones a los impedimentos, entonces es buena idea tener reuniones específicas sobre estos asuntos justo después de aquella.
“El Scrum Master se asegura de que se cumpla la regla de que solo los miembros del Equipo de Desarrollo participan en el Scrum Diario”.
Sigo viendo mucho de comando y control en la reunión diaria. ¡El seguimiento diario, dicen algunos! Esta es una reunión de coordinación, de planificación, es precisamente “una reunión clave de inspección y adaptación”. Cualquier otra cosa que se requiera hacer con el equipo, debe ser en otra reunión especial, no en esta.
“Durante la Revisión de Sprint, el Equipo Scrum y los interesados colaboran acerca de lo que se hizo durante el Sprint. Basándose en esto y en cualquier cambio a la Lista de Producto durante el Sprint, los asistentes colaboran para determinar las siguientes cosas que podrían hacerse para optimizar el valor”.
La Revisión de Sprint no es solo para hacer la demostración del incremento de producto terminado. Y puesto que a esta reunión asisten o pueden asistir interesados clave en el producto, es una oportunidad única para discutir lo que viene a continuación en el proyecto.
“Una Lista de Producto nunca está completa. Mientras el producto exista, su Lista de Producto también existe”.
“Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente”. ¿Hace falta decir algo más?
“Los elementos de la Lista de Producto tienen como atributos la descripción, el orden, la estimación y el valor”.
El valor para el negocio. Noten además que hablamos de “los elementos de la lista”, no son solo historias de usuario, como muchos erróneamente creen y manifiestan.
“Scrum no reconoce subequipos en los equipos de desarrollo, no importan los dominios particulares que requieran tenerse en cuenta, como pruebas o análisis de negocio; no hay excepciones a esta regla”.
No existe tal cosa como “ellos y nosotros”, somos un único equipo indivisible, somos una unidad morfológica (orgánica) y funcional y actuamos como tal. Valoramos las habilidades y fortalezas de cada uno de los miembros de esta unidad, pero hacia el mundo exterior somos El Equipo.


Y bueno, como dice mi amigo y colega Jorge Abad, hasta aquí estas reflexiones, viscerales por demás, sobre la guía de Scrum. Los invito a que la descarguen y vuelvan a leerla y a que nos cuenten en el foro cuáles son sus puntos favoritos de la guía, con cuál no están de acuerdo, cuál cambiarían, etcétera.

También pueden descargar la guía de:

Guía de Scrum en español