Scrum en su propuesta esencial no plantea ningĂşn mecanismo para visualizaciĂłn del estado de los Ătems de trabajo, ni tampoco entra en aspectos del flujo de trabajo (workflow) que cada Ătem sigue desde que se crea hasta que se termina.
Los tableros kanban han demostrado su efectividad en diferentes ámbitos de trabajo. La idea de utilizar un tablero kanban en el contexto de Scrum es bastante natural, pues ofrece dicha visualizaciĂłn y workflows para poder hacer un seguimiento visual de los Ătems, estĂ©n en el Backlog o en un sprint, es decir, las actividades de interĂ©s se verán reflejadas como columnas del tablero kanban y de izquierda a derecha reflejarán el flujo de trabajo.
Algunas actividades normalmente se realizarán en el Backlog y otras durante el sprint. Sin entrar en debates respecto de las diferencias entre Scrum y Kanban (diferencias que efectivamente existen), o los inconvenientes de mezclarlos, me quedo con la idea de sacar lo mejor de ambos.
AsĂ pues, la idea tras Scrumban es utilizar, en el contexto de Scrum, una variante de tablero kanban, especĂficamente para la visualizaciĂłn del trabajo, sin necesariamente seguir todas las reglas del mĂ©todo Kanban.
Cada actividad realizada para un Ătem se pondrá como una columna, cuyas sub-columnas corresponden a To Do, Doing y Done. Como en todo tablero kanban de pared, los post-it que representan a los Ătems de trabajo fluyen de izquierda a derecha hasta alcanzar el estado Done de la Ăşltima actividad. Las actividades incluidas en el tablero dependen del interĂ©s del equipo por tener un seguimiento y visualizaciĂłn de mayor o menor detalle respecto de cada Ătem. AsĂ, las columnas del tablero expresan un workflow secuencial por el cual fluirán los Ătems.
Un tablero de pared para apoyar Scrumban y usando post-it es un excelente medio para ilustrar y aprender la mecánica de trabajo de Scrum. Además, para un equipo que se inicia en agilismo es un mecanismo muy socializador e incluso entretenido.
Las dos alternativas básicas en cuanto a cĂłmo se pasan los Ătems desde el Backlog al trabajo diario del equipo son:
a) Los Ătems se atienden segĂşn se reciben. El equipo, cuando puede abordar nuevo trabajo, simplemente lo coge del Backlog siguiendo el orden establecido.
b) Los Ătem se atienden en grupos para los cuales se hace una previsiĂłn o compromiso de entrega, acorde con la capacidad del equipo (Sprint). El equipo prepara los Ătems antes de implementarlos, pues requiere definirlos y estimarlos para contrastar el esfuerzo requerido respecto de su capacidad.
A primera vista, la lectura de (a) versus (b) podrĂa parecer Kanban versus Scrum :-). Pero ¿por quĂ© NO hay que tomarlo como la selecciĂłn de uno de esos mĂ©todos?. Si se plantea en esos tĂ©rminos cerrarĂamos la posibilidad de mezclar prácticas (si nos pusiĂ©semos "puristas" en la aplicaciĂłn del correspondiente mĂ©todo), o por el contrario asumirĂamos otras prácticas del mĂ©todo seleccionado que podrĂan no interesarnos. Más aĂşn, puede que el mĂ©todo en su propuesta nos obligue a un nivel de aplicaciĂłn de una práctica el cual no nos resulte factible o conveniente de implantar considerando el contexto actual del equipo.
Lo que es evidente es que en (a) basta con priorizar los Ătems antes de abordarlos, y en (b) además de priorizar, se planifica acorde a la capacidad. En (b) se requiere algĂşn mecanismo de estimaciĂłn de los Ătems y correspondientemente algĂşn nivel de definiciĂłn del Ătem (al menos para poder establecer su estimaciĂłn). PERO, lo anterior no descarta que en (a) pueda existir la conveniencia de definir y estimar (en alguna medida) los Ătems antes de abordarlos, tampoco descarta en (b) la conveniencia de NO definir (ni estimar) en detalle los Ătems antes de abordarlos. Es decir, el nivel de detalle en el cual se lleva a cabo la definiciĂłn y estimaciĂłn puede dar cabida a dichas actividades, independientemente de si la estrategia es concentrarse en generar flujo de entrega de trabajo terminado (enfoque Kanban) o si es realizar entregas frecuentes de trabajo agrupado en sprints (enfoque Scrum).
En (a) podrĂamos NO tener todos los Ătems necesariamente definidos y estimados antes de abordarlos. AsĂ, en el caso (a) un Ătem podrĂa incluso alcanzar su prioridad y comenzar a ser abordado, y ya en ese momento definirlo y acordar con el cliente el detalle necesario. Sin embargo, en (b) lo ideal serĂa tenerlos todos definidos y estimados antes de abordarlos en un sprint. AsĂ, en el caso (b) cuando un Ătem estĂ© prĂłximo a ser incluido en un sprint serĂa conveniente definirlo en mayor detalle y estimarlo (por ejemplo, en Puntos u Horas Ideales) para poder hacer una previsiĂłn de si se conseguirá o no entregarlo en un sprint (considerando el resto de Ătems que se incluirĂan en dicho sprint).
En cualquiera de los casos (a) o (b) es importante tener presente el riesgo que supone definir y estimar de forma anticipada Ătems que no están comprometidos y/o que no formarán parte de una prĂłxima entrega. Dicha definiciĂłn y estimaciĂłn puede quedar obsoleta, el Ătem podrĂa perder prioridad o incluso ser desestimado. En ambos casos tambiĂ©n es importante que la posible descomposiciĂłn o estructuraciĂłn del trabajo asociado a un Ătem de gran tamaño (Épica) tambiĂ©n se postergue hasta que el Ătem estĂ© prĂłximo a ser abordado por el equipo y ser entregado al cliente. AsĂ pues, no nos deberĂa incomodar tener Ătems en el Backlog que no tengan una definiciĂłn o estimaciĂłn detallada (o que incluso no la tengan), ni que tengan un tamaño relativamente grande, mientras NO estĂ©n prĂłximos a ser cogidos para ser implementados. Por ejemplo, se podrĂa tener un Ătem por un tiempo en el Backlog sĂłlo con una breve definiciĂłn y opcionalmente una estimaciĂłn a priori (en Puntos, Tallas o algo similar) para advertirnos si se trata de una Épica.
Por otra parte, para abordar una Épica existen varias alternativas, por ejemplo, mantenerla como tal en el Backlog y de ella ir paso a paso derivando Ătems más pequeños que se van abordando hasta finalizar la Épica, o reemplazarla por un conjunto de Ătems relacionados (que pueden corresponder a incrementos sucesivos y/o partes).
Insistiendo en las mezclas de prácticas y su adaptación al contexto, a continuación comento escenarios que ilustran que aún en el caso (a) o (b) hay más variedad posible :
PodrĂa darse un caso (a) en el cual interese poder consultar el histĂłrico del trabajo asociado a un producto o servicio, y para esto sea conveniente definir sprints a posteriori, es decir, una vez ya entregados los Ătems, Ă©stos queden agrupados bajo el nombre de un sprint (por tener asociado un perĂodo de tiempo y/o la versiĂłn del producto en la cual se entregaron ciertos Ătems).
PodrĂamos estar en el caso (b), y además, disponiendo de flexibilidad (y complicidad con el cliente) respecto del alcance del sprint (Ătems incluidos en el sprint), los Ătem podrĂan ser definidos y estimados de forma muy preliminar antes de comenzar el sprint, y luego durante el sprint asumir que podrĂan algunos de ellos no alcanzarse a implementar y tener que ser devueltos al Backlog o considerados para el siguiente sprint.
Quizás la mezcla más evidente (y comúnmente aplicada) es la de utilizar un Scrumboard cuando se trabaja con sprints. Scrum en su propuesta original no ofrece ningún mecanismo para la visualización del trabajo dentro del sprint, debido a esto es muy recomendable siempre usar un tablero kanban (que es el mecanismo básico del método Kanban). Esta mezcla tiene la denominación (más o menos aceptada) de Scrumban, finalmente se mejora la gestión de la información, se mezclan métodos, obteniendo lo mejor de cada uno y se mantiene un rumbo claro y visible para la evolución del proyecto, independiente de ser realizado con herramientas online o con tableros en papel.
En internet abundan ejemplos de tableros kanban manuales, asĂ como heramientas online de tableros kanban. SerĂa entrar en la guerra entre un tablero en pared Ăł un soporte online de tablero, pero ese es otro tema muy interesante a tratar en otro artĂculo.
No comments:
Post a Comment
Note: only a member of this blog may post a comment.