19 septiembre 2006

Creer o pensar críticamente

Pertenezco a esa generación que tuvo su despertar adolescente en la década de los ochenta. En ese periodo convulso en el que se entrelazan los primeros logros personales y los primeros desengaños, Golpes Bajos cantaba que corrían malos tiempos para la lírica. En realidad, por lo que respecta al pensamiento crítico, nunca han corrido buenos tiempos. Es algo que he ido constatando a lo largo de mi experiencia en diferentes ámbitos profesionales, y sociales en general -mundo académico incluido. La empresa, y el microcosmos de los proyectos en particular, tampoco se libran de esa extraña experiencia. Se habla mucho de aprender cuando lo que se observa es una simple clonación a granel de conocimientos ausente de cualquier atisbo de reflexión acerca de su naturaleza. Se cree en los conocimientos y no se discierne entre ellos y los supuestos que los sustentan. Se llama experiencia al simple hecho pasivo de ver pasar el tiempo más que a vivirlo de forma activa, a aprehenderlo.

El creacionismo se ha convertido en el blanco más fácil de los defensores del pensamiento crítico, pero actitudes similares se encuentran en cualquiel otro ámbito. Como por ejemplo el management, campo en el que últimamente proliferan conceptos, extraídos de otros contextos que no tienen nada que ver, como fórmulas de Einstein, la física cuántica o el conjunto de Madelbrot. Siempre ha sido más fácil ver la paja en el ojo ajeno que la viga en el propio -alguna razón evolutiva habrá para ello, supongo.



Abre pues los ojos, compañero.

Pincha sobre la imagen para ver su procedencia.

08 septiembre 2006

Seguimiento de proyectos con el Análisis del Valor Ganado (12): el concepto de Programación Ganada

En el sexto anuncio de la serie del Análisis del Valor Ganado (AVG), en el que se abordaban los diferentes indicadores para medir la eficiencia de un proyecto, descubrimos que el índice de eficiencia en programación EP -y la desviación en programación DP- presentaban un comportamiento aparentemente anómalo en los últimos estadios del proyecto. En efecto, si rescatamos el historial de desviaciones del ejemplo que se proporcionaba en aquel anuncio, observamos que, mientras la desviación en coste DC sigue una tendencia decreciente a lo largo del proyecto, la desviación en programación invierte esa tendencia a partir de de la semana 20, más o menos.



Parece como si el proyecto se hubiera recuperado en plazo y finalmente hubiera terminado en el plazo previsto, cuando en realidad ha finalizado dos meses más tarde –ver el ejemplo. Algo similar ocurre con las respectivas eficiencias. En realidad, este hecho no es más que una consecuencia de la definición del concepto de valor ganado VG, magnitud que, por construcción, tiene que coincidir con el coste planificado CP del proyecto en el mismo momento de su finalización. Aunque ello no quita para que perdamos el poder informativo de estas magnitudes relacionadas con el plazo. Como anunciamos en su momento, esto constituía una flaqueza del AVG. Afortunadamente no es un escollo que no se pueda solventar.

Hay que resaltar que esta flaqueza no quiere decir para nada que el valor ganado sea un mal concepto. Todo lo contrario. Es uno de los últimos conceptos más importantes que se han aportado a la disciplina de la dirección de proyectos. Sólo el hecho de permitir obtener desviaciones en coste realistas frente a las malas prácticas, aunque muy extendidas, de medirlas respecto al presupuesto inicial, ya es un gran avance en sí mismo. Lo único es que hemos encontrado que tiene sus limitaciones a la hora de tratar la programación. Unas limitaciones que se pueden superar extendiendo el método. Y aquí es donde entra el concepto de Programación Ganada. En realidad, es una idea análoga a la del valor ganado, aunque en vez de utilizar unidades monetarias para medir desviaciones y eficiencias de programación se utilizan unidades de tiempo. El concepto de programación ganada, como todos los que hemos visto del AVG, es extremadamente simple e intuitivo. La programación ganada, que denotaremos por PG, no es más que la fecha en la que el coste planificado acumulado CP del proyecto es igual al valor ganado acumulado VG en la fecha de estado FE. Si el proyecto sigue a rajatabla su curso planificado, estas fechas coincidirán. En caso contrario, no; como se muestra en la figura siguiente:


Es importante resaltar que la introducción de esta nueva magnitud no supone incrementar el número de magnitudes que se miden directamente, ya que se mide a partir de otras. Es una magnitud derivada. Esto es muy bueno porque lo realmente complicado en el AVG es obtener medidas directas. A partir de esta magnitud podemos obtener unas nuevas desviación y eficiencia en programación que sustituyan a las del AVG. En primer lugar definimos la desviación en programación DPt como DPt = PG-FE, mientras que la correspondiente eficiencia como ECt = PG / FE. Y ya está todo. Ahora tan sólo resta determinar cómo se calcula la programación ganada PG. Pero antes hagamos una pequeña reflexión acerca de la interpretación de la desviación en programación DPt, medida en unidades de tiempo –días, semanas, meses, etc. ¿Tiene algo que ver esta desviación con la que me daría un diagrama de Gantt? Si echamos un vistazo a la figura anterior, vemos que la desviación se calcula a partir de la diferencia entre valores acumulados del coste planificado y el valor ganado. Valores acumulados. En cambio, en un diagrama de Gantt, una desviación en plazo de, digamos, una semana se puede deber tanto a que una tarea posee una desviación de una semana como que cinco tareas en paralelo posean todas ellas una desviación de una semana. Aunque la desviación es de una semana en ambos casos, a nadie se le escapa que el segundo caso es más difícil de recuperar que el primero, debido ha que hay más trabajo sin hacer. Esto no es más que una manifestación de la diferencia que hay entre esfuerzo y duración. Pues la desviación en programación dada por la programación ganada refleja precisamente este último caso. Ofrece una idea del tiempo que llevaría recuperar todo el trabajo no realizado hasta la fecha, independientemente de los plazos. Hay que reconocer que el concepto no deja de ser potente. Imagínese que le comunican que lleva un día de retraso en el plazo del proyecto, pero que supone un esfuerzo de dos semanas recuperar ese plazo. Así pues no hay que confundir una desviación en plazo que la obtengo a partir de un diagrama de Gantt, y una desviación en programación –el término más que nada para distinguir- que obtengo a partir del AVG extendido.

Ahora volvamos al asunto de cómo calcular la programación ganada PG. Considerando el ejemplo de la figura anterior, la programación ganada debería tener un valor comprendido entre los meses 5 y 6. Denotemos por x a esta fracción, como se muestra en la siguiente figura:


Las claves para el cálculo los encontramos en el área delimitada por el círculo verde. Y ahora es cuando viene la aproximación –a estas alturas ya deberíamos estar acostumbrados a ello :-). Vamos a considerar que la porción de curva CP comprendida entre los valores CP(5) y CP(6) es recta. Hay dos conclusiones que podemos extraer de esto:
  1. Esta asunción se aproximará más a la realidad cuanto más pequeña sea la escala de la dimensión temporal –el eje horizontal; esto es, semanas mejor que meses, mese mejor que trimestres, etc. Pero que no nos ciegue esto; no hay que olvidar que siempre hay un límite en el que el ruido del entorno invalidará cualquier efecto producido por ser más preciso.
  2. Hay que desconfiar de aquellos que emiten juicios categóricos del tipo “la lógica matemática demuestra que…”. La matemática dirá lo que tenga que decir en su contexto. En el que nos manejamos nosotros sería más conveniente un juicio del tipo “los siguientes resultados ofrecen una desviación bastante aproximada por la razón que…”. La experiencia me dice que cuanto más categórico es un argumento, menor es la idea que tiene sobre el asunto el que argumenta.
Pero continuemos con el cálculo. Si ampliamos la zona rodeada por el círculo verde, tenemos la figura siguiente:


Dado que el triángulo pequeño y el grande están a escala entre ellos, por relaciones de semejanza obtenemos el valor de la fracción x. A saber x = [VG(7) – CP(5)] / [CP(6) – CP(5)]. En general, para una programación ganada PG que se encuentre entre el instante n y el n+1, tendremos que x = [VG(FE) – CP(n)] / [CP(n+1) – CP(n)], con lo que la programación ganada será PG = n + [VG(FE) – CP(n)] / [CP(n+1) – CP(n)]. Y ahora vamos a ver cómo se utiliza esta traca, que así parece más de lo que es. En el ejemplo de la tabla siguiente tenemos que PG = 6 + (4257-4127) / (5122-4127) = 6,1 meses. Así de simple.

