Browsing articles in "Metodología"

Medir

Medir es una actividad muy-bien-vista por los altos directivos de muchas organizaciones. Ni hablar cuan alentada es si el resultado de la medición es expuesto utilizando un montón de amontonados y diminutos numeritos representados por extravagantes gráficos.

La primera distinción que se me ocurre respecto este punto está asociada a diferenciar datos de información. Wikipedia define a información como un conjunto organizado de datos procesados, que constituyen un mensaje que cambia el estado de conocimiento del sujeto o sistema que recibe dicho mensaje. Personalmente, los datos descriptos en el párrafo anterior no generan en mi ninguna de estas cosas.

Luego, ¿Cual es la estrategia que debiera poner en práctica para que sea posible presentar información en lugar de datos?  Una primera respuesta podría desprenderse de revisar algunas definiciones básicas del universo de las métricas.

  • –      Atributo: Característica mensurable. Por ejemplo el tamaño del sistema o su calidad.
  • –      Medida: Asignación de un valor resultante de una medición a un atributo. Para el atributo tamaño del sistema las posibles medidas podrían ser 5.754 líneas de código, 213 páginas de especificación o 659 horas de desarrollo. Para el atributo calidad de un sistema una posible medida podría ser 27 bugs identificados, 177 casos de prueba ejecutados o 879 horas de testing.
  • –     Métrica: Referencia cuantitativa del modo en que un objeto de medición posee un atributo dado.  Siguiendo con los ejemplos anteriores, la métrica para evaluar la calidad de un sistema podría ser  cantidad de bugs por líneas de código.
  • –    Indicador: Es la interpretación de la métrica. Se construye en función del interés del observador. Por ejemplo, un indicador podría ser nivel de calidad de un sistema que pueda tomar lo los valores: muy buena, buena, media y nula (valores que se definen en en función de la interpretación del resultado de la métrica).

Las métricas e indicadores proveen un alto nivel de visibilidad sobre procesos, proyectos y productos. En particular, si lo que se pretende es exposición de información, el indicador es, sin dudas, la estrella protagónica.

Entonces… usar indicadores resulta una herramienta –muy potente- para presentar información sobre el estado de procesos, proyectos y productos. De ahí a las acciones que se tomen en función de los resultados obtenidos, es un tema muy-mucho-mas-difícil que no faltará oportunidad de discutir en futuros posts.

El cultivo de las buenas prácticas

Se dice que la confianza se construye durante años y se derrumba en un instante… Con el ejercicio de las buenas prácticas, sucede algo parecido.

Una buena práctica es aquella que de alguna manera, en alguno de los planos posibles, contribuye con la mejora…  lo cual no necesariamente significa que tenga que estar definida en un modelo de madurez o en un marco de desarrollo de gestión de proyectos (ni la recíproca, es decir,  una práctica propuesta por los distintos modelos no tiene por que ser útil para toda organización) El arte: tener la sensibilidad para identificar, en un contexto determinado,  las que sirven de las que no…

En el marco del desarrollo de software, resulta muy difícil implementar actividades que favorezcan el proceso de mejora (y esa es la parte fácil). El real desafío -archiReContraSuperDifficile- es mantenerlas. Desde mi percepción, algunas de las razones por las que el ejercicio de las buenas prácticas se va disipando están relacionadas con:

  • –      Si no son adecuadamente implementadas, pueden convertirse en actividades exclusivamente burocráticas
  • –      El retorno de la inversión del tiempo invertido no es claramente perceptible (y mucho  menos en el corto plazo)
  • –      En algunas organizaciones está implantada la idea que se puede ser ágil (dinámico, pro, canchero, alineado con las metodologías de moda) ignorando la metodología tradicional…  sin implementar tampoco prácticas de las metodologías ágiles!

Entonces… ¿Cuáles son las posibles acciones que se pueden tomar para evitar que las buenas prácticas se vayan diluyendo?

  • –      Elegir, en primer lugar, el subconjunto de actividades con el mayor retorno de inversión, y hacer foco en logar institucionalizarlas
  • –      Institucionalizarlas implica: Capacitar, coachear, seguir, controlar, evaluar, adaptar…
  • –      Identificar con claridad el beneficio para cada una de las personas que participan en la implementación de las distintas prácticas, y comunicárselos…

Y como dice Antón Pirulero… Que cada cual atienda su juego… y en particular cada organización, sus buenas prácticas!

Repostería y desarrollo de software

La receta para preparar un rico volcán de chocolate, es la siguiente:
Ingredientes: 200 g de chocolate, 40 g de manteca, 4 yemas, 50 g de azúcar, 2 claras. Preparación: Derretir el chocolate con la manteca por un lado, batir las claras a punto nieve (con la pisca de sal) por otro y batir las yemas con el azúcar a punto blanco. Luego mezclar claras con las yemas y finalmente integrar el chocolate. En moldes enmatecados llevar 10 minutos al horno.

Si la calidad del volcán se gestionara con criterios equivalentes a los que se utilizan para desarrollar software…

  • –      No hubiéramos validado que los huevos estuviesen en buen estado
  • –      El equipo que prepara las claras hubiera pensado que el azúcar se lo ponía el equipo que preparaba las yemas, y el de las yemas, que el azúcar era responsabilidad del otro grupo.
  • –      Batir a blanco las yemas lo hubiéramos considerado un improvement y lo hubiéramos postergado para otra iteración.
  • –      Las claras a nieve las prepararíamos en la licuadora
  • –      Nos daríamos cuenta que es necesario sacar el  volcán del horno al empezar a  sentir el olor a quemado

Una vez  listo el volcán, al probarlo consideraríamos bugs

  • –     Que tiene un dejo de gusto a rancio
  • –     Que le falta azúcar
  • –     Que se quemó un poco

Para resolverlo…

  • –     Le rasparíamos los sectores quemados
  • –     Lo espolvorearíamos con azúcar impalpable
  • –     Y le agregaríamos dulce de leche para disimular el sabor rancio del huevo en mal estado.

El desafío de este blog es arrojar algo de claridad sobre el universo de posibilidades que nos permitirán mejorar la forma en que desarrollamos software.