Blog en construcción

Blog todavía en construcción y en permanente evolución. Vuelve de vez en cuando, porque estoy incorporando nuevos contenidos.

domingo, 18 de julio de 2021

Las Ceremonias Agile

Dentro de algunos marcos Agile (como por ejemplo Scrum) se definen varias ceremonias que tienen lugar durante la iteración.

  • Reunión diaria. Se conoce como el Daily Stand-up. Es una reunón diaria que dura alrededor de 15 minutos. Tiene lugar de pie (por eso se llama stand-up), para fomentar que se vaya al grano y termine en un plazo breve. Durante esa reunión cada uno de los miembros del equipo tiene que responder a tres preguntas:
    • Qué hice a lo largo del día de ayer
    • Qué voy a hacer hoy
    • Qué impedimentos me estoy encontrando para poder avanzar

Es importante que al resumir la actividad incluida en esos tres puntos, los comentarios de los miembros del equipo estén enfocados en qué valor están aportando y que impedimentos se encuentran para alcanzar el objetivo de la iteración con el que se habían comprometido, y por tanto conseguir entregar el valor esperado.

Si durante la reunión aparece algún tema que se quiere o debe discutir con el team (por ejemplo tratar algún impedimento mencionado), se "aparca" hasta que todos los integrantes del equipo hayan intervenido respondiendo a las tres preguntas. Una vez todos han mencionado los avances diarios, los planes para ese día y los impedimentos que tienen (si los hay), se continúa la conversación trantado los temas que se han "aparcado", y en ese caso, los miembros del team que no estén involucrados en ese tema pueden quedarse o abandonar la reunión y volver a sus tareas, y ya serán informados del resultado final de la discusión.

  • Plantificación, o Iteration Planning. Esta reunión tiene lugar al inicio de la iteración. En ella, se establece una conversación entre los miembros del equipo y el Product Owner para,
    • Comentar y aclarar dudas sobre las Historias de Usuario (User Stories) más prioritarias, 
    • Hacer estimaciones de cuánto esfuerzo les puede requerir llevar a cabo cada una de las Historias de Usuario (en otro post hablaremos de cómo se pueden hace esas estimaciones)
    • Identificar qué necesidades específicas tiene el equipo para poder llevar a cabo su trabajo en esa iteración
    • Analizar qué impedimentos se pueden encontrar
    • Evaluar con qué recursos cuenta el team durante esa iteración
    • Comprometerse a abordar un conjunto de las Historias de Usuario (las más prioritarias), con los recursos con los que cuentan y con las estimaciones del esfuerzo requerido
    • Obtener el OK del Product Owner respecto al compromiso que está adquiriendo el equipo
  • Revisión, o Iteration Review. Esta reunión tiene lugar al finalizar la iteración. En ella el equipo presenta los resultados del trabajo que han llevado a cabo durante la iteración. Una buena práctica es presentar los compromisos adquiridos durante la Planificación y a continuación los logros obtenidos, de modo que sea sencillo comprender qué se esperaba y qué se ha conseguido.
  • Retrospectiva, o Iteration Retrospective. En esta ceremonia se analiza cómo ha ido la iteración que acaban de concluir, incluyendo tanto los aspectos positivos que se han encontrado, como abordando los aspectos y áreas de mejora que han detectado. El ámbito de la retrospectiva, puede incluir consideraciones tanto de las historias abordadas, como el propio el equipo y sus interacciones, la relaciones entre el equipo y otros equipos u otros entes externos al equipo, etc. Es importante que, cuando sea posible, el equipo defina puntos de acción que quiere trabajar para mejorar su rendimiento y eficiencia, para así porde evolucionar.

Cuando el proyecto abordado es de gran envergadura, y se tiene varios equipos que trabajan simultáneamente y de forma interrelacionada, se habla de "escalar Agile" y en ese caso, y en función del marco de escalado se que considere (veremos algunos en otros posts), pueden aparecer más ceremonias (o incluso alguna de ellas, como la retrospectiva se puede desdoblar en dos, para abordar el conjunto de equipos y cada uno de estos de forma individual). De esto hablaremos en otros posts.

Inspeccionar y Adaptar

Agile hace un especial énfasis en la importancia de la mejora continua. No en vano incluye un principio que dice “En intervalos regulares, el equipo reflexiona sobre cómo ser más eficiente, y ajusta su comportamiento en función de ello” (Aquí puedes ver los doce principios).

Inspeccionar y Adaptar se puede aplicar a cualquier ámbito de la vida (tanto personal como profesional), tanto en la ejecución de la última iteración Agile, como en un modo de trabajo (Way of Working, WoW) que se ha definido, como en cualquier decisión que se toma y que se pueda revisar y modificar si se considera oportuno.

Pero volvamos a Agile y los equipos de trabajo. Una de las ceremonias Agile es la retrospectiva, que se debe realizar una vez que concluye una iteración, y antes de comenzar la siguiente. Esta ceremonia es de suma importancia, puesto que es la reflexión de la iteración que acaba de concluir

Al mismo tiempo, un agile coach debe enfatizar que, en realidad, los equipos agile cuentan con cuatro ceremonias en las que se puede producir esa inspección y adaptación de forma más o menos natural, sin necesidad de hacer un análisis detallado de qué ha ido bien y qué se puede mejorar:

  • Las reuniones diarias (daily o dailies)
  • La planificación de la iteración (iteration planning)
  • La revisión de la iteración (iteration review)
  • La retrospectiva (retrospective)

En todas ellas, el team tiene la oportunidad de reflexionar y adaptar el curso de su trabajo y su actuación. Veamos algunos ejemplos:

  • En las reuniones diarias. Cuando los miembros del equipo notifican en qué han avanzado, qué tiene previsto abordar, y qué impedimentos se pueden encontrar, pueden reflexionar sobre algunas tareas que no habían identificado inicialmente, sobre un impedimento o un riesgo que no habían considerado, una tarea que ya no tiene sentido llevar a cabo, etc.
  • En la planificación de la iteración. Cuando el equipo va a definir con qué historias de usuario va a comprometerse durante la iteración que están a punto de comenzar, también pueden reflexionar sobre cuáles de ellas deben aparecer o desaparecer. Esta aparición o desaparición de historias puede ser  fruto de los avances de las iteraciones previas, que hayan permitido al quipo confirmar o desmentir hipótesis, desvelar nuevas consideraciones a tener en cuenta, etc, y que debido a ese avance, algunas nuevas historias aparezcan y otras pierdan su relevancia o incluso ya no tengan sentido.
  • En la revisión de la iteración. Cuando el equipo muestra el avance conseguido durante la iteración que acaba de concluir y comenta el valor aportado en la misma, los stakeholders presentes en dicha reunión proporcionarán su feedback, que es de gran utilidad para el equipo puesto que aporta información relacionado con cómo las necesidades de los clientes se ven satisfechas con dicho valor aportado y puede ayudar a confirmar el rumbo de los desarrollos o ayudar a definir cualquier cambio de orientación que sea necesario.
  • En las retrospectivas. Esta reunión es la que siempre se ha considerado el punto básico en el que hacer esa inspección y adaptación. La forma de abordar esta reunión puede ser muy variopinta (y lo trataremos en otro post), pero es importante reflexionar sobre el trabajo, el equipo, la forma de trabajar, la interacciones dentro del equipo y hacia fuera (otros equipos, la organización en general, etc.), los impedimentos encontrados durante la iteración, la forma de reaccionar frente a dichos impedimentos, etc. Es muy importante, desde mi punto de vista que se aborde esta retrospectiva tanto de los aspectos positivos encontrados durante la iteración, como de aquellas áreas de mejora que pueden permitir al equipo evolucionar. Del mismo modo, se trata de identificar puntos fuertes que se deban mantener y puntos de mejora. Si ambos están centrados en el equipo mejor, ya que de este modo se identifican fortalezas del equipo y posibles puntos de acción que permita evolucionar hacia la excelencia.

Algunas diferencias entre Agile y Waterfall

En este post vamos a comentar algunas diferencias entre Agile y Waterfall en tres aspectos relevantes en la gestión de proyectos, los requis...