lunes 10 de noviembre de 2008

Cerdos y gallinas

Autor: Carlos M. Macías Medina

Alias: Charlie Macías (México)

Categoría: Reflexión

Desde hace algunos años ha llamado mi atención el conjunto de mejores prácticas conocido como SCRUM mismas que he aplicado satisfactoriamente en varios proyectos (las prácticas, no SCRUM). Nunca había revisado la documentación publicada en Wikipedia asociada a esta "metodología". Esta semana, al estar evaluando una herramienta para administrar requerimientos fui referido a esta fuente y me resultó muy interesante. Entre los datos interesantes que me gustaría compartir esta la fábula sobre la cual están basados los grupos en los que se organizan los roles de SCRUM, mismos que son el título que lleva esta entrada :), los cerdos y las gallinas.

Un día se encuentran un cerdo y una gallina:

Gallina: "Oye cerdo, ¿qué te parece si nos asociamos y abrimos un restaurante y repartimos las utilidades por la mitad?"

Cerdo: "Me parece buena idea. ¿Cuál propones que sea la especialidad de la casa?"

Gallina: "Se me ocurre que podrían ser los huevos con jamón".

Cerdo: "¿Huevos con jamón? No me parece justo".

Gallina: "¿Porqué? ¿Cuál es el problema?".

Cerdo: "Pues resulta que con tu propuesta tú sólo estarías involucrada mientras que yo estaría comprometido".

Esta fábula me parece genial para ilustrar la diferencia entre compromiso y participación (o estar involucrado).

Otro punto que me gustaría discutir, y que es el centro de la reflexión, es la primera primera descripción que se hace con referencia a los roles gallina, documentada en el párrafo que le sigue al de la fábula en el que se puede leer: "...mientras que todos los demás son gallinas: interesados en el proyecto pero realmente irrelevantes, porque si falla, ellos no son un cerdo, es decir, ellos no fueron los que se comprometieron a hacerlo. Las necesidades, deseos, ideas e influencia de los roles gallina se toman en cuenta pero no de una manera en la que se permita que afecten o distorsionen o se entrementan en el proyecto". Después, más adelante, nos podemos encontrar otra definición con respecto a los roles "Gallina", en donde se puede leer: "En realidad los roles gallina no son parte del proceso SCRUM, pero se les debe considerar. Una parte importante de la aproximación Ágil consiste en involucrar a los usuarios, a los expertos del negocio y a los stakeholders en alguna parte del proceso. Es importante que esta gente participe y proporcione retroalimentación para revisar y planear cada iteración (split)". La sección concluye identificando a los Usuarios, los Stakeholder (Clientes y Proveedores) y a los Administradores o Gerentes.

Si la diferencia entre estar comprometido o involucrado es que al comprometido se le va la vida en el proceso mientras que al involucrado no, entonces tenemos un problema. Pongámonos un momento en el lugar del usuario final. Supongan que la herramienta que necesitas es un artefacto que te permita mantener unidas dos piezas a través de medios mecánicos y se concluye con que lo que hay que construir es un martillo. Las características y atributos son definidas por las áreas normativas y técnicas (a esto se le conoce como "diseño interno") sin tomar en cuenta la necesidades cotidianas de los usuarios finales. Por supuesto existe el riesgo de construir un producto que no satisfaga a los usuarios. Recordemos que el mayor riesgo en el desarrollo de software consiste en construir el producto incorrecto, si esto ocurre "todos ponen". Quizá en el contexto de los productos de ingeniería de software los usuarios sean los que más la llevan de perder al ser obligados a usar una herramienta en lugar de ayudarlos les estorba ¿a quien se le fue la vida realmente?. Créanme, conozco más de un caso.

Me parece que el problema con tal afirmación es una cosmovisión limitada en donde se ve al producto de software existiendo únicamente en el contexto del desarrollo del mismo. Recordemos que, al final del día, los productos de software se construyen para los negocios, no únicamente para las personas, por consiguiente siempre deben estar ubicados en el contexto de una arquitectura empresarial.

En el glosario de CMMI-DEV 1.2 se definen los términos Stakeholder y Stakeholder Relevante mismo que incluyo a continuación:

Stakeholder. De acuerdo con CMMI Product Suite, es el grupo o individuo se ve afectado o es considerado de algún modo por la salida del proyecto. Los stakeholders pueden incluir a los miembros del proyecto, a los proveedores, a los clientes, a los usuarios finales y otros.

Stakeholder Relevante. Es un stakeholder que se identifica por su participación en actividades específicas y que está incluido en algún plan.

Por supuesto SCRUM es un proceso genial, lo que asumo que ocurrió fue el resultado de una interpretación con insuficiencia de datos, como muchas veces ocurre, no sólo en la ingeniería.

0 comentarios: