Uso de workflows por diversión y sus beneficios

Todo el mundo odia los "procesos", pero hay que asumirlo: sin un workflow establecido, no se va a ningún lado.

Dan Radigan Dan Radigan

Todos los equipos de software tienen un proceso para llevar a cabo el trabajo. Normalizar el proceso (es decir, establecerlo como workflow) lo convierte en algo estructurado y repetible, lo cual lo convierte en escalable. En Atlassian tenemos un enfoque iterativo de la gestión del workflow porque nos ayuda a alcanzar nuestros objetivos más rápidamente y ejemplifica nuestra cultura de equipo. Somos expertos en la gestión de workflows ágiles (sin falsa modestia) y queremos ayudaros a que vosotros también lo seáis.

Empieza por lo fácil, empieza ahora

Al implementar un workflow para un equipo, siempre hay que empezar por lo fácil. Resiste la tentación de dedicar semanas de ingeniería (en exceso). Los workflows demasiado complejos son difíciles de entender y de adoptar, por no hablar de su adaptabilidad. Para los equipos de software, recomendamos estos estados de workflow básicos:

Por hacer

Work that has not been started

En curso

Trabajo en el que el equipo está trabajando activamente.

Revisión del código

Trabajo finalizado, pero en espera de revisión.

Done

Trabajo completamente terminado y que cumple la definición que tenga el equipo de "finalizado".

En un gestor de incidencias, estos estados fluyen de uno al siguiente mediante transiciones que estructuran el workflow. 

Agile workflow | Atlassian agile coach

Algunos equipos de software incluyen estados adicionales en su workflow para ayudarles a realizar el seguimiento de los estados del trabajo con mayor precisión.

Esperando el control de calidad

Work that has been implemented, but is still waiting for a tester review (see our article on agile testing for more details).

Listo para hacer un merge

Código que se ha revisado y está listo para hacer un merge con el master o rama de versiones

Cada estado del workflow no necesita un control por parte de distintas personas. A medida que el equipo ágil madura, los desarrolladores pueden asumir más parte del trabajo, desde el diseño hasta la entrega. Después de todo, un equipo autónomo que pueda controlar trabajo heterogéneo es uno de los distintivos de la agilidad.

Habla de cada punto de dificultad en la retrospectiva del equipo y recuerda que cada equipo tendrá valores ligeramente diferentes en función de su proyecto, recursos tecnológicos y método preferido para trabajar. Por eso es tan importante elegir un gestor de incidencias que tenga una configuración de workflow flexible. Demasiados equipos sacrifican su estilo de trabajo para adaptarse a un conjunto de herramientas concreto, lo cual es frustrante para todos. Los miembros del equipo empiezan a evitar esa herramienta, extendiendo la frustración por todo el equipo y creando caos en general. Y cuando falla la motivación, la productividad se resiente. Son dos contratiempos que todos queremos evitar.  

Los equipos que acaban de adoptar metodologías agiles o que no tienen habilidades transversales a menudo terminan con minicascadas en su workflow. Por ejemplo, el equipo de diseño inicia un elemento de trabajo con un modelo. El equipo de desarrollo realiza la implementación. El equipo de pruebas confirma la calidad. Cada estado está bloqueado hasta que se complete el anterior. ¿Te resulta familiar? Eso es una cascada. No obstante, se puede hacer mucho mejor con workflows ágiles que desbloqueen el equipo y simplifiquen el desarrollo. 

Optimiza el workflow

Cuando te sientas cómodo con el workflow básico y estés listo para personalizarlo, crea estados para cada tipo de trabajo en un proceso de equipo. La idea, el diseño, el desarrollo, la revisión del código y las pruebas son funcionalmente diferentes y pueden ser estados individuales. Intenta lograr un conjunto esbelto de estados que comuniquen claramente la fase en la que se encuentra un elemento de trabajo.

Los estados de proyecto también se pueden compartir con el resto de la organización. Cuando se cree un workflow, piense de qué métricas es importante informar y qué podrían aprender los miembros que no sean del equipo. Por ejemplo, un workflow bien diseñado responde a las siguientes preguntas:

  • ¿Qué trabajo ha finalizado el equipo?
  • ¿El backlog de trabajo está aumentando o sigue el ritmo del equipo?
  • ¿Cuántos elementos hay en cada estado?
  • ¿Hay cuellos de botella que estén ralentizando al equipo?
  • ¿Cuánto tarda una tarea media en completarse?
  • ¿Cuantos elementos de trabajo no han pasado nuestros estándares de calidad a la primera?

El siguiente paso para optimizar el workflow es garantizar un flujo constante de trabajo. Los límites del trabajo en curso imponen un número máximo y mínimo de tiques en un estado concreto del workflow. Asegura que cada estado del workflow tenga un volumen suficiente para involucrar a todo el equipo, pero nunca demasiado para evitar que dejen de estar centrados debido al cambio de prioridades. La aplicación de límites en el trabajo en curso mostrará rápidamente los procesos del equipo que ralentizan el trabajo general a lo largo del flujo. A medida que el equipo aprenda a optimizar teniendo en cuenta los límites del trabajo en curso, el rendimiento aumentará (Consulta el artículo sobre límites del trabajo en curso para obtener más información). 

Los retos de escalar un workflow

Las organizaciones que cuentan con varios equipos ágiles se enfrentan a retos especiales con los workflows. A menudo, los equipos desean optimizar su propio workflow para reflejar sus propios procesos y cultura. Es algo perfectamente entendible. Sin embargo, puede suponer un problema cuando distintos equipos usan distintos procesos en el mismo proyecto.

Agile teams that work together can benefit from sharing the same workflow. Using the same workflow can make transitioning work between agile teams easier, because they use the same conventions for defining and delivering work. Creating a common process usually involves some give and take from both teams. That's good! They'll learn from one another and come out with a better workflow in the end. 

Consejo de experto

Con Jira Software, el gestor de tiques de Atlassian, los equipos pueden compartir workflows, pero tienen representaciones distintas del proceso en su tablero ágil. Esta capacidad da lugar a opciones de visualización flexibles sin sacrificar el activo compartido de workflow. 

Independientemente de tu workflow, el proceso para desarrollarlo también debería ser ágil. Habla sobre ello en las retrospectivas de vez en cuando y adáptalo a medida que cambie la cultura y la composición de los equipos.