CMMI. Modelo de Madurez Software

2
174511

Calidad en el desarrollo de Software. CMMI

Introducción

Según las estadísticas, menos de 20% de los proyecto se completan en
costes, plazos, alcance y nivel de calidad. Los factores son muchos y algunos de
ellos los comentábamos en otros artículos: ¿Por
qué fracasan los proyectos E-business?
.

Cuando hablamos de procesos de desarrollo de software, no estamos hablando de
temas puramente técnicos porque está demostrado que la mayoría de los
problemas son organizativos.

Cada vez más organizaciones se preocupan por la implantación de modelos de
calidad en el desarrollo del software.

Existen numerosas iniciativas, siendo las más importantes:

  • Las normas ISO 9000 y 15504
  • El Capability Maturity Model (CMM) desarrollado en el  SEI 
    (Instituto de Ingeniería de Software) de la Universidad de Carneguie Mellon,
    Estados Unidos.

En objetivo consiste en mejorar los procesos de desarrollo de software de tal
modo los proyectos sean más predecibles (tiempo y costes), se reduzcan los
riesgos en los desarrollo (con el consiguiente ahorro de costes), etc..

En muchas organizaciones los responsables técnicos han ido prosperando y
ocupando labores de responsabilidad sin haber sido correctamente preparados:
Técnicamente pueden estar cualificados pero tienen graves deficiencias en
labores de gestión.

El problema fundamental es que se han consolidados en las empresas procesos
informales y poco estructurados que propician un desarrollo poco predecible y
repetible. Si no tenemos un proceso para realizar dos proyecto de un modo
similar ¿como vamos a ser capaces de evaluar el coste futuro de un proyecto?.

Introducción a CMMI

El gobierno de defensa americano, para asegurarse que sus proveedores cumplen
unos criterios mínimos de calidad, exige que estén certificados en CMM. Dato
el éxito del modelo, se extendió a otras disciplinas como la ingeniería de
sistema, adquisición de material, etc. creándose variaciones de CMM.

Como todo en esta vida, las metodologías cambian CMM se ha ampliado y ahora
ha aparecido CMMI que es una evolución de CMM y que integra las distintos
modelos de calidad.

  • Capability Maturity Model for Software (SW-CMM) v2.0 draft C,
  • Electronic Industries Alliance Interim Standard (EIA/IS) 731
  • Integrated Product Development Capability Maturity Model (IPD-CMM) v0.98.

Vamos a tratar de comentar en que consiste (a grandes rasgos) y ver como se
adapta la realidad de los desarrollo a su consecución.

Un requisito imprescindible es la Web ….

Disciplinas en CMMI

CMMI se aplica a 4
disciplinas distintas y nosotros podemos elegir una de ellas para centrarnos
es aspectos específicos.

Cada disciplina tiene una plantillas
Word
para ayudarnos a su explicación y seguimiento:

  • Ingeniería de Sistema – Cubre la construcción de un sistema con o sin
    software
  • Ingeniería de Software – Cubre la construcción de soluciones software
  • Integración de productos  y procesos de desarrollo – Cubre la
    relación a largo plazo con el cliente.
  • Relación con proveedores – Cubre los procesos relacionados con la
    subcontratación de partes del sistema

Nosotros nos vamos a centrar en el desarrollo de software…

Modelos de madurez en CMMI

CMMI propone 5 distintos modelos de madurez de las organizaciones:

  1. Inicial – Estado inicial donde el desarrollo se basa en la heroicidad y
    responsabilidad de los individuos.

    • Los procedimientos son inexistentes o localizados a áreas concretas.
    • No existen plantillas definidas a nivel corporativo.
  2. Gestionado – Se normalizan las buenas prácticas en el desarrollo de
    proyectos (en base a la experiencia y al método).

    • En este nivel consolidado, las buenas prácticas se mantienen en los
      momentos de estrés.
    • Están definidos los productos a realizar.
    • Se definen hitos para la revisión de los productos.
  3. Definido – La organización entera participa en el proceso eficiente de
    proyecto software.

    • Se conoce de antemano los procesos de construcción de software.
    • Existen métodos y plantillas bien definidas y documentados.
    • Los procesos no solo afectan a los equipos de desarrollo sino a toda
      la organización relacionada.
    • Los proyectos se pueden definir cualitativamente.
  4. Cuantitativamente Gestionado
    • Se puede seguir con indicadores numéricos (estadísticos) la
      evolución de los proyectos.
    • Las estadísticas son almacenadas para aprovechar su aportación en
      siguientes proyectos.
    • Los proyectos se pueden pedir cuantitativamente.
  5. Optimizado
    • En base a criterios cuantitativos se pueden determinar las
      desviaciones más comunes y optimizar procesos.
    • En los siguientes proyectos se produce una reducción de costes
      gracias a la anticipación de problemas y la continua revisión de
      procesos conflictivos.

Requisitos en niveles de madurez

Para asegurar la evolución por estos modelos de madurez, se deben cumplir
una serie de requisitos y prácticas.

Existen prácticas a realizar de modo particular (SP = práctica específica)
en cada requerimiento y otras que son globales (GP = Practica global) y van
apareciendo repetitivamente en distintos puntos  .

Cada práctica tiene a su vez sub-prácticas y practicas opcionales….

Nosotros vamos a tratar de describir cuales son las prácticas de primer
nivel (aunque la traducción puede que no sea muy rigurosa ;-)).

Nivel 2

El nivel 2 requiere que hallamos considerados las siguientes cosas:

Gestión de requisitos
Plan de Proyecto
Monitorización y control del proyecto
Gestión de acuerdos con proveedores
Medida y análisis 
Medidas de calidad en el proceso y producto 
Gestión de la configuración

A continuación vamos a ver un ejemplo de las actividades detalladas,
definidas por CMMI a realizar en el primer punto del nivel de madurez 2.

Gestión de requisitos

Podemos ver las distintas actividades a realizar en gestión de requisitos

SG 1 Gestionar Requerimientos  
[PA146.IG101]

  • SP
    1.1         Obtener y comprender
    requerimientos

  • SP
    1.2         Obtener la aprobación
    de los requerimientos

  • SP
    1.3         Gestionar los cambios en
    requisitos

  • SP
    1.4         Mantener una
    trazabilidad bidireccional de requisitos

  • SP
    1.5         Identificar
    inconsistencias entre el trabajo real a realizar y los requisitos.

GG 2 Institucionalizar la gestión del proceso de toma de
requerimientos   [CL103.GL101]

  • GP 2.1        (CO
    1)           Establecer
    las políticas de la organización

  • GP 2.2        (AB
    1)           
    Planificar los procesos

  • GP 2.3        (AB
    2)           
    Proporcionar los recursos adecuados

  • GP 2.4        (AB
    3)            Asignar
    las responsabilidades

  • GP 2.5        (AB
    4)            Formar
    al personal

  • GP 2.6        (DI
    1)            
    Gestionar la configuración

  • GP 2.7        (DI
    2)            
    Identificar los actores importantes

  • GP 2.8        (DI
    3)            
    Monitorizar y controlar los procesos

  • GP 2.9        (VE
    1)            Evaluar
    objetivamente el cumplimiento

  • GP 2.10      (VE
    2)            Revisar
    el proyectos con los responsables de mayor nivel.

…………………

Bueno supongo que lo habéis captado…. Habrá bloques similares a estos
para en resto de los punto del Nivel dos y para el resto de niveles….

Como podemos comprobar si cada nivel tiene requerimientos, cada requerimiento
tiene tareas principales y éstas a su vez tareas segundarias, como no
utilicemos alguna herramienta, es fácil perder el Hilo….

Herramientas para la implantación de CMMI

Existen herramientas para verificar el seguimiento de CMM/CMMI..

Una de la más recomendada es CMM-Quest
así que nos la hemos descargado y en realidad es impresionante…. sobre todo
por su sencillez

En el Web hay disponible una versión de evaluación.

Una vez descargado el fichero arrancamos la instalación

Al completar la instalación se nos lanza automáticamente esta pantalla…

Podemos abrir el proyecto que viene por defecto o crear uno nuevo

Al ser una versión de evaluación, muchas de las ventanas de información
desaparecen a los pocos segundo de mostrarse pero nos vale para hacernos una
idea de como funciona ….

Al crear uno nuevo y pulsar al botón «prepare» nos aparecer una
ventana como ésta…

 

Aparece un montón de apartados porque la herramienta cubre toda la CMMI.

Si seleccionamos la parte de Gestión de Requerimientos (imagen de abajo
parte izquierda) vemos que a la derecha nos aparecen las prácticas a
desarrollar. Es decir, en la fase de preparación tenemos que tener en cuenta
todo esto.

Si desde la ventana principal (la que sale al arrancar la
aplicación) pulsamos Fill in, podemos ir rellenando en grado de cumplimiento de
cada una de las tareas.

Y, rellenando el factor de cumplimiento de distintos elementos, nos
proporcionará gráficas con indicadores

Sencillo verdad…

Referencias

Podéis encontrar otros documentos interesantes en Internet sobre el tema :

http://www.sei.cmu.edu/cmmi/presentations/euro-sepg-tutorial/

http://www.itba.edu.ar/capis/webcapis/proyectodetesisdemagister/peralta-anteproyecto.pdf

Vates Ingeniería delSoftware

http://www.cmm-quest.com/english/default.htm

http://www.dceconsultants.com/services/iTManagementServices/cMMAndSPICE.html

http://www.infocalidad.net/secciones/030103.pdf

 

Mis conclusiones

Las personas, aunque sean buenos no pueden realizar bien su trabajo si el
procedimiento no les guía.

Es vital que las organizaciones adquieran rápidamente un procedimiento y, al
menos, un nivel 2 de madurez (o equivalente en otras metodologías). Esto
implica estandarizar el sistema de desarrollo de software a través de procesos
definidos que permitan realizar proyectos de un modo repetitivo.

Muchas organizaciones se sorprenden porque no pueden estimar correctamente el
coste de sus proyecto ….. Mi pregunta es: ¿hacen dos iguales?

Alcanzar el nivel 3 de madurez sin haber alcanzado el 2 cuando menos requiere
suerte.

Ir de un proceso anárquico a un proceso optimizado requiere:

  • Un espónsor fuerte (la dirección debe tener interés)
  • Un cambio de mentalidad en la organización.
  • Un proceso de formación continua.
  • Personal externo a la organización que sea crítico e imparcial.
  • Paciencia, tiempo y un poco de suerte…..

Además, la disciplina debe ser asumida y no impuesta…. Las personas
odiamos que nos impongan las cosas y tenemos miedo al cambio.

Pretender contratar un experto que escriba de un modo aislado un documento
con los procedimientos que se deben seguir a partir de ese momento en la
organización provocará excepticismo y rechazo.

Toda la organización se debe sentir participe de los procedimientos
establecidos….. cosa que requiere su arte.

Sobre el
Autor ..

2 Comentarios

  1. Hola, buenos dias… muy bueno su trabajo .. por mi parte estoy desarrollando una tesis sobre la Gestion estadistica de los requisitos en los diferentes proyectos de software .. pero estoy falto de documentacion necesaria … espero si no es molestia la ayuda de cualquier persona recomendandome alguna documentacion…Saludos

  2. Hola Buenos Dias saludos desde venezuela….
    El post es de calidad muy buena informacion estaba interesadon es saber como se le puede aplicar y evaluar el proyecto cmm a software(sistemas de informacion) que sean realizados en una empresa ya que mi tesis estabasada en ese proyecto pero me falta tomar la muestra y la poblacion queria saber cual seria la manera mas efectiva de implementarlo en una empresa

Dejar respuesta

Please enter your comment!
Please enter your name here