April 29, 2018

Criterios de Aplicación SCRUM

Scrum es un marco de trabajo dentro del cual se pueden atender problemas “Complejos”. En diversas ocasiones me ha tocado escuchar que Scrum debería ser usado para desarrollos que ya conocemos bien, que son pequeños o que no tienen gran dificultad (ej. Mantenimientos, mejoras, fixes). Pero en realidad Scrum brilla cuando no tenemos una visión clara de los requerimientos a elaborar y tampoco conocemos de la tecnología con la que trabajaremos.

Si observan la imagen, tenemos en el eje de las X’s los “Requerimientos”, esto representa que conforme más nos alejamos del inicio (0) menos conocimiento tenemos de los requerimientos, ¿y qué significa esto? que no tenemos claro lo que se va a desarrollar, quizás no hay suficiente información, no se han recolectado todos los requerimientos, o el mismo proceso de negocio en sí, es complejo. En el eje de las Y ’s, tenemos la “Tecnología”, al igual que en el eje de las X’s, conforme más nos alejamos del inicio, menos tenemos conocimiento de la tecnología.

En el grafico se muestran tres tipos de ambientes relacionados a que tanto conocemos la tecnología y los requerimientos:

Ambiente Predecible

Nos encontramos en un ambiente predecible cuando conocemos bien los requerimientos y la tecnología (Ej. Java, PHP, Struts, Mysql, un producto bien conocido, etc.) con la que vamos a trabajar. En este tipo de ambientes podemos establecer un procedimiento teórico bien definido, ya que los procesos son bien conocidos aquí, incluso podemos trabajar con un ciclo de vida de cascada y establecer buenas fechas compromiso. Por poner un ejemplo, en la manufactura para un proceso maduro de producción de papas fritas, ya cuentan con diferentes herramientas para cortar las papas, empacarlas y congelarlas (conocemos la tecnología). También sabemos la cantidad de papas que debe existir por paquete, el material para empaquetar y el tiempo de congelado (conocemos bien los requerimientos).

Ambiente Caótico y de Anarquía

Cuando el proceso es muy complicado para un enfoque de trabajo ya establecido (como el ciclo de vida de cascada), y no conocemos bien los requerimientos ni la tecnología, el enfoque empírico es la mejor opción que tenemos. ¿Y qué significa empírico? Simple y sencillamente es “Aprender sobre la marcha”. Cuando trabajamos con Scrum, se trabaja en base a Iteraciones cortas (dos semanas a un mes), con esto y reuniones constantes de revisión con nuestros Stakeholders y Product Owners podemos ir conociendo que es lo que realmente se espera del producto. Esto se vería de la siguiente manera:

Iteración corta de trabajo (desarrollo) / Revisión de avance tangible con los Stakeholders y Product Owner / adaptación del producto, repitiéndolo cuantas iteraciones tengamos, de esta manera nos aseguramos de ir aprendiendo y adaptando sobre la marcha involucrando a nuestros clientes desde el inicio del proyecto.

En este tipo de ambientes es difícil trabajar con un calendario fijo como en el ciclo de vida de cascada, no nos podemos comprometer a una fecha ya que poco sabemos de la tecnología, y los requerimientos están cambiando constantemente. Es más importante aprender a trabajar con cambios de manera empírica, e ir adaptando tanto el producto como el proceso hasta que vayamos teniendo una mayor certeza de lo que se desea.

Si piensan implementar Scrum en sus organizaciones y quieren obtener más valor de este marco de trabajo, es importante que consideren usarlo mayormente en ambientes caóticos. Este es un importante criterio de aplicación a considerar.

Jorge Ruiz
Coach y Consejero Agile