bola de cristalLos resultados predecibles son una de las expectativas claves que impone el mercado a sus gerentes seniors, y estas expectativas eventualmente fluyen hacia los desarrolladores de software.

Desafortunadamente, el desarrollo de software tiene la reputación de ser impredecible, por lo que se genera una gran presión para hacerlo mas predecible. La parajoda es que en nuestro entusiasmo por mejorar lo predecible del desarrollo de software, institucionalizamos prácticas que han tenido el efecto opuesto: creamos un plan, y luego actuamos en base a ese plan como si dicho plan fuese una predicción acertada del futuro.

Debido a que asumimos que nuestras predicciones son correctas, tendemos a tomar decisiones de forma prematura que nos encierran en un curso de acción que es difícil cambiar. Por ende, perdemos la capacidad de responder a los cambios cuando nuestras predicciones terminan siendo incorrectas. La solución a este problema, pareciera ser, es realizar prediciones más acertadas.

Olvidamos que las predicciones sobre el futuro siempre van a ser incorrectas si son:

  1. complejas
  2. detalladas
  3. de un futuro distante
  4. sobre un ambiente desconocido.

Ningun intento por tratar de hacer mas acertadas estar predicciones ayudará. Sin embargo, existen algunas maneras probadas para crear resultados predecibles aunque no podamos empezar con predicciones adecuadas.

La idea es dejar de actuar como si nuestras predicciones del futuro fuesen correctas . En cambio, necesitamos reducir nuestro tiempo de respuesta para poder responder correctamente a los eventos a medida que suceden.

Para aumentar la certeza de nuestras predicciones, necesitamos disminuir la cantidad de especulaciones al momento de tomar decisiones. Las decisiones que están basadas en hechos, en vez de supuestos, producen resultados más predecibles. En su trabajo como ingeniero de Control, Mary Poppendieck experimentó que un sistema de control empirico - basado en retroalimentación - entregaba resultados más predecibles que un sistema de control determinístico. Una organización que tiene la habilidad de esperar a que los eventos ocurran y pueda responder rápida y correctamente a ellos, entregará resultados mucho más predecibles que una organización que intenta predecir el futuro.

Libre traducción de: Lean Software Development (from concept to cash) de Mary y Tom Poppendieck.

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw