viernes, 26 de octubre de 2018

Scrum: ¿Cómo arrancar el Sprint 1?

¿En qué momento o sprint se hace el rampup, setup o configuración inicial del proyecto?

Hay quienes llaman Sprint cero para comenzar un nuevo equipo o proyecto. Al principio del desarrollo de un producto hay preparativos previos a comenzar el desarrollo en donde se construye la infraestructura técnica, poner en orden el backlog inicial (refinamiento), visualización de la arquitectura a alto nivel, priorización y planificación de lanzamientos (release plan), configurar el espacio de trabajo del equipo con máquinas para la construcción, instalar ambientes y herramientas, tal vez algo de capacitación, constitución de equipo y acuerdos de trabajo en equipo. Esto no es un término de Scrum 'oficial' aunque es común. Para el examen de Scrum.org, "no" existe Sprint 0, no hay tal cosa como Sprint 0 (Sprint Zero). Los Sprint se numeran desde el 1. Para Ken Schawber, coautor de Scrum, el Sprint cero no deja de ser una frase mal aplicada para describir la planificación previa al primer Sprint. El problema es que, por lo general, no resulta en un incremento de producto para que el Product Owner valore, ni se lo suele asignar a ese fin. Para que sea un Sprint ideal de Scrum debería tener un objetivo, entregar un incremento de producto y comenzar por el 1.

 Podríamos usar diferentes estrategias:


  • Usar el Sprint 1: El objetivo por lo general es “configurar el equipo para el desarrollo del producto”. Si se tiene una historia de usuario mínima para trabajar se puede comenzar con ella para poder entregar algo de valor de negocio y se puede acordar ese objetivo como parte del setup. Uno de los requisitos básicos del scrum es tener un registro del producto y este sprint es ideal para consolidar el backlog y refinar el trabajo para el próximo sprint y en lo posible entregar algo aunque no se pueda. Es muy probable que la velocidad del Sprint 1 sea cero. 
  • Proyecto de inicio: según Mike Cohn, este trabajo puede ser como un proyecto propio inicial porque porque no es difícil imaginar que este trabajo lleve más del tiempo de un sprint. Luego ya podemos comenzar con el Sprint 1. De hecho en el proyecto de inicio puede ser un proyecto de validación de la hipótesis inicial del producto (apuesta inicial que se desprende de alguna estrategia de negocio) y se podría hacer el Discovery y la Inception. 
  • Usar la Inception: este trabajo puede ser realizado en la “inception” del equipo. O sea que a las actividades de la inception se les puede agregar actividades técnicas de setup y formación del equipo. 
  • Usar el Sprint 0: usar el nombre de Sprint 0 sabiendo que no se tiene en cuenta en la velocidad y que es tratado como un sprint distinto exceptuando las reglas de los Sprint de Scrum. Hasta podría tener un timebox distinto. 


Referencias: 
https://www.mountaingoatsoftware.com/blog/sprint-zero-a-good-idea-or-not http://www.javiergarzas.com/2013/07/el-sprint-cero-y-el-sprint-de-release.html https://dosideas.com/noticias/metodologias/944-un-sprint-cero-efectivo-en-scrum
https://www.paradigmadigital.com/techbiz/sprint-0-clave-la-gestion-proyectos-agiles/

miércoles, 17 de octubre de 2018

Agile Coaching: ¿Qué es un Agile Coach?

Debido a que en mi experiencia laboral bajo el rol de Agile Coach he tenido que aclarar infinidad de veces que era y qué hacía y qué no hacía, es que escribo esta entrada para contar y aclarar la explicación, más detallada, que solía dar con otras palabras.

Definición de qué es un Agile Coach


Es significado esctricto de la palabra coach según la RAE es ‘persona que prepara o adiestra a otra en algo, ...’, es decir un ENTRENADOR. Si nos ceñimos a este significado original y bajo el marco laboral, un Agile Coach o Entrenador de Agilidad es una persona cuya formación, experiencia y métodos didácticos le permiten preparar a una persona para la ejecución de tareas, el ejercicio de actividades, la práctica de habilidades concretas relacionadas con metodologías y prácticas ágiles. De hecho, en el mundo de la agilidad, el Coach apareció como rol en la metodología liviana de desarrollo de software llamada "Extreme Programming" (XP). Y justamente es eso, el entrenador del equipo.

En este sentido, el Agile Coaching es una especie de medio que le permite al entrenado mejorar alguna destreza relacionada al “enfoque ágil” (alineadas al manifiesto ágil y a la agilidad organizacional) o a “metodologías ágiles” (marcos, métodos y/o metodologías como: Scrum, XP, Kanban, Método Kanban, y relacionados como Lean, etc.) en su campo laboral. O dicho de otra manera, el Agile Coach ayuda al entrenado a mejorar y desarrollar su rol laboral de manera más efectiva y eficiente, relacionado con su área de experticia y bajo un sistema de trabajo.

Competencias


La experticia del Agile Coach abarca principalmente dos áreas: la de la profesión del Entrenador o su especialidad profesional (Ingeniería de Sistemas, Ingeniería de Software, Ingeniero Industrial, etc.) y la experiencia del Entrenador Agile en el ámbito de la Agilidad (todo lo relacionado bajo el paraguas de Agile). En esto último, se puede decir que tiene conocimientos amplios desde la experiencia sobre agilidad, los marcos de trabajo (frameworks) de uso típicos, metodologías, y los que apliquen.

Según Lyssa Adkins, el Agile Coach es un facilitador de ceremonias, de conversaciones y de equipos; es un capacitador, mentor (One-on-One), navegador de conflictos, habilitador de la colaboración y resolutor de problemas. O sea que puede trabajar con personas como con equipos. Según Rachel Davies, es “un entrenador que ayuda a los equipos a crecer fuertes en la aplicación de prácticas ágiles a su trabajo”.
Competencias de un Agile Coach según Lyssa Adkins y el Agile Coaching Institute.

Un Agile Coach también puede trabajar a nivel organizacional, apoyando a que la organización progrese en su implantación de “Métodos Ágiles” y aplicar un enfoque ágil en sus procesos. Y esto puede ser desde estimular el interés por el enfoque ágil en una organización, hasta mejorar la ejecución de las técnicas y métodos. Esto dependerá de la experiencia y especialidad del profesional.

Cabe aclarar que las actividades de 'coaching' de un Agile Coach consisten en la ayuda a la reflexión con un enfoque en los valores y principios del marco Agile. Para Scrum.org, el coching es el entrenamiento de personas, equipos y organización con un enfoque en la mentalidad, el comportamiento, en la mejora continua y en una verdadera colaboración de los equipos en la organización (Scrum.or, 2016).

El Agile Coach es un rol no una Profesión


Ni el Agile Coaching ni el Coaching son profesiones regularizadas por sistemas educativos formales, es decir que no son profesiones ni los practicantes son profesionistas. En este sentido, el Agile Coach surgió como un rol y perfil necesitado en el mercado y que algunos profesionales lo ejercen en campo, porque son contratados bajo esa figura como Expertos en Agilidad o "Agile Expert", para guiar adopciones de metodologías ágiles y entrenar prácticas bajo el enfoque ágil. En consecuencias un Agile Coach debería, en principio, tener credenciales de profesional. Es decir, tener una profesión determinada que lo acredita como profesional en un campo del conocimiento (ingeniero, administrador de empresas, psicólogo, etc.) en el cual ejercerá el rol o cargo de Agile Coach por tener experiencia comprobable de su experticia en el enfoque ágil y sus métodos, como también tener un conocimiento abarcativo respecto a agilidad. Si bien la experticia la da la experiencia de haber trabajado con agilidad y liderado equipos o proyectos ágiles, desde las trincheras, durante un tiempo que lo avale como referente o experto, también podría tener alguna certificación (como la Agile Coaching Institute), o certificaciones relacionadas a marcos de trabajo, roles o metodologías ágiles (como las de Scrum.org, ScrumAlliance.org, SAFe, etc.).

