Estar equivocado es erroneamente asociado con fracaso, cuando, en realidad, ser probado equivocado debería ser celebrado, ya que eleva a uno a un nuevo nivel de comprensión

martes, 23 de noviembre de 2010

Reseña: CMMI

Autor: Nicolás Manuel Ruiz

CMM – (Capability Maturity Model) Modelo de calidad para medir la madurez de una empresa en la capacidad de producir software. Fue creado por la SEI (Software Engeneering Institute). La causa está relacionada con una necesidad por parte del Departamento de Defensa de Estados Unidos por tener muchos inconvenientes con los tiempos y costos cuando pedían la construcción de un software. La medición se expresa en niveles y referencia la calidad del proceso de software, el grado de entendimiento de los desarrolladores entienden y aplican el proceso y el estado general de la práctica de ingeniería de software.

CMMI – (Capability Maturity Model Integration) Es un modelo evolucionado del CMM e intenta ser un marco de trabajo para la mejora del proceso que sea aplicable en un amplio abanico de empresas. Sustituye al software y a los sistemas de ingeniería basados en CMM por otros modelos de ingeniería. Se podría considerar como la generalización del modelo para varios campos no necesariamente de la industria de software, por lo que integran: CMM-SW, SE-CMM e IPD-CMM.

CMMI-SE - (Capability Maturity Model Integration – Software Engeneering) Hoy en día ya conocido como CMMI-DEV (Capability Maturity Model Integration for Development). El CMMI-DEV se considera técnicamente como una evolución o upgrade del CMM-SE (y –SW) de la versión 1.1 a la 1.2. CMMI-DEV se enfoca en mejorar la calidad de los productos CMMI y la consistencia de cómo son aplicados.  Así como CMMI fue un modelo evolucionado para generalizar varios campos de la ingeniería, tanto el CMMI-SE como el CMMI-DEV son el modelo dedicado al desarrollo de Software. Sirve como referencia para la mejora de las diferentes áreas de proceso en los proyectos de desarrollo y de mantenimiento de software. Incluye un conjunto de “mejores prácticas” que detallan el ciclo de vida del producto. Adicionalmente, también como CMM, es una guía para determinar el nivel de madurez de una empresa en la capacidad de producir software.

SECM – (Systems Engineering Capability Model) Este modelo se enfoca en generar una guía para mejorar la ingeniería de sistemas. Describe un número de pautas críticas de actividades a realizar para manejar tareas en ingeniería de sistemas, como por ejemplo derivar y asignar requerimientos. Las pautas o actividades están basadas en cinco niveles: Habilidad para desarrollar ingeniería de sistemas, Obteniendo control local, Compartiendo conocimiento a través de la organización, Medida cuantitativa de lo que se hace, y Mejora usando las medidas cuantitativas y objetivos organizacionales.

IPD – CMM – (Integrated Product Development Capability Maturity Model) Antes de la integración de éste modelo con el CMM-SE y el SW, el IPD-CMM era el modelo aplicado a cualquier disciplina. Describía los elementos esenciales para el desarrollo de un producto integrado; una guía para el proceso de mejora del desarrollo del producto integrado; y una metodología de evaluación del proceso de desarrollo del producto integrado que es hecho por una organización.

Niveles del CMMI
Nivel 0: Incompleto – El área de proceso o no realiza o no logra los objetivos definidos en el CMM para el nivel 1. Es el nivel en donde están todas las empresas que no tienen procesos; no hay regulaciones tanto en procedimiento como en planeamiento. No cumplen las fechas, los presupuestos se extienden, se finaliza la gran cantidad a último momento debido a que no se hizo proporcional al tiempo. El proceso software está caracterizado como ‘ad hoc’.

·         Nivel 1: Ejecutado – Cuando los objetivos y metas de un área de proceso se alcanzan o se satisfacen. Técnicamente los resultados obtenidos se pueden repetir. Se puede afirmar que el proyecto es gestionado y controlado durante el desarrollo. Se puede saber el estado en todo momento.

·         Nivel 2: Gestionado – Se cumplen los requisitos del nivel 1. Adicionalmente, todo trabajo asociado con el área de proceso está alineado con la política organizacional y toda persona realizando el trabajo tiene acceso a los recursos adecuados para finalizar el producto exitosamente. Toda tarea es monitoreada, controlada y revisada para luego ser evaluada para conocer su adherencia al proceso descrito.

·         Nivel 3: Definido – Se cumplen los criterios del nivel 2. Adicionalmente, el proceso está estandarizado y simplificado por los estándares de la misma organización y contribuye a la producción, mediciones y mejoras de otros procesos que la organización maneje. Existen métricas, los procesos pueden ser medibles y comparables.

·         Nivel 4: Cuantitativamente Gestionado – Se cumplen todos los criterios del nivel 3. Adicionalmente, incorporan objetivos medibles para alcanzar las necesidades de los clientes. Se utilizan métricas. Se recogen de forma detallada medidas de los procesos software y la calidad de los productos. 