Para completar la exposición retomaremos el ejemplo del libro de Excel que se ofrecía en el sexto anuncio. Pero antes los créditos. El concepto de Valor Ganado se debe a Walt Lipke, quien lo presentó en una publicación en marzo de 2003 cuando estaba al cargo de la división de software del Centro de Logística Aérea de Oklahoma. La técnica de análisis ha sido posteriormente desarrollada conjuntamente con Kym Henderson, director de educación del capítulo de Sydney del PMI. Walt Lipke ha desarrollado asimismo un libro de Excel en el que ha automatizado los cálculos de las diferentes magnitudes asociadas a la Programación Ganada. Podéis descargarla desde este sitio en su versión original en inglés o desde aquí en español. Quiero agradecer a Walt Lipke y Kym Henderson el permiso para traducir al español la hoja de cálculo de la Programación Ganada y distribuirla entre la comunidad de habla española.

Vamos ya con el ejemplo. En el siguiente libro de trabajo de Excel se puede encontrar la plantilla del AVG actualizada con la extensión de la programación ganada. A continuación muestro un par de figuras extraídas del ejemplo para comentar las comparaciones entre las antiguas desviación y eficiencia en programación y las nuevas. En la primera figura se muestra el historial de las desviaciones. La figura es la misma que abría este anuncio salvo que ahora se incluye la nueva desviación en programación DPt en color azul –¡ojo ahora medida en meses según la escala vertical de la derecha!


Podemos comprobar que este indicador que proporciona buena información hasta el final del proyecto, a diferencia del anterior –en color amarillo. Al final del proyecto, la desviación es de dos mese, justo el retraso que ha tenido el proyecto. También se puede ver como hacia el final del proyecto se hace un esfuerzo para recuperar plazo y que el proyecto no termine con más retraso aún. Como ya dijimos en su momento, esto nos da información de la buena. La siguiente y última figura muestra el historial de eficiencias:


Nuevamente observar las diferencias entre la curva amarilla, la antigua, y la azul, la nueva. La azul es fiable hasta el final.

01 septiembre 2006

Arrieros somos…

… y en el camino nos encontraremos.

En el último anuncio constatamos que casos como el de los dos jefes de proyecto y la UTE –del tipo dilema del prisionero- ponen en jaque nuestra concepción de racionalidad. No hay mejor forma de resumir el conflicto del dilema que recordar lo que una vez dijo Oscar Wilde: “puedo resistirme a cualquier cosa menos a la tentación”. No cabe duda que la tentación alcanza su punto álgido cuando ambos oponentes piensan que sólo se enfrentarán al dilema una vez un sus vidas. Pero, ¿qué ocurre si nos volvemos a encontrar ante un dilema similar, no una ni dos, sino varias veces. Después de todo, el mundo de los negocios, y el de los proyectos en particular, es un escenario de caminos que se entrecruzan a lo largo del tiempo. Si sé que solamente me enfrentaré al otro jefe de proyecto una vez en la vida, aún puedo valerme de su ingenuidad para desertar, esperando que el coopere, para llevarme el máximo beneficio. Pero si nos volvemos a encontrar, ¿cómo actuará esta vez? ¿Entraremos en una escalada de destrucción mutua?

Para averiguarlo, Robert Axelrod pidió a varios especialistas en teoría de juegos, economistas, sociólogos, politólogos y psicólogos que aportaran estrategias para simular por ordenador un dilema iterativo del prisionero; como por ejemplo cooperar siempre, cooperar y desertar alternativamente, cooperar o desertar según el resultado de lanzar una moneda al aire, etc. Todas las estrategias se enfrentaban dos a dos e iban acumulando el número de puntos obtenidos en cada lance. La estrategia ganadora fue una muy sencilla denominada “donde las dan las toman”. Era una estrategia que ocupaba cuatro líneas de código y que venía a decir coopera la primera vez y luego haz lo que haya realizado el oponente en la partida anterior. El lector puede encontrar un simulador en el siguiente sitio, hay que seleccionar un par o más de estrategias (tit_for_tat es la donde las dan las toman) e indicar el número de rondas. Notar que puede haber algunos enfrentamientos en los que no se la ganadora, aunque sí en el cómputo total. En el blog de Mario López de Ávila podemos encontrar un ejemplo muy interesante del valor de esta estrategia en su comentario del libro “la estrategia de los delfines”. Ver el dilema iterativo del prisionero como una pauta de comportamiento podría ofrecer una luz sobre por qué, a pesar de los pesares, la cooperación sigue presente independientemente de significado ético que podamos atribuirle. Imaginemos que ahora sometemos a una selección artificial a las estrategias que no han superado como otras cierto umbral de puntuación en momentos dados, ¿qué estrategia tiene más probabilidades de llegar al final? Obviamente, la naturaleza no cuenta solamente con un mecanismo de selección, sino con mutaciones al azar que en nuestro juego iterativo equivaldría a la aparición de nuevas estrategias no necesariamente cooperativas. Y aquí es donde entramos en el siguiente paso.

