viernes, 19 de junio de 2009

Nuevo proceso, viejos problemas: El proceso para la toma de decisiones

La toma de decisiones es una actividad que tiene efectos en todas las acciones que realizamos diariamente. Algunas de esas decisiones tienen mayores implicaciones que otras y por tanto requieren un proceso formal para que la solución sea la más efectiva posible. 


No es lo mismo tomar la decisión sobre qué platillo vamos a escoger de un menú durante una comida a seleccionar un coche o una casa que ocuparemos por varios años. En el peor de los casos si no nos gusta el platillo lo desechamos, pero de la casa o el coche no sería tan sencillo deshacernos. 


En los proyectos que realizamos muchas veces las decisiones que tomamos afectan la capacidad de alcanzar los objetivos del proyecto o están relacionados con riesgos que se pudieran presentar, por lo que un adecuado proceso para seleccionar y documentar la mejor decisión es crucial en estos casos. 


En los proyectos de ingeniería son diversas las situaciones en la cuales se requiere evaluar varias alternativas considerando diferentes criterios de decisión. Pero, en qué situaciones realmente se requiere un proceso formal para toma de decisiones, qué métodos son más efectivos en cada caso, cómo identificar las diferentes alternativas de solución, qué criterios utilizar para evaluar esas alternativas y cómo documentar adecuadamente los resultados obtenidos. Precisamente a estas interrogantes da respuesta el modelo CMMI® cuando establece el área de procesos “Decision analysis and resolution (DAR)”. 


El propósito de DAR es analizar posibles decisiones utilizando un proceso formal para seleccionar entre las alternativas identificadas utilizando los criterios establecidos. Finalmente se busca una nueva solución con un nuevo proceso para un problema existente desde siempre. ¿Será también una cuestión de decisión si realmente debiéramos evaluar cuando se debe o no aplicar el proceso de toma de decisiones? 


Es importante identificar los elementos del proceso de toma decisiones y las situaciones en las cuales se beneficiaría al utilizarlo. Como resultado podríamos reducir la subjetividad en las decisiones que se tomen e incrementar la probabilidad de seleccionar la solución que mejor pueda cumplir con sus necesidades. 


Existen diversas implicaciones en el proceso de decisión, desde el momento que se identifica la situación sobre la cual se debe tomar una decisión hasta la implementación de la solución seleccionada. Este proceso puede implicar menor o mayor tiempo invertido y valor obtenido, dependiendo del enfoque que se utilice. Así una decisión que se toma como orden o directiva es la forma más rápida mientras que la considera llegar a un consenso de los participantes es la que más tiempo consume aunque por otra parte es mucho más aceptada. 


Considerando la parte del proceso que considera la identificación y decisión de la mejor solución es importante tomar en cuenta los elementos establecidos en el área de proceso DAR del modelo CMMI®. Estos elementos deben ser analizados e implantados adecuadamente para contribuir a establecer e institucionalizar la práctica. Así como revisar los puntos específicos en los cuales se requiere el uso del proceso en relación a las demás áreas de proceso, así como los elementos generales para definir el procedimiento para la toma de decisiones. 


Existen diversas técnicas que pueden contribuir a tomar la mejor decisión, dependiendo de las necesidades que se tengan. En términos generales podemos considerar técnicas de apoyo para la creación o realización de lluvias de ideas, comparación de pares, árboles de decisión, matrices de decisión y estudios de costo/beneficio. 


Estas técnicas tienen características diferentes para su aplicación. El correcto uso de las mismas nos puede ayudar a mejorar las decisiones que se tomen. En la práctica es suficiente con conocer y aplicar dos o tres de esas técnicas para obtener los resultados que esperamos. Una página que considero muy útil por la información que maneja es MindTools en particular en la pestaña de Decision Making. 


La aplicación en la vida real del proceso es ampliamente requerida pero pocas veces utilizada a conciencia. Una adecuada implantación contribuye a que finalmente sus decisiones sean más efectivas y no se tome una mala decisión. Es su decisión utilizar o no estas prácticas. 


M. en C. Carlos J. Pérez Escobar SEI Authorized CMMI Instructor

martes, 16 de junio de 2009

Six Sigma y CMMI

En un artículo de la revista CrossTalk de febrero del 2007 "Connecting Software Industry Standars and Best Practices: Lean Six Sigma and CMMI" de Gack, Gary A. y Karl D. Williams se habla sobre los beneficios de combinar las herramientas y métodos de Six Sigma con las prácticas identificadas en las áreas de proceso de CMMI. El autor parte de un comentario que escuchó en una conferencia donde se presentaban los principios de Demming y Juran. A una pregunta sobre que enfoque debían utilizar, Demming respondió "Selecciona cualquiera... sólo haz algo". Cada modelo finalmente tiene un objetivo y cubre cierto propósito, lo importante es identificar el que nos acomoda para las necesidades que se tienen y aplicarlo en la organización. Normalmente las organizaciones que inician la utilización del modelo CMMI en un proyecto de mejora no consideran la aplicación de las técnicas de Six Sigma. Pero cuando se toman en cuenta permiten robustecer la definición del área de proceso de Measurement and Analysis (MA) en CMMI y facilitar la aplicación de las áreas de procesos de alta madurez. De acuerdo con los resultados presentados en tres empresas en las que se realizó una evaluación inicial SCAMPI C de nivel 2, se evidenció el impacto de la aplicación de Six Sigma en conjunto con CMMI.
  • Todas las áreas de proceso aplicadas consideran mediciones, análisis de causa y seguimiento a la mejora continua.
  • Los resultados de las organizaciones superan los requerimientos que utiliza el SEI para efectos de comparación.
  • Todos los niveles de gestión y operación utilizan las métricas en sus actividades diarias.
Six Sigma requiere la aplicación de:
  • DMAIC (Disegn, Measure, Analyze, Improve, Control) Es una herramienta de Six Sigma para la mejora de procesos y productos. Establece una secuencia de pasos para la implantación robusta de Measurement and Analysis en CMMI
  • DfLSS (Design for Lean Six Sigma) frecuentemente descrito por DMAIV (Disegn, Measure, Analyze; Design-Build, Verify) Es una herramienta de Six Sigma para la creación de nuevos procesos y productos. Está más relacionada con las áreas de proceso de ingeniería en CMMI (Requirements Development, Requirements Management, Technical Solution, Product Integration, Verification, Validation)
  • Estrategia para difusión para la implantación de las herramientas y roles (Champions, Black Belts, Green Belts) con capacitación y certificación específica que puedan apoyar la estrategia.
Como aprendizaje de estos resultados se obtiene que:
  • CMMI le da un valor adicional al uso de las técnicas de Six Sigma
  • Las organizaciones que usan Six Sigma en conjunto con CMMI le dan un beneficio adicional a las áreas de proceso de niveles inferiores.
  • La aplicación de Six Sigma reduce el tiempo para llegar a niveles altos de madurez de CMMI. (Uno de los casos que se muestra alcanzó el nivel 5 seis meses despues de evaluarse a nivel 3)
  • Six Sigma mejora la calidad y los tiempos de desarrollo, reduce los defectos e incrementa la satisfacción del cliente lo que típicamente son motivadores para los procesos en CMMI.
  • El mejor enfoque para aplicar CMMI y Six Sigma es una combinación de los dos, finalmente CMMI es un modelo para identificar qué prácticas necesitamos considerar y Six Sigma es un método que establece cómo aplicar ciertas prácticas de un modo específico.
En el sitio del SEI podemos encontrar información útil para la adopción de Six Sigma como complemento a CMMI. “Using Six Sigma to Accelerate the Adoption of CMMI for Optimal Results” y otras referencias interesantes pueden ser consultadas. M. en C. Carlos J. Pérez Escobar SEI Authorized CMMI Instructor

lunes, 15 de junio de 2009

Administración de la configuración

Administración de la configuración (Configuration management CM) es el conjunto de actividades relacionadas con la administración de la evolución de los productos durante todo su ciclo de vida. Para ello es necesario identificar, organizar y controlar las modificaciones al producto con el objetivo de maximizar la productividad a la vez que se minimizan los errores. Es el control que se tiene sobre cada uno de los componentes de configuración de un producto con el fin de que todos los cambios que se realicen a estos componentes, una vez que han sido aprobados, se hagan de forma controlada y que en todo momento se conozca cuál es la versión vigente de cada uno. Facilita la identificación e integración de los componentes de configuración que conforman los entregables del proyecto. Es el proceso de identificar la configuración del producto para controlar sistemáticamente los cambios a la misma y mantener su integridad a lo largo de todo el ciclo de vida del proyecto. Algunos problemas comunes que conllevan a la adopción de CM son:
  • No se encuentra la última versión del código fuente
  • Errores corregidos en versiones previas aparecen nuevamente
  • No se conoce qué módulos comprende el sistema entregado al cliente
  • La integración del sistema toma demasiado tiempo
  • Los programadores están trabajando en una versión incorrecta del código
  • Versiones incorrectas del código son probadas
  • No existe seguimiento de los requerimientos, documentos y códigos
