CMMI – Modelos de madurez 2 y 3
Introducción
Llevo unos cuantos años dedicándome a esto del desarrollo de Software;
esto me ha permitido tener bastantes compañeros de guerra que me han contado como se trabaja en las empresas por las que previamente han pasado
(muchos de ellos aprovecharon el boom de la informática que se produjo hace unos años, así
que tienen muchas experiencias que contar); la forma de trabajar en ellas es
similar, a pesar de ser empresas diferentes: alguien, sin ningún criterio ni
procedimiento decide que un proyecto se hace en dos o tres meses, y al final
siempre son seis o siete, después de palizas, de fines de semana, de largas
noches; y encima todo el mundo acababa cabreado: clientes que ya no se fían y
miran el producto desarrollado con desconfianza, y gerentes que ven que
nuevamente los proyectos se van de costes. Además, a pesar de las similitudes,
cada proyecto empieza como si fuese una guerra diferente que el anterior.
Normalmente, por la fuerza de la gravedad, las culpas suelen recaer
sobre los equipos de desarrollo: el Analista no se ha enterado, los Analistas
Programadores y Programadores no tienen suficientes conocimientos técnicos…
En Autentia, mi empresa, he
aprendido que el problema no es exactamente los equipos de desarrollo. Aquí
todo el mundo está altamente cualificado técnicamente, y además es consciente
de que:
·
Los buenos
conocimientos técnicos no son garantía de que un proyecto salga bien.
·
Es necesario
seguir un procedimiento de calidad en el desarrollo de software que permita
predecir el coste de un proyecto, y no lanzar estimaciones tipo: chuparse el
dedo, ponerlo en alto y decir: uhmmm, 3 meses
dependiendo de hacia donde sople el viento. Para ello, es necesario
estandarizar el proceso de desarrollo de software a través de procesos
definidos que permitan realizar los proyectos de una forma repetitiva.
·
Seguir un modelo
de “buenas prácticas” como CMMI puede darnos las líneas maestras para estimar
adecuadamente los proyectos (primer problema),
y para intentar estandarizar su desarrollo (segundo problema).
En este tutorial profundizaremos en parte del Modelo 2 y en el Modelo 3
entero de CMMI. La otra parte del modelo 2 fue desglosada por Roberto Canales Mora
(director de Autentia) en el tutorial Calidad
en el desarrollo de software. CMMI, y su lectura es obligada si
queremos enterarnos de algo en este tutorial.
Gestionado o Nivel 2 – CMMI
Como nos detallaba Roberto en su tutorial, el nivel 2 o repetible nos
explica como el éxito de los resultados obtenidos se pueden repetir. El
proyecto es gestionado y controlado durante el desarrollo del mismo. El
desarrollo no es opaco y se puede saber el estado del proyecto en todo momento.
Los procesos que hay que implantar para alcanzar este nivel son:
·
Gestión de
Requisitos. Este proceso no lo vamos a desarrollar en este tutorial.
·
Planificación
del proyecto
·
Seguimiento y
control del proyecto
·
Gestión de
acuerdos con proveedores
·
Medida y
análisis
·
Medidas de
calidad en el proceso y el producto
·
Gestión de
configuración
Antes de continuar, es conveniente recordar el significado de las
siguientes siglas:
SG: Meta Específica
GG:
Meta Global
SP:
Práctica Específica
GP:
Práctica Global
Además,
la consecución de las metas específicas de cada nivel implica conseguir alguna
de las siguientes metas globales que detallamos a continuación. De ahora en
adelante nos referiremos a ellas por el número (GG n):
GG
2: Institucionalizar un proceso gestionado
GP 2.1: Establecer las políticas de la
organización
GP 2.2: Planificar los procesos
GP 2.3: Proporcionar los recursos adecuados
GP 2.4: Asignar las responsabilidades
GP 2.5: Formar al personal
GP 2.6: Gestionar la configuración
GP 2.7: Identificar los actores importantes
GP 2.8: Monitorizar y controlar los procesos
GP 2.9: Evaluar objetivamente el cumplimiento
GP 2.10: Revisar el proyecto con los
responsables de mayor nivel
GG 3:
Institucionalizar un proceso definido
GG 2: Institucionalizar un proceso gestionado
GP 3.1: Establecer procesos definidos
GP 3.2: Recuperar información para la mejora
Planificación del
proyecto
El objetivo de este proceso es establecer y mantener planes que definan
las actividades a realizar en el proyecto, y en base a las mismas, establecer
el presupuesto y los cronogramas del proyecto. A continuación se desglosan las
metas a conseguir con este proceso, y las prácticas que se requieren para
conseguir estas metas:
SG 1. Establecer estimaciones.
Para ello hay que:
SP
1.1. Estimar el alcance del proyecto
(relación de tareas).
SP
1.2. Realizar estimaciones de los
productos de trabajo y atributos de las
tareas (tamaño en puntos función, líneas de código, etc).
SP
1.3. Definir el ciclo de vida del
proyecto (diferentes fases del proyecto).
SP
1.4. Realizar estimaciones de esfuerzo y
coste.
SG 2. Desarrollar el plan de proyecto – un documento formal que se utilizará para manejar y controlar la
ejecución del proyecto. Este documento estará basado en los requisitos del
proyecto y en las estimaciones anteriores. Para conseguir esta meta hay que:
SP
2.1. Establecer el presupuesto y calendario del proyecto.
SP
2.2. Identificar los riesgos del proyecto.
SP
2.3. Definir un plan para administrar los
datos, entendiendo por datos
cualquier documentación requerida para soportar un programa en cualquiera de
sus facetas (administración, control de cambios, logística, etc)
SP
2.4. Definir un plan para administrar los
recursos, entendiendo por recurso
una máquina, materiales, métodos, etc.
SP
2.5. Definir un plan para administrar los
conocimientos y habilidades.
SP
2.6. Definir un plan para involucrar a
los interesados.
SP
2.7. Establecer el Plan General del
proyecto.
SG 3. Obtener un compromiso para realizar el plan – Se establecen y mantienen compromisos con todos
los involucrados en el proyecto con las actividades definidas en el Plan de
proyecto. Para conseguir esta meta hay que realizar las siguientes prácticas:
SP
3.1. Revisar los planes que afectan al
proyecto (con los involucrados).
SP
3.2. Reconciliar el trabajo y el nivel de
los recursos.
SP
3.3. Conseguir el compromiso de los
involucrados con el Plan de proyecto.
Con estas metas específicas se consigue la meta global GG 2.
Seguimiento y control
del proyecto
El objetivo de este proceso es controlar el progreso del proyecto de
forma que se puedan tomar acciones correctivas apropiadas cuando el progreso
del proyecto se desvía significativamente del plan. Se cumple con el
seguimiento y control de proyectos si se cumple con las siguientes prácticas:
SG 1. Monitorizar el proyecto de acuerdo con el
Plan. Para
ello hay que:
SP
1.1. Monitorizar los parámetros del Plan
de proyecto (% de avance, fechas
reales vs fechas
estimadas, número de requerimientos atendidos vs
los planeados, etc).
SP
1.2. Monitorizar los compromisos.
SP
1.3. Monitorizar los riesgos.
SP
1.4. Monitorizar Plan de administración
de datos (que los datos existan y
estén almacenados en el lugar correcto).
SP
1.5. Monitorizar de la involucración de los interesados .
SP
1.6. Realizar revisiones del progreso del proyecto (avance del mismo).
SP
1.7. Realizar revisiones de los hitos del proyecto.
SG 2. Administrar acciones correctivas a tomar – Se realizan acciones correctivas cuando los
resultados que se van obteniendo en el proyecto se desvían significativamente
del Plan inicial. Para ello hay que:
SP
2.1. Analizar los problemas.
SP
2.2. Tomar acciones correctivas.
SP
2.3. Administrar las acciones
correctivas.
Con estas metas específicas se consigue la meta global GG 2.
Gestión de acuerdos con proveedores
El objetivo de este proceso es controlar la adquisición de productos
proporcionados por los proveedores con los cuales existe un acuerdo formal.
Este proceso se cumple si se cumplen las siguientes prácticas:
SG 1. Establecer acuerdos con proveedores. Para ello hay que:
SP
1.1. Determinar el tipo de adquisición.
SP
1.2. Seleccionar proveedores.
SP
1.3. Establecer acuerdos con proveedores.
SG 2. Satisfacer los acuerdos con proveedores. Para ello hay que:
SP
2.1. Revisar los productos comerciales ya
hechos (COTS Products, Commercial
On The Self Products, en contraposición a productos realizados a medida).
SP
2.2. Ejecutar los acuerdos con los
proveedores.
SP
2.3. Aceptar el productor adquirido.
SP
2.4. Efectuar la transición de productos.
Con estas metas específicas se consigue la meta global
GG 2.
Medidas y análisis
El propósito de este proceso es desarrollar y mantener la capacidad de
tomar mediciones para atender las necesidades de información de cómo va el
proyecto. Se cumple con este proceso si se cumple con las siguientes prácticas:
SG 1. Alinear actividades de medición y análisis
con los objetivos y las necesidades de información. Para ello hay que:
SP
1.1. Definir cuales van a ser los
objetivos de la medición.
SP
1.2. Especificar medidas (métricas
básicas, número de requerimientos,
esfuerzo esperado en la corrección de errores).
SP
1.3. Establecer procedimientos de
recolección de datos y almacenamiento
de los
mismos.
SP
1.4. Establecer el procedimiento de
análisis.
SG 2. Proporcionar resultados de las mediciones
SP
2.1. Guardar las mediciones.
SP
2.2. Analizar las mediciones (para
ver si los datos obtenidos son
correctos).
SP
2.3. Almacenar los datos y resultados
obtenidos (métricas básicas y
calculadas).
SP
2.4. Comunicar los resultados del proceso
a los involucrados.
Con estas metas específicas se consigue la meta
global GG 2.
Medidas de calidad en el proceso y en el producto
El objetivo de este proceso es proporcionar personal cuyo objetivo sea profundizar en el proceso y
en los productos de trabajo asociados. Se cumple con este proceso si se cumple
con las siguientes prácticas:
SG 1. Evaluar objetivamente procesos y productos
de trabajo. Para
ello hay que:
SP
1.1. Evaluar objetivamente los procesos.
SP
1.2. Evaluar objetivamente los productos
de trabajo y servicios.
SG 2. Proporcionar comunicación interna objetiva. Para ello hay que:
SP
2.1. Comunicar las no conformidades y
asegurar su resolución.
SP
2.2. Establecer y mantener registro de
actividades.
Con estas metas específicas se consigue la meta
global GG 2.
Gestión de la configuración
El propósito de este proceso es establecer y mantener la integridad de
los productos de trabajo manteniendo un control de sus versiones, lo que
implica mantener una identificación, control y auditoria de cada versión. Se
cumple con este proceso si se cumple con las siguientes prácticas:
SG 1. Establecer líneas base. Para ello hay que:
SP
1.1. Identificar cada componente
susceptible de ser versionado.
SP
1.2. Establecer y mantener un sistema de
administración de la
configuración.
SP
1.3. Crear líneas base (para uso
interno o para entregar al cliente).
SG 2. Seguimiento y control de cambios. Para cumplir con esta meta hay que:
SP
2.1. Monitorizar los requisitos de cambio.
SP
2.2. Controlar los componentes que han
cambiado.
SG 3. Establecer la integridad
SP
3.1. Establecer y mantiener
registros describiendo cada iteración de la
configuración.
SP
3.2. Ejecutar auditorias a la
configuración para mantener la integridad.
Con estas metas específicas se consigue la meta
global GG 2.
Definido o Nivel 3 – CMMI
Resumiéndolo mucho, alcanzar este nivel significa que la forma de
desarrollar proyectos está definida, es decir, está establecida, documentada, y
existen métricas (obtención de datos objetivos) para la consecución de
objetivos concretos. Los procesos que hay que implantar para alcanzar este
nivel son:
·
Gestión de
requisitos
·
Solución técnica
·
Integración del
producto
·
Verificación
·
Validación
·
Enfoque
organizacional del proceso
·
Definición del
proceso de la organización
·
Formación en la
organización
·
Gestión de
riesgos
·
Análisis de
decisiones y resolución
Gestión de requisitos
El objetivo de este proceso es generar y analizar requisitos de
clientes, del producto a desarrollar y de sus componentes. A continuación se
desglosan las metas a conseguir con este proceso, y las prácticas que se
requieren para conseguir estas metas:
SG 1. Desarrollar los requisitos del cliente. Para ello hay que:
SP
1.1. Obtener las necesidades de los
participantes.
SP
1.2. Desarrollar los requisitos de los
clientes.
SG 2. Desarrollar los requisitos del Producto. Para ello hay que:
SP
2.1. Establecer los requisitos del
producto y componentes que integran el
producto.
SP
2.2. Asignar los requisitos a cada
componente.
SP
2.3. Identificar los requisitos de
interfaces.
SG 3. Analizar y validar los requisitos. Para ello hay que:
SP
3.1. Establecer y mantener los conceptos
operacionales y escenarios
asociados.
SP
3.2. Establecer y mantener una definición
de la funcionalidad requerida.
SP
3.3. Analizar los requisitos.
SP
3.4. Analizar los requisitos para ver su
alcance.
SP
3.5. Validar los requisitos con métodos
que sean entendibles.
Con estas metas específicas se consiguen la meta
global GG 3.
Solución técnica
El propósito de este proceso es desarrollar e implementar soluciones a
los requisitos; las soluciones, diseños e implementaciones abarcan productos,
componentes del producto y ciclos de vida asociados al producto. Se cumple con
la solución técnica si se cumple con las siguientes metas específicas:
SG 1. Seleccionar soluciones para los componentes del producto
SP
1.1. Desarrollar alternativas detalladas
y criterios de selección (costos,
rendimiento técnico, complejidad, limitaciones tecnológicas,
riesgos, facilidad
de uso, etc).
SP
1.2. Evolucionar conceptos operacionales
y escenarios (modo de
operación, estado de la operación para cada componente).
SP
1.3. Seleccionar soluciones para los
componentes del producto.
SG 2. Crear el diseño. Para
ello hay que:
SP
2.1. Diseñar el producto o los
componentes del producto (diseño
detallado).
SP
2.2. Establecer un paquete de datos
técnicos (conjunto de
especificaciones de un paquete).
SP
2.3. Diseñar interfaces utilizando
criterios.
SP
2.4. Realizar los análisis de
construcción, compra o reutilización.
SG 3. Implementar el diseño del
producto. Para
ello hay que:
SP
3.1. Implementar el diseño (codificación,
re-usabilidad de código, pruebas
unitarias).
SP
3.2. Desarrollar la documentación de
soporte del producto.
Integración del
producto
El propósito es integrar el producto a partir de sus componentes,
asegurar que el producto (como parte de la integración) funciona correctamente,
y entregar el producto. Se debe cumplir con las siguientes prácticas
específicas:
SG 1. Preparar la integración del producto:
SP 1.1. Determinar la secuencia de
integración.
SP 1.2. Establecer el entorno de
integración del producto.
SP 1.3. Establecer los criterios y
procedimientos de integración del producto.
SG 2. Asegurar la compatibilidad de las interfaces:
SP 2.1. Revisar la completitud de
las revisiones de las interfaces.
SP 2.2. Administrar las interfaces.
SG 3. Integrar los componentes del producto y entregar el producto:
SP 3.1. Confirmar que los
componentes del producto están listos para la
integración.
SP 3.2. Integrar los componentes del
producto.
SP 3.3. Evaluar las integraciones de
los componentes del producto ya
integrados.
. SP 3.4. Empaquetar y entregar el
producto o componente.
Verificación
El propósito es asegurar que los productos de trabajo
seleccionados responden a los requerimientos especificados. A continuación se
desglosan las metas a conseguir con este proceso, y las prácticas que se
requieren para conseguir estas metas:
SG 1. Preparar la verificación
SP 1.1. Seleccionar los productos de
trabajo para la verificación
SP 1.2. Establecer el entorno de
verificación.
SP 1.3. Establecer los
procedimientos y criterios de verificación.
SG
2. Realizar revisions por terceros
SP 2.1. Preparar revisiones por terceros.
SP 2.2. Realizar revisiones por terceros.
SP 2.3. Analizar
resultados de revisiones por terceros.
SG 3 Verificar los productos de trabajo seleccionados
SP 3.1. Realizar la verificación.
SP 3.2. Analizar los resultados de
la verificación e identificar las acciones
correctivas.
Validación
El propósito es demostrar que un producto o
componente satisface su uso pretendido, en el ambiente operativo planeado. A
continuación se desglosan las metas a conseguir con este proceso, y las
prácticas que se requieren para conseguir estas metas:
SG 1. Preparar la validación.
SP 1.1. Seleccionar los productos a
validar.
SP 1.2. Establecer el entorno de
validación.
SP 1.3. Establecer los
procedimientos y criterios de validación.
SG 2. Validar los productos o componentes de los productos.
SP 2.1. Realizar la validación.
SP 2.2. Analizar los resultados de
la validación.
Enfoque organizacional del proceso
SG 1. Determinar las oportunidades de mejora del proceso.
SP 1.1. Establecer las necesidades organizacionales
del proceso.
SP 1.2. Evaluar los procesos de la
organización.
SP 1.3. Identificar mejoras en los
procesos de la organización.
SG 2. Planificar e implementar las actividades de mejora de los procesos.
SP 2.1. Establecer los planes de
acción para los procesos.
SP 2.2. Implementar los planes de
acción para los procesos.
SP 2.3. Desplegar recursos
organizacionales para el proceso.
SP 2.4. Incluir experiencias
relacionadas con el proceso organizacional.
Definición del proceso de la organización
El objetivo de este proceso es establecer y mantener
un conjunto utilizable de recursos organizacionales del proceso. A continuación
se desglosan las metas a conseguir con este proceso, y las prácticas que se
requieren para conseguir estas metas:
SG 1. Establecer los recursos organizacionales del proceso.
SP 1.1. Establecer procesos
estándar.
SP 1.2. Establecer descripciones del
modelo de ciclo de vida.
SP 1.3. Establecer criterios y
líneas generales de adaptación.
SP 1.4. Establecer un almacén de
medidas de la organización.
SP 1.5. Establecer la librería
de recursos del proceso a nivel organizacional.
Formación en la organización
El propósito de este proceso es desarrollar las habilidades
y conocimientos de las personas para que puedan desarrollar sus roles de
forma eficiente.
SG 1. Habilitar a la organización para formar a su personal.
SP 1.1. Establecer las necesidades estratégicas
de formación.
SP 1.2. Determinar qué necesidades
de formación son responsabilidad de la
organización.
SP 1.3. Establecer un plan táctico de
formación para la organización.
SP 1.4. Establecer la capacidad de
formación.
SG 2. Proporcionar la formación necesaria.
SP 2.1. Dar la formación
SP 2.2. Establecer registros de
formación.
SP 2.3. Determinar la efectividad de
la formación.
Gestión de riesgos
El objetivo de la gestión de riesgos es identificar
problemas potenciales antes de que ocurran, de forma que las
actividades asociadas a ese manejo de riesgos se
puedan planificar y realizar según se
necesiten a lo largo de la vida del producto o proyecto para
mitigar impactos adversos para la consecución de los objetivos. A continuación
se desglosan las metas a conseguir con este proceso, y las prácticas que se
requieren para conseguir estas metas:
SG 1. Preparar la gestión de riesgos
SP 1.1. Determinar los orígenes y
categorías de los riesgos.
SP 1.2. Definir los parámetros de
los riesgos.
SP 1.3. Establecer una estrategia de
gestión de riesgos.
SG 2. Identificar y analizar los riesgos
SP 2.1. Identificar riesgos.
SP 2.2. Evaluar, categorizar y
priorizar riesgos.
SG 3. Mitigar riesgos
SP 3.1. Desarrollar planes para reducir
los riesgos.
SP 3.2. Implementar los planes de reducción
de riesgos.
Análisis de decisiones y resolución
El objetivo del análisis de decisiones y la
resolución es analizar las posibles decisiones utilizando un proceso
formal de evaluación que evalúe las alternativas identificadas en
base a criterios establecidos. A continuación se desglosan las metas a
conseguir con este proceso, y las prácticas que se requieren para conseguir
estas metas:
SG 1. Evaluar alternativas
SP 1.1. Establecer las líneas
maestras para el análisis de toma de decisiones.
SP 1.2. Establecer los criterios de
evaluación.
SP 1.3. Identificar soluciones
alternativas.
SP 1.4. Seleccionar métodos de
evaluación.
SP 1.5. Evaluar alternativas.
SP 1.6. Seleccionar soluciones.
Referencias
·
Manual oficial
de CMMI que se puede descargar en http://www.sei.cmu.edu/cmmi/models/model-components-word.html
·
http://www.itba.edu.ar/capis/webcapis/proyectodetesisdemagister/peralta-anteproyecto.pdf
Buenas Tardes, mi maestro nos de ingeniería de software me dejo a la deriva de lo que se debe hacer en un proyecto aplicando este modelo que esta plasmado aquí, solo que tengo una duda como voy a implementar cada uno de los proceso para mi proyecto de curso 🙁 HELP ME!!!!!
Hola Rebeca, acá te dejo un pdf con la explicación de todos los niveles de CMMI y las áreas de procesos relacionadas
https://resources.sei.cmu.edu/asset_files/WhitePaper/2010_019_001_28782.pdf
es un poco extenso … animó !! 😀