Aún así, se puede llegar a una situación de equilibrio como describió el biólogo evolutivo John Maynard Smith en su dilema del los halcones y las palomas. Imaginemos una población en la que solamente convive una especie con sólo dos tipos de comportamiento, que llamaremos halcón y paloma. Si un halcón encuentra comida y está presente otro miembro de la especie, luchará por conseguirlo. En cambio, si es una paloma la que encuentra comida estando presente otro miembro de la especie, nunca iniciará una lucha, huyendo si la atacan y amenazando si no. Consideremos que el valor del alimento es de 50 puntos. Si no se consigue el alimento después de haber atacado se es herido y se pierden 100 puntos. Finalmente, por un acto de amenaza se pierden 10 puntos, independientemente de si se consigue o no el alimento. Con todo esto podemos construir la tabla de resultados. Cuando un halcón se enfrenta a otro halcón, los dos atacan, uno se lleva el alimento y gana 50 puntos, y el otro resulta herido y pierde 100 puntos; el resultado medio para el halcón en este tipo de enfrentamientos es pues de -25 puntos. Cuando un halcón se enfrenta a una paloma, ésta huye quedándose con 0 puntos mientras que el halcón consigue los 50 puntos. Finalmente, cuando una paloma se enfrenta a una paloma, las dos amenazan, una se lleva el alimento y gana 40 puntos, y la otra no y pierde 10 puntos. El resultado medio para la paloma en este tipo de enfrentamientos es pues de 15 puntos -40 menos 10 dividido por 2. La tabla es la siguiente:


Con una población inicial de palomas, todo el mundo consigue por término medio 15 puntos. Nadie resulta herido y todos consiguen alimento. Imaginemos que se produce una mutación y surge un halcón, conseguirá siempre alimento (50 puntos) sin coste alguno. Con una poco población de halcones, su ventaja les hará prosperar teniendo descendientes su comportamiento de halcón. Pero si llegan a ser numerosos habrá mas enfrentamientos entre halcones, perdiendo de media 25 puntos disminuyendo así su población. La paloma se las arreglará otra vez bien, volviendo a aumentar su población y volviendo al punto de partida. Como se ve, los extremos no son estables habiendo una evolución hacia un término medio. Esto es lo que se conoce en teoría de juegos como equilibrio mixto o de Nash, hallazgo que, entre otras cosas le valió el premio Nobel de economía de 1994. En este sitio se puede jugar al juego de los halcones y las palomas, cambiando el sistema de puntuación, y comprobar cual es el punto de equilibrio. Para la tabla que hemos considerado arriba, la misma que la que hay por defecto en la simulación, se obtiene que el punto de equilibrio se alcanza para una población de halcones del 58,3% o, lo que es lo mismo, cuando en la población hay cinco palomas por cada siete halcones -¿será nuestro mundo así?...

¿Es compatible esto con la metáfora de los delfines? Resulta que el resultado es el mismo que si cada miembro de la población actuara como un halcón el 58,3% de las veces, y como una paloma el 41,7% de las veces. ¿Los humanos hacemos eso? Después de todo, amigos lectores, una lectura de Maquiavelo nunca viene mal. En este resultado, que recibe también el nombre de estrategia evolutivamente estable, la puntuación media de la población es de 6,25 puntos frente a los 15 puntos de una idílica población formada sólo por palomas. La situación estable no tiene por qué ser necesariamente el mejor de todos los mundos posibles; así que no se queje de la fauna que convive en su proyecto, hombre.