viernes, mayo 26, 2017

Esfuerzos Sugeridos de Historias de Usuario según la Duración del Sprint


Hola a todos

Continuando con la reflexión acerca del tamaño de las historias de usuario y basado en la retroalimentación de mi estimado y bien ponderado amigo Lucho Salazar - @LuchoSalazarC, quiero compartirles esta tabla de tamaños sugeridos para las historias de usuario.

La siguiente tabla cuenta con las siguientes consideraciones:
  1. Es una sugerencia, cada equipo, cada producto tiene su contexto y tendrá sus propios números, prácticas emergentes y conclusiones.
  2. Esta basada en el artículo "Patterns for Splitting User Stories" de Agile for All (ver post) (ver los patrones de división en español aquí - http://agileforall.com/wp-content/uploads/2013/06/Story-Splitting-Flowchart-ES.pdf ) donde se sugiere que una buena historia de usuario debe tener entre 1/6 a 1/10 de la velocidad del equipo cada sprint
  3. Recordemos que el tiempo requerido para el DONE de una historia de usuario (del mundo del software) debe incluir todas las tareas técnicas que sean relevantes y requeridas, por ejemplo:
    • Análisis
    • Diseño
    • Implementación
    • Revisión Par (esta es una buena práctica)
    • Despliegue
    • Pruebas
    • Corrección
    • Despliegue
    • Pruebas
    • Actualización de documentación relevante para el equipo.
  4. Por ejemplo si consideramos un sprint de 2 semanas y un equipo de 5 personas, el tamaño promedio sugerido de Historia de Usuario está entre 5 y 8 días persona, por lo tanto, ejemplo si tomamos la de 5 días, le tomará tomará al equipo aproximadamente 5 días-persona, lograr el DONE (o sea, todas las activadades identificadas en el punto anterior)
  5. Debemos procurar que los ítemes del sprint backlog (las historias de usuario para el caso del software) sean de similar tamaño, no siempre se logrará, unas veces sí, otras veces no.
  6. Sigo considerando que el tamaño razonable de Sprint es de 2 semanas, máximo 3, pero siempre tender al tiempo más corto.
  7. Aunque muchas veces la construcción de historias de usuario de sistemas que tienen muchas capas requieren muchos muchos días de esfuerzo para lograr el DONE, si un esfuerzo requerido es superior a 10 días-persona, debe ser revisado cuidadosamente para determinar si es susceptible de ser reducido por técnicas de partición de historias de usuario.
  8. Si como Scrum Master estás pensando que tu equipo va solo a trabajar historias de usuario en el sprint, es falso, recuerda que asiste a todas las reuniones de Scrum (Planning, Review, Retrospectiva, Daily, Refinanmiento) y estas toman entre el 10% al 20% del tamaño del Sprint.




Hasta acá este pequeño compartir, espero les sea útil.

Saludos ágiles

Jorge Abad



jueves, mayo 25, 2017

Es en serio, las historias usuario tienen que ser pequeñas



Hola a todos
Quisiera compartirles hoy una situación que con seguridad les habrá pasado a algunos de ustedes.
Dentro de las primeras recomendaciones que como Agile Coach que se le comparten a un equipo de software que comienza a trabajar con Scrum es que “las historias de usuario tienen que ser pequeñas”, es decir:
  • Toman máximo 2 a 3 días en lograr el DONE (4)  (o sea que todas las tareas de ingeniería sumadas toman ese tiempo: análisis + diseño + implementación + prueba par + corrección + despliegue + pruebas + corrección + volver a desplegar, entre otros)
  • Tienen aproximadamente 6 a 8 criterios de aceptación cada una (ver post)
  • El sprint backlog cuenta con entre 6 a 10 historias de usuario de similar tamaño (ver post), obvio no siempre se cumple esta condición pero debemos procurar de que sea así,
  • Que sea tan pequeña que quepa en una tarjeta (media hoja de cuaderno, ojalá menos)
Lamentablemente en ocasiones estas recomendaciones son tomadas a la ligera por el cliente o por los nuevos Scrum Masters, por los Product Owrners y por el equipo desarrollador, teniendo como consecuencia la aceptación de Historias de Usuario que más bien son Épicas, generando:
  • Sprint backlogs de 1 historia que sobre vive muchos sprints
  • Sprint backlogs de 2 a 3 historias y a duras penas lograron cerrar una
  • Entre otros casos

Algunos Pensamientos

Asociado a este antipatrón quisiera compartirles hoy varios pensamientos:
  • Si un sprint es de 10 días –por ejemplo - implica que si una historia de usuario toma 8 o más días-persona para lograr el DONE ocasionando que muy probablemente esa historia no se termine y deba ser completada el próximo sprint si el Product Owner la prioriza.
  • Si una historia toma más de dos o más sprints en lograr el DONE puede tener como causasNo hubo un correcto refinamiento del backlog y la historia no cumplido el requerimiento de ser pequeña (1)
    • Se aceptó una historia de usuario que no tenía sus dependencias resueltas y que otro equipo o alguien externo al equipo de desarrollo le juro y perjuro al Product Owner que las dependencias estarían resueltas durante el sprint, no cumpliendo así la Definition of Ready (verpost) – dependencias que pocas veces se resuelven 
    • La historia de usuario realmente es una historia épica (DURA DE MATAR) que sobrevive muchos sprints teniendo como causa la carencia de refinamiento y de partición de historias (ver recomendaciones para partición de historias)
    • Los criterios de aceptación están tan amplios que “le cabe un tren de lado” (así decimos en mi tierra – Colombia – ), de nuevo careciendo la historia de usuario de refinamiento y de la correcta partición (ver recomendaciones para particiónde historias)
    • Al momento de escribir historias de usuario estas no cumplen dos de los criterios de INVEST (1) – Estimables y Small –, pues realmente no son estimables, (algo que he observado es que las estimaciones se vuelven inexactas más allá de los 10 días-persona) agregando gran incertidumbre a la estimación hecha (ya sea por planning poker u otro método)

Consecuencias

Cuando estas recomendaciones no se siguen ocasionaran:
  • Muy probablemente no haya Review (o demo), pues no hay nada que mostrar, se le pregunta al equipo y dicen “hemos hecho mucho, nos hemos esforzado mucho y nada que terminamos”, por lo tanto no hay incremento, por ende no hay generación temprana de valor, lo que nos lleva a que Scrum “no funciona” porque no se cumplió lo que se prometió con el framework.
  • Si no hay demo, el Product Owner y Stakeholders sienten que el equipo no avanza
  • El equipo encuentra cada vez más y más tareas técnicas que no había identificado y parece esto no tener fin
  • Se genera deuda técnica funcional (pues muchas veces dicen entreguemos así y nos queda pendiente, esto, esto, esto y esto.. y ya veremos cuando lo hacemos)
  •  En la retrospectivas creen que el equipo está mintiendo, y se comienza a generar desconfianza en el ecosistema ágil que queremos crear.

 Es en serio,
las historias usuario tienen que ser pequeñas
las historias usuario tienen que ser pequeñas
las historias usuario tienen que ser pequeñas

Sino fallará tu implementación de Scrum.


Cerrando

Recuerda:
  • Seguir las 3 C´s (2) y el criterio INVEST(1) siempre, 
  • Realizar refinamiento de historias en la mitad del sprint de manera que lleguen en ready al planning (ver post de refinamiento)
  • Hacer una buena partición (slicing) de las historias de usuario (recuerda la guía)
  • Y Si tu Product Owner se aparece en el planning con una historia que toma más de 6 días-persona como Scrum Master o Team Member deberías (según el contexto)
    • no aceptarla, o
    • hacerle partición y negociación en el planning para lograr generar un entregable en el sprint
Hasta acá este compartir

Saludos ágiles
Jorge Abad

Notas, referencias, comentarios y aclaraciones

  1. INVEST
    • Independientes
    • Negociables
    • De Valor
    • que se puedan Estimar
    • pequeñaS (small)
    • que puedan ser Testeables
  2. Las 3 C’s
    • Card (caber en una tarjeta)
    • Conversación
    • Confirmación
  3. Te recomiendo estos dos excelentes post en esa misma línea:
    • Por Lucho Salazar - El Tamaño si importa (clic aquí)
    • Por Javier Garzas - ¿Por qué las Historias de Usuario deben ser lo más pequeñas posible? (ver post)
  4. Inicialmente  tenía de 5 a 6 días-persona pero mi experiencia ha demostrado que se puede en menos,

miércoles, mayo 03, 2017

Cómo Contratar, Encontrar o Formar un Scrum Master




Hola a todos

Sigamos con el post anterior: Las habilidades blandas -Soft Skills- de un Scrum Master 

Primero aclaremos algo que siempre es bueno resaltar:

"con dos días de entrenamiento nadie se hace MAESTRO de Scrum o Scrum MASTER"

Estos dos días y el posible examen de certificación que se presente, son el primer paso, y solo se acreditaría el conocer el framework, pero no implican una maestría y el dominio del mismo, esto es importante remarcarlo pues Scrum no es una metodología, es un framework (lo que implica que no es prescriptivo ni detallado) y como tal deja muchas cosas sin definir y según el contexto y la experiencia se adoptarán unas prácticas y otras no.

Volviendo al tema, como se contrataría o formaría un Scrum Master, vamos por partes:


¿Cómo contrataría a un Scrum Master?

Bueno, pues para contratar a alguien como Scrum Master tendría los siguientes pasos
  1. validaría el conocimiento del marco de Scrum
  2. validaría la experiencia, acá opino que es necesario al menos seis (6) meses de experiencia continuos de haber aplicado el framework para comprenderlo y saber adaptarlo
  3. le haría una entrevista similar a esta -http://www.lecciones-aprendidas.info/2016/05/entrevista-para-un-scrum-master.html -
  4. y cerraría con un Assesment Center (o centro de evaluación), que es un juego de roles donde las personas muestran su forma de priorizar, interactuar, decidir, etc., buscando identificar las habilidades blandas presentadas en el post anterior - http://www.lecciones-aprendidas.info/2017/03/softskills-scrum-master.html -
  5. (para los que tienen equipos avanzados) sugeriría que el candidat@ comparta con el equipo al que llega un día o dos, buscando que  facilite algunas reuniones  para determinar si tanto equipo como Scrum Master se sienten cómodos mutuamente.
Con estos elementos determinaría si se puede contratar o no al Scrum Master candidat@.


¿Cómo formaría un Scrum Master? (aplica en caso de que alguien dentro de la organización se postule a ejercer el rol por primera vez) (1)

En general comenzaría con dos premisas
Luego comenzaría el acompañamiento, que puede darse en dos modalidades
  • acompañamiento de un  Agile Coach
    • Para esto se puede usar el modelo Shu-Ha- Ri de artes marciales

    • Shu
      • El Agile Coach realizaría y mostraría como realizar al SM las siguientes ceremonias
        • Al menos dos planning (esto implica al menos dos sprints)
        • Al menos dos dailys (luego los otros dailys dejaría al SM los realice)
        • Al menos dos refinamientos  (esto implica al menos dos sprints)
        • Al menos dos reviews  (esto implica al menos dos sprints)
        • Al menos dos retrospectivas  (esto implica al menos dos sprints)
      • Luego el Coach acompañaría al alumno en dos sprints, invitando a que el facilite las ceremonias de modo que observen puntos de mejora y puntos a conservar.
      • Luego se le dejaría sol@ con su equipo y se le visitaría esporádicamente o por demanda
    • Ha y Ri 
      • Se requieren de constante comunicación  (muchas lecturas, mucho aprendizaje ) entre el Scrum Master y el Agile Coach para subir a estos niveles
  • Acompañamiento de otro SM con experiencia
    • en este sentido se darían los siguientes pasos:
      • El SM nuevo acompañaría al SM con experiencia al menos durante dos sprints de forma que vea como este realiza las sesiones con su equipo, resuelve los impedimentos, y se desenvuelve en el día a día.
      • Asignar al nuevo SM su nuevo equipo de trabajo
      • El SM nuevo acompañado por el experimentado realizaría durante los dos primeros sprints las ceremonias de Scrum, de forma que se se den recomendaciones sobre facilitación y mejores prácticas
      • Luego el SM experimentado asistiría por demanda o por iniciativa del SM nuevo al equipo buscando ver puntos de mejora
      • Cierre del proceso
Hasta acá este compartir.

Saludos ágiles

Jorge H. Abad L.


Notas, Aclaraciones, Comentarios y Referencias
  1. Un Scrum Master en formación le sugiero seguir las reglas hasta que las domine  y pueda obviar cosas, pero mientras esto llega le sugiero seguir las agendas de scrum  http://www.lecciones-aprendidas.info/search/label/agenda%20scrum

martes, marzo 28, 2017

Las habilidades blandas -Soft Skills- de un Scrum Master


Hola a todos:

Quisiera compartir en este post un poco más del entendimiento que he logrado del rol de Scrum Master, este rol tan extraño que hace poco hemos comenzado a emplear en proyectos de desarrollo de software.

Según la Guía Oficial de Scrum (1), el Scrum Master (SM). lo define como:
  • es el responsable de asegurar que Scrum se entienda y se adopte
  • es un líder que está al servicio del Equipo Scrum (Ojo: Recordemos que el Equipo Scrum esta compuesto por el Equipo Desarrollador (2), Scrum Master y Product Owner)
  • ayuda a las personas externas al Equipo Scrum a entender qué interacciones con el Equipo Scrum pueden ser útiles y cuáles no. El Scrum Master ayuda a todos a modificar estas interacciones para maximizar el valor creado por el Equipo Scrum.
  • Facilitar los eventos de Scrum según se requiera o necesite.
  • Sirviendo al Product Owner en:
    • Encontrar técnicas para gestionar la Lista de Producto de manera efectiva;
    • Ayudar al Equipo Scrum a entender la necesidad de contar con elementos de Lista de Producto claros y concisos;
    • Entender la planificación del producto en un entorno empírico;
    • Asegurar que el Dueño de Producto conozca cómo ordenar la Lista de Producto para maximizar el valor;
    • Entender y practicar la agilidad; 
  • Sirviendo al Equipo Desarrollador (2) en:
    • Guiar al Equipo de Desarrollo en ser autoorganizado y multifuncional;
    • Ayudar al Equipo de Desarrollo a crear productos de alto valor;
    • Eliminar impedimentos para el progreso del Equipo de Desarrollo;
    • Guiar al Equipo de Desarrollo en entornos organizacionales en los que Scrum aún no haya sido adoptado y entendido por completo.
  • Sirviendo a la Organización en:
    • Liderar y guiar a la organización en la adopción de Scrum;
    • Ayudar a los empleados e interesados a entender y llevar a cabo Scrum y el desarrollo empírico de producto;
    • Motivar cambios que incrementen la productividad del Equipo Scrum; y,
    • Trabajar con otros Scrum Masters para incrementar la efectividad de la aplicación de Scrum en la organización.
Podríamos parafrasear o abstraer todo esto en
  • El Experto y Maestro de Scrum
  • Quien enseña al Equipo Scrum a hacer Scrum
  • Facilitador de los eventos de Scrum
  • Líder Servicial (al servicio del equipo Scrum)
  • Agente de cambio
  • Coach del Equipo Desarrollador y del Product Owner
  • Remueve impedimentos 
  • Protege y guía al Equipo Scrum y a la Organización la forma como estos interactuan más efectivamente.
Podríamos decir entonces:
"Wow que rol tan importante dentro del equipo, alguien que lidera y sirve al equipo a la vez", 

Pero el lío viene cuando tenemos que salir a elegir dentro de nuestra organización o contratar Scrum Masters en el mercado, Definitivamente no es fácil, pues a la luz de las definiciones mostradas anteriormente la mayoría son blandas y se podrían resumir en:

  • Liderazgo de equipos*
  • Liderazgo Servicial (propone y cuestiona, pero no impone) (4)
  • Trabajo en equipo
  • Don de Maestro
  • Proactividad
  • Comunicación Asertiva
  • Constante autoformación
  • Orientación al logro* (o sea, hace que las cosas pasen)
*La orientación al logro y el liderazgo son cruciales para que un Scrum Master sea exitoso, pues no tiene presentación que este sea una víctima:
  • del Product Owner, 
  • del Equipo Desarrollador 
  • o de la organización. 
Un buen Scrum Master logra tener éxito haciendo Scrum en el escenario complejo en el cual se desarrolla la construcción del proyecto, valiéndose de las herramientas que le proporciona Scrum y la agilidad, e insisto no es una víctima del entorno, es un protagonista que energiza al equipo y presenta radiadores de información que ayuda a todos a tomar acciones oportunamente.

"Un buen Scrum Master logra tener éxito haciendo Scrum en el escenario complejo en el cual se desarrolla la construcción del proyecto."

Según el marco solo requiere una competencia cognitiva:
  • Maestría en el Framework de Scrum (es importante aclarar que dos días de entrenamiento en scrum no convierten a nadie en MAESTRO), lo que se podría resumir en;
    • Saber como facilitar un planning (clic aquí)
    • Saber como facilitar un daily (clic aquí)
    • Saber como guiar al equipo durante el sprint de manera que se logre la autoorganización
    • Saber como facilitar un review (clic aquí)
    • Saber como facilitar una retrospectiva (clic aquí)  
    • Saber como facilitar un refinamiento (clic aquí)
    • Saber como hacer el rol de Product Owner (pues el SM es su coach)
    • Saber como se hace planeación de un producto
    • Saber como se hace la estimación de un product backlog, un sprint backlog y el seguimiento del mismo
    • Saber sobre agilidad
    • Saber sobre prácticas técnicas ágiles (para el mundo del software), o las herramientas que hacen a su equipo más eficiente (pensando en la aplicación de scrum en un escenario agnóstico - o fuera del software - ) (recomiendo este post : Scrum Master: Cómo Continuar la Mejora Continua de tu Equipo - Clic aquí- )

Y por último, es requerido que el Scrum Master tenga conocimientos básicos (no es necesario que sean avanzados - pues para eso está el equipo -) del escenario técnico en el cual se desenvuelve el proyecto o la construcción del producto, pues sino el primer impedimento sería el Scrum Master al no tener herramientas suficientes para saber cómo o quién puede ayudar a su equipo.


Bueno, hasta acá este compartir.

Próximo post relacionado con este ¿cómo encontrar, contratar o formar un scrum master? - clic aquí -.

Bienvenido el feedback

Saludos ágiles

Jorge Abad.





Notas, Aclaraciones, Comentarios y Referencias
  1. Guía de Scrum - clic aquí para descargarla. De igual forma les recomiendo leerla, encontrarán elementos que de seguro estaban ocultos a su primer entendimiento (como me pasó a mí).
  2. El nombre del Equipo de Desarrollo crea por lo general confusión en la industria del software, se debería llamar Equipo Solucionador
  3. Dos buenos links que me sirvieron de gran utilidad para escribir este post  https://www.scrumalliance.org/community/articles/2013/july/soft-skills-for-scrummasters  -- http://www.yodiz.com/blog/10-essential-skills-every-scrum-master-must-have-infographics/
  4. Las Preguntas Poderosas como Herramientas para Generar Autoorganización y Autogéstión - Clic aquí -

miércoles, marzo 22, 2017

[Scrum] El Product Owner "NO" Necesariamente Escribe las Historias de Usuario o Ítems de Backlog

Hola a todos

Como lo había compartido en el post anterior (clic aquí) el Product Owner:

  • Es alguien con empoderamiento y capacidad de decisión sobre el producto
  • Es el responsable del  ROI -return on investment-
  • Es voz del cliente ante el equipo
  • Define, refina y prioriza el Product Backlog
  • Esta disponible para el equipo
  • Hace seguimiento del avance y la construcción del producto
  • Decide cuando cancelar el sprint 
  • Decide cuando salir a producción.

Pero lo que quiero resaltar en este post es lo que dice la guía(1) dice expresamente acerca del Product Backlog y la Lista de Elementos (o ítems) del Producto y como debería trabajar con ella el Product Owner


"El Dueño de Producto es la única persona responsable de gestionar la Lista del Producto (Product Backlog). La gestión de la Lista del Producto incluye: 

  • Expresar claramente los elementos de la Lista del Producto;
  • Ordenar los elementos en la Lista del Producto para alcanzar los objetivos y misiones de la mejor manera posible;
  • Optimizar el valor del trabajo que el Equipo de Desarrollo realiza;
  • Asegurar que la Lista del Producto es visible, transparente y clara para todos y que muestra aquello en lo que el equipo trabajará a continuación; y,
  • Asegurar que el Equipo de Desarrollo(2) entiende los elementos de la Lista del Producto al nivel necesario. 
El Dueño de Producto podría hacer el trabajo anterior o delegarlo en el Equipo de Desarrollo*. Sin embargo, en ambos casos el Dueño de Producto sigue siendo el responsable de dicho trabajo."

Cabe aclarar que he estado en proyectos donde las historias de usuario o ítems de backlog son escritas por otra persona diferente al Product Owner que no hace parte del Equipo Scrum(2), pero esto no exime que el Produt Owner siga al frente de este trabajo y de sus responsabilidades frente al Equipo y al Producto.



Por lo tanto, el Product Owner (de un producto de software), respecto a
  • los requerimientos en prosa,
  • historias de usuario,
  • casos de uso, 
  • o cualquier forma de expresar la Elementos del Producto o ítems de backlog
 podría de acuerdo a su contexto:
  • Elaborar la Lista de Elementos del Producto (Product Backlog) - esta es la práctica más común  -,
  • Delegarla o apoyarse en el equipo de desarrollo para su construcción, o
  • Delegarla en otros por fuera del equipo de desarrollo - esta es fruto de mi experiencia y de varios coaches en la industria, y nos ha sido bastante útil en contextos donde el Product Owner no tiene tiempo para explicitar reglas de negocio compleas -.
Cada Equipo Scrum debe experimentar y entender cual es la configuración que más le conviene.

Basados en la sorpresa anterior quisiera hacerte una pregunta:
¿Cuándo fue la última vez que leíste la guía de Scrum? 

Es bueno leerla cada cierto tiempo, pues en la medida que ganas conocimiento y destreza con Scrum la lees y la comprendes mejor.

Hasta acá esta pequeña nota curiosa.

Les recomiendo este otro post  Un vistazo a la guía de Scrum - Clic Aquí relacionado con la guía y sus apartes "ocultos a nuestro rapido mirar" de mi estimado amigo Lucho Salazar - @LuchoSalazarC traductor de la versión actual al español.

Saludos Ágiles

Jorge Abad



Notas, Aclaraciones, Comentarios y Referencias
  1. Guía de Scrum - clic aquí para descargarla. De igual forma les recomiendo leerla encontrarán elementos que de seguro estaban ocultos a su primer entendimiento (como me pasó a mí).
  2. Recordemos que el Equipo Scrum esta constituido por: El Product Owner, El Equipo de Desarrollo y el Scrum Master.

domingo, marzo 12, 2017

[Scrum] El Valioso "NO" del Product Owner

Hola a todos

Según la Guía de Scrum(1), el Dueño de Producto o Product Owner (PO). lo define como:
  • El responsable de maximizar el valor del producto y el trabajo del Equipo de Desarrollo (2)
  • Es la única persona responsable de gestionar la Lista del Producto (Product Backlog)
  • Expresa claramente los elementos de la Lista del Producto;
  • Ordena los elementos en la Lista del Producto para alcanzar los objetivos y misiones de la mejor manera posible;
  • Optimiza el valor del trabajo que el Equipo de Desarrollo realiza;
  • Asegura que la Lista del Producto es visible, transparente y clara para todos y que muestra aquello en lo que el equipo trabajará a continuación;
  • Asegura que el Equipo de Desarrollo entiende los elementos de la Lista del Producto al nivel necesario.
  • Es una única persona, no un comité. El Dueño de Producto podría representar los deseos de un comité en la Lista del Producto, pero aquellos que quieran cambiarla prioridad de un elemento de la Lista deben hacerlo a través del Dueño de Producto.
  • Para que  pueda hacer bien su trabajo, toda la organización debe respetar sus decisiones
  • Durante el Sprint el alcance puede clarificarse y renegociarse entre el Dueño de Producto y el Equipo de Desarrollo a medida que se va aprendiendo más.
  • Solo el Dueño de Producto tiene la autoridad para cancelar el Sprint
  • El Dueño de Producto hace seguimiento de este trabajo restante total al menos en cada revisión de Sprint.
  • Decide si libera o no el incremento
Lo anterior podríamos parafrasearlo un poco como
  • Es alguien con empoderamiento y capacidad de decisión sobre el producto
  • Es el responsable del  ROI -return on investment-
  • Es voz del cliente ante el equipo
  • Define, refina y prioriza el Product Backlog
  • Esta disponible para el equipo
  • Hace seguimiento del avance y la construcción del producto
  • Decide cuando cancelar el sprint 
  • Decide cuando salir a producción.
Pero este post se enfoca en que le corresponde Product Owner respecto al producto y al alcance decir
  • qué se hace 
  • y qué se posterga para próximas versiones (un NO PARCIAL, o sea hoy te digo que NO, mañana tal vez lo hagamos)
  • y qué definitivamente NO SE HACE



Esto se alinea perfectamente con el décimo principio ágil (3) en donde se refleja el pensamiento Lean:

la simplicidad o el arte de maximizar la cantidad de trabajo no realizado es esencial

Decifrando este juego de palabras podemos parafrasearlo diciendo para el mundo del software

Nos esforzaremos al máximo en NO crear ni software, ni alcance, ni trabajo de desperdicio o que no sea necesario (o hacer algo que terminará siendo inútil)

Por lo tanto, es clave que el Product Owner aprenda de a DECIR NO, y al negociar con sus interesados para ciertas funcionalidades les dirá:
    • eso NO se puede hacer aún, 
    • es que necesitamos generar valor con lo mínimo posible
    • eso va para otra versión o release
    • eso aun NO tiene prioridad
    • eso NO agrega valor
    • eso definitivamente NO se hará
Es decir la misión del PO es mantener el Backlog de cada release lo mas pequeño posible de forma que se genere valor con la menor cantidad de alcance requerido y de esa manera se alcance prontamente el máximo ROI.


Cerrando

Un buen PO sabe:
  • Que cada sprint tiene software funcionando y potencialmente liberable (punto a favor del PO y de la organización)
  • Pero que si se permite decir que SÍ todas las funcionalidades que se le ocurran tanto a el como al negocio, NUNCA va a salir a producción, pues a mayor alcance más cantidad de sprints se van a requerir para salir a producción, y a mayor tiempo menor ROI (un peligroso circulo vicioso)
  • Que si se demora mucho en salir a producción el impacto en el ROI y en el negocio puede ser nefasto dado lo disruptivo y cambiante del entorno actual.

Recuerdo mucho una frase que le escuche a Ángel Medinilla.
NUESTRO TRABAJO NO ES HACER SOFTWARE, ES HACER LA MENOR CANTIDAD DE SOFTWARE POSIBLE QUE MAXIMICE EL VALOR DE NEGOCIO DE NUESTROS CLIENTES.

Por lo tanto cuando vayas a escoger a un PO, cerciórate de que el o ella tienen claro los siguientes aspectos respecto al alcance:
  1. Que conoce que problema de negocio está resolviendo
  2. Que tiene claro cual es la solución que debe entregar al negocio para resolver ese problema
  3. Que dice NO, pues esta interesad@ en salir a producción lo antes posible
  4. Que comprende que el NO es de las mejores formas de controlar el ROI
Bienvenido el Feeback

Saludos ágiles

Jorge Abad



Notas, Aclaraciones, Comentarios y Referencias
  1. Guía de Scrum - clic aquí para descargarla. De igual forma les recomiendo leerla encontrarán elementos que de seguro estaban ocultos a su primer entendimiento (como me pasó a mí).
  2. El nombre del Equipo de Desarrollo crea por lo general confusión en la industria del software, se debería llamar Equipo Solucionador
  3. Principios ágiles - http://agilemanifesto.org/iso/es/principles.html
  4. Este post está altamente relacionado con: La Ilusión del Control o ¿Cómo Hago para Controlar un Proyecto Ágil?


viernes, febrero 17, 2017

Scrum Master: Cómo Continuar la Mejora Continua de tu Equipo



Hola a todos:

Hace poco en una sesión de acompañamiento a Scrum Master, alguien me preguntó

¿Hacia dónde seguir mejorando el equipo, pues creo que no podemos mejorar más?

Ante esta pregunta, comencé a explicar el Modelo Operativo de Generación de Valor (1) el cual se basa en:

  • Personas
  • Procesos y
  • Herramientas


Por lo tanto, si el Scrum Master se centra solo en personas y procesos "rápidamente" (tal vez en 10 sprints, tal vez muchos más, tal vez menos ) el equipo logrará sinergia y alcanzará la maestría en el manejo de Scrum, sus ceremonias, priorización del backlog, etc.,  y caerán en una "zona cómoda" en la cual la pregunta realizada tiene todo el sentido.

Bajo este contexto la frase de Ken Schwaber - cocreador de Scrum -  toma todo el sentido:

“En Scrum, un grupo en el que se lleven mal entre ellos, no comprendan el negocio del cliente y trabajen con malas herramientas... también producirán incrementos periódicos... de basura. ”( no dudo que la hubiera querido terminar con otra palabra)


Es necesario entonces, que como Scrum Masters y Coaches adicionemos a los procesos de mejora del equipo las herramientas (2) -o prácticas técnicas- y lograr que los equipos adquieran la maestría en ellas, aun más que sean sanamente insatisfechos y estén siempre buscando una mejor manera de hacer las cosas. De esta forma se genera valor hacia el interior y exterior del equipo estando en constante crecimiento.

Cerrando

A continuación quiero compartirles una pequeño listado de prácticas técnicas con las que pueden y deben retar a sus equipos como Coaches Agiles que son de ellos, la lista en esta en continuo crecimiento, este es el pequeño listado que encontré a la fecha:



Herramientas (Prácticas ágiles) 

Zona 1: Personas y Herramientas
  • Inspección o revision por pares
Zona 2: Procesos y Herramientas
  • Pruebas unitarias
  • Test Driven Development (TDD)
  • Aceptance Driven Development (ATDD)
  • Refactoring
Zona 3: Personas, Procesos y Herramientas
  • Pair Programming
  • Mob Programming
Zona 4: Solo Herramientas
  • Integración Continua
  • Despliegue Continuo
  • Revisión de código estática
  • Pruebas funcionales Automatizadas
  • Principios SOLID de POO (Programación orientada a objetos)
  • Clean Code
  • Automatizar lo automatizable
  • etc, etc, etc.




Para terminar les comparto esta frase que constantemente me inquieta "los pacientes se enferman de lo que el médico sabe (3)", por lo tanto si como Scrum master o Coach no estas en constante aprendizaje de estas tres áreas no podrás ayudar apropiadamente a tu equipo


Bienvenido el feedback


Saludos ágiles
Jorge Abad


Notas, Aclaraciones, Comentarios y Referencias


  1. Operating model - https://en.wikipedia.org/wiki/Operating_model
  2. El tablero Kanban, la Gestión Visual, etc también son herramientas, el objetivo del post es hacer visible el punto de las prácticas técnicas ágiles.
  3. "los pacientes se enferman de lo que el médico sabe" - clic aquí para ver post relacionado