miércoles, 19 de diciembre de 2007

Algunas ideas para ir hacia ML2 (1era. parte)

Poner en funcionamiento las prácticas vinculadas a las áreas de proceso de este y de cualquier otro nivel de madurez implica poner en marcha un programa de mejoras que debería ser encarado como cualquier otro proyecto de la organización. Será necesario formular metas claras y realizables, establecer un plan de trabajo creíble, y asignar recursos humanos, tecnológicos y financieros.

Como comentaba en una entrada anterior, una organización de nivel 1 no posee las habilidades básicas necesarias para gestionar adecuadamente sus proyectos. Esto agrega una dimensión extra de complejidad, ya que será muy difícil encarar el programa de mejoras con estas carencias en el área de gestión. Claramente, este es el principal riesgo que deberemos enfrentar al iniciar las mejoras en este tipo de organizaciones.

Otro de los temas más complicados es el relacionado con la gestión del cambio. Las organizaciones tienden a mantener el status quo y a la gente le cuesta mucho salir de su área de confort. Implantar prácticas como las que nos ocupan implicará cambiar costumbres muy arraigadas en la gente. El cambio no ocurrirá simplemente porque a un gerente se le ocurra ordenar “¡Háganlo!”. Deberemos planear concienzudamente cómo gestionaremos el cambio y cómo haremos para que las mejoras introducidas perduren en el tiempo.

Gestionar el programa de mejoras y gestionar el cambio organizacional son, en la práctica, las dos caras de la misma moneda. En definitiva, un programa de mejoras es exitoso porque puede impulsar y sustentar los cambios en la cultura de trabajo de la gente.

Adentrémonos ahora en algunas sugerencias más puntuales.

miércoles, 7 de noviembre de 2007

Las Organizaciones del Nivel Inicial de CMMI-DEV


Una síntesis de las características de las organziaciones de nivel 1

En términos generales, las organizaciones del nivel 1 carecen de un ambiente estable para desarrollar sus productos. Las crisis recurrentes y el caos son tan normales que lo usual para ellas es estar “apagando incendios” todo el tiempo. La gente está constantemente resolviendo los temas “calientes” del momento: incidentes en producción, consultas de los usuarios, respuestas urgentes a licitaciones, actividades de preventa, demostraciones no planeadas, etc. Si queda algo de tiempo, trabajan en sus proyectos de desarrollo.
Es fácil entender, entonces, porqué a estas organizaciones les resulta prácticamente imposible cumplir con los compromisos que contraen con sus clientes y proveedores. En ellas es habitual que los proyectos no cumplan con sus cronogramas y excedan (a veces muy ampliamente) los presupuestos establecidos. La funcionalidad prometida a los usuarios no siempre es entregada en forma completa y la calidad de los productos suele ser bastante dudosa.
Este comportamiento recurrente podría ser adjudicado a que el aprendizaje es prácticamente inexistente en este tipo de organizaciones. Cada proyecto se encara de manera distinta, sin considerar los errores cometidos en el pasado. No hay memoria y, tampoco, una evaluación subjetiva de las propias limitaciones operativas. En este contexto, los resultados (calidad, costos, fechas de entrega...) son muy difíciles de predecir.
Todo por cierta dosis de “pensamiento mágico” que suele manifestar el management: las cosas se harán porque simplemente creemos y decimos que se van a hacer. Es así que se establecen fechas de entrega y presupuestos sin ningún (o con escaso) sustento lógico: cumpliremos con nuestros compromisos simplemente por el hecho de que nos hemos puesto esa meta. Los proyectos (si es que existe el concepto de proyecto en estas organizaciones) suelen ser iniciados sin considerar la disponibilidad de los recursos necesarios para su ejecución. En cierta medida, los gerentes de las organizaciones de nivel 1 suscriben a la “Teoría X”: los empleados son vagos y evitarán trabajar siempre que puedan.
[1] Por esa razón deben establecerse metas “ambiciosas” (léase: imposibles de cumplir).
A pesar de todo lo dicho, estas organizaciones pueden tener éxito y desarrollar buenos productos (o, al menos, aceptables). El único problema radica en el costo al que lo consiguen: usualmente, son los gestos heroicos de la gente -que trabaja largas horas sin descanso y, normalmente, gratis- los que permiten cumplir con las metas y los compromisos irrazonablemente establecidos.
En resumen, los problemas más graves de las organizaciones de nivel 1 no son de origen técnico. Claramente, no es una cuestión de proveer más y mejores herramientas de desarrollo. Ninguna de ellas podrá suplir las nefastas consecuencias de una pobre administración de proyectos y de una mala gestión de la organización en general.
Es por estas razones que la transformación de una organización de nivel 1 en una de nivel 2 implica un profundo cambio en la mentalidad de quienes ocupan posiciones de management: directores, gerentes, jefes de sector, líderes de proyecto, líderes técnicos, etc. La manera en la cual realizan las actividades de gestión es tóxica y debe ser mejorada.


En definitiva, para iniciar el camino hacia nivel 2 hace falta una gran dosis de humildad para aceptar que no somos tan buenos gestores como creíamos.

[1] La “Teoría X” y la “Teoría Y” fueron propuestas por Douglas McGregor del MIT Sloan School of Management en su libro “The Human Side of Enterprise”

CMM and Capability Maturity Model are registered in the U.S. Patent and Trademark Office.CMM Integration, CMMI, SCAMPI, and IDEAL are service marks of Carnegie Mellon University.

jueves, 17 de mayo de 2007