·         Nivel 5: Optimizado – Se cumplen los criterios del nivel 4. Adicionalmente, los procesos de los proyectos y la organización están orientados a la mejora de las actividades, basados en los datos obtenidos en las mediciones (métricas) no sólo obtenidas pero también utilizadas y comprendidas.

CMMI permite aproximar los modelos de proceso por medio de dos representaciones: Modelo en etapas y Modelo continúo.

Modelo en etapas: Los niveles se encuentran bien determinados y bien diferenciados. Cada nivel posee metas a cumplir y basado en el cumplimiento o implementación de esas metas, una industria se puede encontrar en un nivel u otro. Debe ir cumpliendo las siguientes metas para ir escalando de nivel en nivel.

Por ejemplo, para el nivel 2 las metas son:
·         Gestión de requisitos
·         Planificación de proyectos
·         Seguimiento y control de proyectos
·         Gestión de proveedores
·         Aseguramiento de la calidad
·         Gestión de la configuración[1]

Para el nivel 3 son:
·         Desarrollo de requisitos
·         Solución Técnica
·         Integración del producto
·         Verificación
·         Validación
·         Desarrollo y mejora de los procesos de la organización
·         Definición de los procesos de la organización
·         Planificación de la formación
·         Gestión de riesgos
·         Análisis y resolución de toma de configuración[1]

Para el nivel 4 son:
·         Gestión cuantitativa de proyectos
·         Mejora de los procesos de la organización[1]

Para el nivel 5 son:
·         Innovación organizacional
·         Análisis y resolución de las causas[1]

Su ventaja se relaciona en la comprensión de cuáles son las metas a cumplir para mejorar y para ir subiendo niveles. Al ser escalonado, uno sabe cuáles son las metas del próximo nivel, permitiendo un camino claro.
Modelo continuo: En este modelo, no hay una búsqueda de cumplir escalonadamente cada nivel, sino que se puede ir trabajando en todos los niveles a la vez, dándole prioridad a metas de distintos niveles acorde a las necesidades o posibilidades. No buscan cumplir con cada nivel secuencialmente sino cumplir con todos a lo largo del tiempo. A cada nivel se le otorga un puntaje o valoración de 1 a 6, y la empresa va modificando ese puntaje a medida que va mejorando ese nivel. De esta forma, se puede representar en gráficos para poder conocer el desempeño y evolución.

Tabla 1: Ejemplo de cada nivel con su respectivo puntaje.[2]

La ventaja de este modelo, como se mencionó anteriormente, es que permite a la empresa elegir qué proceso o que meta de mejora implementar de acuerdo a las necesidades y prioridades.

El modelo escalonado se enfoca más en el crecimiento y fortalecimiento de la empresa en sí para un correcto funcionamiento y procedimiento de los proyectos. Para empresas de grandes dimensiones con igualmente grandes dimensiones de departamentos, metas estandarizadas en proceso escalonado puede ser más eficiente debido a la magnitud de la empresa y la variedad de proyectos donde las metas puedan cumplirse en todas.

El modelo continuo puede estar más enfocado a empresas más chicas que necesiten ajustar sus prioridades acorde a sus limitaciones o necesidades. Adicionalmente, pueden estar destinadas a un mercado más específico como una empresa de desarrollo web que prefiera enfocarse en procesos face-to-face con el cliente.

Si una organización en su proceso de construcción de software tiene los procesos caracterizados, entendidos por los ejecutores, descritos mediante estándares y con procedimientos, métodos y herramientas adoptadas, se encuentra en el nivel “Definido” del modelo CMM. El modelo CMMI consta de los seis niveles mencionados, cuando el CMM consta de cinco, donde en vez de ejecutado (nivel 1) y gestionado (nivel 2), se utilizaba solo el llamado “repetible”. El repetible se basa en conocer los procedimientos y que haya un seguimiento; que se pueda garantizar una repetición del producto pues es conocido su proceso; se puede conocer el estado en todo momento. Si bien la consigna platea algo similar, que sea conocido el procedimiento y esté documentado, no necesariamente implica que esté estandarizado. Cualquier persona puede documentar antes, durante o después, el procedimiento realizado, siendo realizado o a realizar para que en otra ocasión se pueda volver a repetir. En este caso particular, considerando que estamos en el modelo escalonado (por estar definiendo el nivel), se habla de estandarización del procedimiento, con métodos y herramientas adoptadas, por lo que implica no sólo la documentación, sino también el conocimiento y aprobación de los líderes para que todos los ejecutores realicen el mismo procedimiento.  De todas formas, como se mencionó anteriormente, una característica del modelo escalonado es cumplir los criterios del nivel actual para poder escalar al siguiente, no cumple con el nivel Cuantitativamente Gestionado por no contar con métricas que permitan medir la calidad y productividad para así realizar toma de decisiones para la mejora de procedimientos.

No hay comentarios:

Publicar un comentario