Las actividades que se requieren para implementar un proceso de CM incluyen: Identificación de la configuración: Identificar de forma unívoca la estructura del software y los elementos que lo forman y ponerlo a disposición del personal que lo requiera. El objetivo es tener la capacidad de identificar los componentes del software a lo largo de su ciclo de vida y facilitar su seguimiento. Actividades
  1. Seleccionar los elementos que estarán bajo control de configuración
  2. Establecer la estructura jerárquica del producto
  3. Crear e identificar el esquema que refleja la estructura del producto
  4. Identificar unívocamente cada uno de los componentes del producto
  5. Definir las relaciones e interfaces entre los productos
Nota: Es importante almacenar y registrar toda la información del ambiente y las herramientas de apoyo utilizadas durante el ciclo de vida del software para asegurar que el mismo puede ser reproducido, en cualquier momento. Control del cambio a la configuración: Controlar los cambios y la liberación de los productos durante el ciclo de vida para establecer un mecanismo que asegure la creación de un producto de calidad. Actividades
  1. Definir el proceso de cambio
  2. Establecer las políticas y procedimientos de control de cambios
  3. Mantenimiento de las líneas base
  4. Incorporar los cambios
  5. Desarrollar la forma de reportes de cambio
  6. Controlar la liberación del producto
Reporte del estado de la configuración: Registrar y reportar los cambios a los componentes de configuración. Con ello se puede mantener un registro del estado de todos los elementos en una línea base, para posibilitar el seguimiento de todos los cambios a las líneas base durante el ciclo de vida. Actividades
  1. Determinar el tipo de reporte requerido
  2. Dar seguimiento al estado de los componentes de configuración
  3. Dar seguimiento al estado de los cambios al sistema
  4. Generar reportes de estado
  5. Registrar y reportar las actividades de CM
Auditoría a la configuración: Verificar que el producto integrado satisface los requerimientos, estándares o acuerdos contractuales y que los componentes que se integran corresponden con las versiones vigentes. Verificar que todos los componentes han sido producidos, descritos e identificados correctamente y que todas las solicitudes de cambio han sido procesadas. Actividades
  1. Definir el esquema y procedimientos de auditoría
  2. Desarrollar auditorías en las líneas base establecidas
  3. Generar los reportes de auditoría
M. en C. Carlos J. Pérez Escobar SEI Authorized CMMI Instructor

viernes, 12 de junio de 2009

IDEAL

El modelo IDEAL fue inicialmente creado como un modelo de ciclo de vida para la mejora de procesos basado en el CMM pero su aplicación es mucho más amplia. Fue dado a conocer por el SEI en 1996 como un manual con el código CMU/SEI-96-HB-001

Está compuesto de cinco fases que permiten administrar el programa de mejora y establecer las bases para la estrategia de mejora a largo plazo. 

jueves, 11 de junio de 2009

CMMI en Español

El Instituto Nacional de Tecnologías de la Comunicación (INTECO) presentó el pasado 5 de junio la versión traducida al español del CMMI DEV v1.2. La presentación tuvo lugar en la ciudad de León, España en una jornada especial en la que participó, entre otros, Mike Phillips líder del proyecto CMMI en el SEI. En el esfuerzo de traducción colaboraron además de INTECO, la Universidad Politécnica de Madrid (UPM), Accenture y Everis. La guía ha sido editada por la editorial Pearson Educación. Actualmente el SEI tiene autorizadas las traducciones al francés, japonés y mandarín. Para este proceso el SEI preferentemente trabaja con entidades de gobierno u organizaciones sin fines de lucro que puedan cubrir los gastos de traducción y revisión, además de cubrir el pago de derechos por uso del material del SEI. Se tiene previsto que para el mes de octubre se haga un lanzamiento similar en México. En estos momentos el documento no está disponible en el SEI. M. en C. Carlos J. Pérez Escobar SEI Authorized CMMI Instructor

miércoles, 10 de junio de 2009

Tipos y medios de capacitación

La formación profesional es fundamental para garantizar el desempeño efectivo de los roles y responsabilidades que tienen los individuos en la organización. 


En el modelo CMMI existe el área de proceso Organizational Training (OT) que tiene como propósito desarrollar las habilidades y conocimientos de la gente para que puedan desempeñar sus roles de manera efectiva. Adicionalmente a las prácticas descritas en esta área de proceso es importante, para garantizar la institucionalización de las prácticas descritas en el modelo, la consideración de la práctica genérica 2.5 contenida en todas las áreas de proceso que implica la formación del persona que ejecuta o apoya al proceso, según se requiera.