Los cinco niveles de CMMI-DEV

En general, los niveles de madurez suelen explicarse en orden creciente; tomaremos aquí una dirección distinta y los explicaremos exactamente al revés: desde el nivel cinco al nivel uno.

Imaginémonos por un momento que estamos en una organización de nivel cinco. En este tipo de organizaciones, como dijimos en la entrega anterior, los procesos son analizados para eliminar las causas comunes de variación, o sea, aquellas que tienen que ver con la misma naturaleza del proceso, no atribuibles a causas externas. Las variaciones en las salidas de los procesos son al azar, pero se encuentran controladas estadísticamente (podemos predecir los resultados de los procesos con cierto nivel de confiabilidad)

Para poder haber arribado a este nivel, la organización debería primero haber eliminado las causas especiales de variación, aquellas que tienen que ver con causas externas, como por ejemplo falta de entrenamiento del personal, problemas con las herramientas, etc. Este tipo de causas no son aleatorias: Si examináramos los resultados podríamos ver las tendencias que claramente nos indicarían que las variaciones tienen un origen concreto. En una organización de nivel cuatro, entonces, las causas especiales de variación son identificadas y eliminadas.

Para poder llegar a identificar causas de variación necesitamos tener un proceso estándar: difícil sería poner bajo control estadístico un proceso que no se encuentre mínimamente formalizado.
Así llegamos al nivel tres, en el cual los proyectos emplean un proceso productivo adaptado del proceso estándar de la organización. Las actividades técnicas y de gestión son realizadas de acuerdo a políticas, procesos y procedimientos formalizados en algún tipo de estándar organizacional profundamente arraigado en la cultura. La gente está entrenada y dispone de recursos para poder hacer su trabajo. También hay una infraestructura básica (personal, herramientas, etc.) para definir y mejorar el proceso productivo.

Pero para poder arribar a semejante situación es necesario pasar por una etapa previa: difícilmente podamos introducir en una organización prácticas estándar relacionadas con la ingeniería del producto (análisis, diseño, etc.) si no ofrecemos un contexto en donde ellas puedan ser correctamente ejecutadas. Ese es el foco del nivel dos: poner en orden las prácticas relacionadas con el manejo elemental de los proyectos.

En el nivel dos, los proyectos de la organización siguen algún tipo de proceso para realizar las actividades relacionadas con la gestión del proyecto (planificación, control), para administrar los requerimientos y las configuraciones, y para medir y analizar la calidad de los productos y el desempeño de los procesos. También hay prácticas de aseguramiento de la calidad que permiten garantizar que cada proyecto sigue sus propios estándares.
En el nivel dos no importan tanto las técnicas y los métodos que empleemos para desarrollar y construir nuestros productos y servicios: Lo importante es que podamos tener un mínimo de capacidad de gestión de proyectos.

Y así llegamos al nivel uno: La situación aquí es caótica. No tenemos procesos (no al menos en el sentido del modelo) y la performance de los proyectos depende profundamente de la buena voluntad y la capacidad de la gente.

CMM and Capability Maturity Model are registered in the U.S. Patent and Trademark Office.CMM Integration, CMMI, SCAMPI, and IDEAL are service marks of Carnegie Mellon University.

Procesos estadísticamente controlados

Continúo publicando algunos extractos del texto en el que estoy trabajando.

Uno de los principios fundamentales de la calidad total –sobre los cuales está basado CMMI-DEV- es el de control estadístico de procesos. Según él, la variabilidad de un proceso puede ser controlada y, por consiguiente, sus resultados pueden ser predecibles[i]. Que los resultados de un proceso sean predecibles no quiere decir que sean idénticos, sino que estos variarán dentro de límites conocidos.

Procesos estables
Las características de todos los procesos y productos presentan algún tipo de variación cuando las medimos a lo largo del tiempo. Dicha variación puede tener dos fuentes: la misma naturaleza del proceso (la variación normal o natural del proceso, relacionada con la interacción entre sus distintos componentes –personal, maquinaria, materiales, métodos y ambiente-) por un lado, y las causas relacionadas con alguna causa específica por el otro (las variaciones especiales). La variación normal del proceso (llamada causa común de variación) tiene un comportamiento al azar, pero con un patrón estable y dentro de ciertos límites. Si un proceso presenta únicamente este tipo de variación estaremos ante un proceso estadísticamente controlado.
La variación especial, por el contrario, no tiene un patrón de comportamiento que pueda ser identificado. El impacto de este tipo de variaciones en la performance del proceso y en las características del producto son importantísimos, a tal punto que es imposible predecir los resultados.
Las variaciones especiales no tienen su origen en el proceso, sino en causas externas tales como el medio ambiente, el material de input al proceso, personal no capacitado, métodos o herramientas incorrectamente usados, etc.
Una vez que las variaciones originadas en causas especiales sean removidas, nos encontraremos con un proceso estable (estadísticamente controlado) Una vez alcanzado este estado, podremos optimizar el proceso, reduciendo la variabilidad o “corriendo” la media. Como veremos en las próximas entregas, las organizaciones de nivel de madurez 5 de CMMI se esfuerzan en remover las causas comunes, mientras que las de nivel 4 se enfocan en remover las especiales.


[i] William Florac, Robert Park, Anita Carleton; Practical Software Measurement; CMU/SEI-97-HB-003.


CMM and Capability Maturity Model are registered in the U.S. Patent and Trademark Office.CMM Integration, CMMI, SCAMPI, and IDEAL are service marks of Carnegie Mellon University