Definición de qué NO ES un Agile Coach


Ya sea por el juramento profesional o por la honestidad profesional, es oportuno mencionar que quienes ejercen su respectiva profesión con responsabilidad, conciencia y dignidad, deberían tener en cuenta que al practicar Agile Coaching deberían aclarar que no es competencia del rol y actividad ejercer prácticas lindantes con la medicina, la psicología o ciencias de la conducta, ni aquellas que pudieren encuadrarse bajo las terapias alternativas y ayudas de vida; Agile Coaching no es Coaching Ontológico ni Coaching en el sentido de guía espiritual ni acompañante en la realización personal o en procesos de transformación personal o psicológica. Los Agile Coaches no deberían hacer intervenciones dirigidas a “mejorar tu trabajo, tu relación de pareja, tu salud, tu desarrollo personal y tomar el control de tu vida”. Tampoco hacen terapia laboral. No son life coaches o health coaches. Tampoco tienen la fórmula del éxito ni la solución a todos los problemas. Si un Agile Coach promete alguna de estas cosas o practica alguna de éstas con sus clientes, entonces incurre en mala praxis profesional o, por lo menos, en deshonestidad profesional.

Descripción de puesto Agile Coach

Para ir finalizando, voy a describir un poco general el puesto de trabajo o 'job description'. Pues, es más fácil entender que hace un Agile Coach con una descripción de puesto:

Descripción de rol:

Agile Coach, Entrenador Ágil, Facilitador Ágil de Equipo o Especialista en Agilidad que prepara o adiestra a profesionales y equipos en el marco Agile y marcos de trabajo y metodologías ágiles. Profesional que ayuda  entrenado a mejorar y desarrollar el rol laboral de profesionales y equipos de manera más efectiva y eficiente, relacionado con su área de experticia y bajo un sistema de trabajo ágil. 


Formación:

  • Profesional del área TI (para el ámbito de desarrollo de software), titulado de carreras como: Ingeniero de Sistemas, Ingeniería Informática, Carreras a fin. 
  • Postgrado, diplomados o certificaciones como: Profesional Scrum Master (PSM), Profesional Scrum Fundations (PSF), Certified Scrum Master (SCM), Profesional Scrum Product Owner (PSPO I, PSPO II), Certified Scrum Product Owner (CSPO), SAFe Product Owner/Product Manager. 

Conocimientos y competencia:

  1. Conocer, practicar y saber explicar el Manifiesto Ágil.
  2. Marcos o metodologías livianas de desarrollo de sistemas (ágiles) como: Scrum, Kanban, XP. Tener profundos conocimientos en al menos un marco.
  3. Conocimiento en framework de escalado ágil: Nexus, SAFe, LeSS, etc. 
  4. Conocimientos en Lean Thinking y Lean Manufacturing.
  5. En el ámbito de desarrollo de software necesita conocimientos técnicos y de ingeniería de software, informática y la industria TI. Esto es importante si el equipo que lidera desarrolla software.
  6. Capacidad de enseñanza (teaching) y mentoreo (mentoring); capacidades de docencia (trainer/teacher) para un grupo de personas.
  7. Conocimientos administrativos básicos y de gestión (Management 3.0).
  8. Habilidades de facilitación y moderación de reuniones efectivas y sesiones de trabajo con dinámicas conducentes a resultados efectivos y eficientes.
  9. Capacidades de coaching y de ayudar mediante la indagación tanto a miembros de equipos como a equipos completos.
  10. Capacidad de Liderazgo, de construcción de equipo (Team Building), mentoreo y coaching.
  11. Conocimientos de negocio (KPIs) y de desarrollo de productos.
  12. Conocimientos en Transformación Digital, Gestión del Cambio, Adopción ágil y Transformación Organizacional. 

Responsabilidades:

  1. Realizar capacitaciones y workshops dirigido a equipos.
  2. Ayuda a los equipos a comprender la teoría, las prácticas, las reglas y los valores del marco de trabajo en adopción bajo el paradigma ágil (Scrum, Kanban, etc.).
  3. Guía a los equipos en el desarrollo de los eventos del marco de trabajo, el uso de artefactos y a lograr disciplina y cadencia en el uso de agile frameworks (Scrum, Kanban, etc.).
  4. Facilita a los equipos en la resolución de problemas.
  5. Capacita, persuade e influencia a interesados y equipos en el mindset Agile y uso de prácticas ágiles.
  6. Oficia de líder servidor de Equipos en pos de un trabajo ágil.
  7. Ayuda a quienes están fuera del equipo de desarrollo a comprender cuáles de sus interacciones útiles y cuáles no con el equipo.
  8. Audita, evalúa y guía a equipos en su desarrollo bajo algún modelo de madurez.
  9. Ayuda a todos los miembros de los equipos a su tutela a cambiar y mejorar las interacciones de las personas para maximizar el valor que entrega el equipo.
  10. Apoya a los equipos a entregar valor, satisfacer a los usuarios/cliente y entregar valor de negocio con sus resultados.
  11. Entrena y mentorea a Scrum Masters, Product Owners y otros profesionales en sus respectivos roles.




También pudo haber oído del rol Enterprise Agile Coach y quienes usan este rol lo hacen para distinguir a los Agile Coach Senior que trabajan más a nivel estratégico, con alta dirección y con un foco más allá de los equipos, más organizacional. Pero esto ya merecería otro post.


Espero haber sido de ayuda en explicar este rol tan de moda en transformaciones digitales o en empresa que adoptan agilidad.


Saludos.


Referencias:

1. Lyssa Adkins, “Coaching Agile Teams: A Companion for ScrumMasters,
Agile Coaches, and Project Managers in Transition”,
Addison-Wesley Signature Series (Cohn), 2010.
2. Gene Gendel, "Guidelines to hiring a professional Coach", 2019.

3. Michael de la Maza, “Agile Coaching: Wisdom from Practitioners”. Editor Michael de la Maza, CEC & Dhaval Panchal, CEC, CST, 2017..
4. Rachel Davies y Liz Sedley, “Agile Coaching”.
5. Artículo: Resumen Agile Coaching, samuelcasanova.
6. Artículo: Agile Coaching, Scrum.or México.
7. Artículo: Que es un Agile coach? Agilar, Angel Diaz-Maroto.
8. Artículo: El rol Agile Coach, Javier Garzás.
9. Artículo: El ‘coaching’ de salud y de vida: los nuevos expertos en todo y para todo.

10. Agile coaching institute, competencias de un Agile Coach.
11. The 8 Stances of a Scrum Master, Scrum.or, 2016.
12. https://www.youtube.com/watch?v=fc4_Lq1UE9k
13. Extreme Programming: Roles within an Extreme Programming Project (Coach).
14. Kent Beck, en su Extreme Programming Explained: Embrace Change (1999).
15. Gene Gendel. Adaptative Ecosystems. The Green Book: Collection of independent Essays About Agility (Paperback), 2019.
16. Agile Coach Job description in Linkedin.












viernes, 12 de octubre de 2018

Retrospectiva: Acuerdo de reunión de equipo



Preparación del clima para una retrospectiva


Es bueno, para comenzar una retrospectiva iniciar con alguna frase o mensaje que introduzca a la reflexión bajo un buen clima de conversación. Por ejemplo:

"Toda decisión de mejora es un acto creador que refleja nuestra etapa actual de desarrollo del equipo y la información que tenemos disponible. Cuando cambian estos factores podemos ver en retrospectiva la situación de forma diferente. Sin embargo, esto no significa que lo hicimos mal. Lo importante es que hicimos lo mejor que pudimos en aquellas circunstancias."
"No importa que te equivoques, 
lo importante es que puedas aprender de tus errores."

Acuerdos de Reunión


También es importantes que todos respeten algún acuerdo de reunión. Por ejemplo:

Acuerdo de reunión de equipo:

  1. Da lo mejor de ti.
  2. No te tomes nada personal.
  3. Discute ideas y hechos, no sobre personas.
  4. Se abierto a la crítica y al feedback.
  5. Recuerda que todo se puede mejorar.
  6. Recuerda que el equipo es tu círculo de confianza.

4 Acuerdos Toltecas


También podríamos usar los 4 acuerdos Toltecas:

Acuerdos de reunión.








Y recuerda pasarla bien. Siempre puedes hacer de la retrospectiva un momento alegre, con helado por ejemplo.

Referencias:




lunes, 8 de octubre de 2018

Retrospectiva: Retro de las 3 casa

Es bueno, para comenzar una retrospectiva iniciar con alguna frase o mensaje que introduzca a la reflexión bajo un buen clima de conversación o exponer un acuerdo de reunión (ver entrada de acuerdos de equipo). 


Dinámica las 3 casas


Luego de la introducción y revisión de datos (métricas, impedimentos, etc.) explicamos la dinámica:

1. Dibujar y explicar a los participantes las 3 columnas con tres casas. La idea es identificar qué casas tenemos o qué tenemos en cada casa. Algunas pueden ser de paja (nuestras debilidades en el equipo o en nuestro proceso), otras de madera (aquellas cosas intermedias que debemos mejorar) y otras de ladrillo (nuestras fortalezas):
  • Casa de paja: Tenemos una casa frágil que se puede derribar en cualquier momento...¿qué hacemos al respecto?  (por ejemplo, "nuestro script de implementación es muy manual y propenso a errores, podríamos interrumpir la producción muy fácilmente"). 
  • Casa de madera: Tenemos una casa intermedia, buena pero mejorable.... ¿qué hacemos para que sea bastante sólida/robusta? (por ejemplo, “nuestras pruebas automatizadas son bastante buenas, pero en algún momento fallan sin razón, y tenemos que ejecutarlas, lo cual es un dolor”). 
  • Casa de ladrillos: Tenemos una casa firme, pero todo es mejorable... ¿qué hacemos para que sea roca sólida? (por ejemplo, "nuestro despliegue automatizado y release nunca fallan. ¿Es genial? ¿Cómo hacemos para que sea realmente genial?"). 

2. Pídales a los participantes que compartan sus notas en post-it y que las coloquen en una de las tres columnas.
3. Filtrado y conversación grupal sobre elementos de acción.

Esta actividad es una actividad increíble y divertida, especialmente cuando se trata de un buen dibujo sobre los tres cerdos con sus casas. Si no sabe dibujar, no se preocupe, mientras refleje la idea. Se puede aprovechar, en un equipo de desarrollo de software, para evaluar cómo está el equipo en relación a: UX, Testing, Continuous Integration y Continuous Delivery (o cualquier otro tema que considere importante).


¡Kudos para Jumbo Ahora en Cencosud 2018!


Plantilla ejemplo v1.0 (Template):





Pasos de la retro:
  1. OPENING: introducción, acuerdos de reunión y rompe hielo.
  2. REMEMBER: recordar estado previo: accionables previos y métricas.
  3. BRAINSTORMING: se hace una dinámica de 3 casas (previamente descrita).
  4. ACTIONABLES: hacer un acuerdo de las próximas acciones a realizar.
  5. CLOSURE: cerrar de la reunión. Se puede hacer un feedback del evento.