Creador y propietario de AdictosAlTrabajo.com, Director General de Autentia S.L., Ingeniero Técnico de Telecomunicaciones y Executive MBA por el Instituto de Empresa 2007. Twitter: @rcanalesmora
Autor del Libro: Informática profesional, las reglas no escritas para triunfar en la empresa
Puedes consultar mi CV y alguna de mis primeras aplicaciones (de los 90) aquí
Regístrate para votar
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:
- 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.
- 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.
- 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.
- 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.
- 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
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.
Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.
Comentarios
-
2010-04-28 - 17:00:14jcatHola 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 -
2010-03-22 - 15:30:20ZizouHola, 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
-
victor lennon2009-09-13 - 08:57:39 PMhoolas que tal, e estado buskando informacion de CMM-Quest que tienes.pero la nueva varcion es de paga e ingles, y digamos que no soi muy bueno en ingles espero ke me puedas ayudar
-
lula2009-08-24 - 12:34:40 AMHola, estamos desarrollando una tesis sobre el CMMI, el objetivo de la tesis es crear los pasos para poder llevar al exito el CMMI, deseamos hacer una metodologia que guie a los desarrolladores de sw a mantener un estandar en los procesos de desarrollo del sw. Necesito me orientes y me sugieras como puedo realizarla, pues nos basaremos en los sp y gp de los niveles 2 y 3, y debemos sugerir como poder realizar cada uno de los sp y gp de los SG. Gracias por leer este mensaje. Exitos en tus labores
-
ViviMont2009-07-25 - 12:51:51 AMEste trabajo me parece interesante, me podría decir por favor cuales son las líneas base dentro de gestión de la configuración? Gracias
-
Cherry2009-07-24 - 12:11:28 AMexcelente y muy claro... Felicidades
-
Patricio Cuenca2009-06-30 - 11:19:05 PMPor favor podrias indicarme los estandares para aplicar a la Gestion de la Configuración, el tema esta muy interesante.. Por favor ayudame..
-
Yordanis2009-06-19 - 05:05:30 AMEsta super bueno el tutorial, pero tengo una duda ¿Dentro de qué grupo de los modelos de calidad se ubica CMMI?
-
Elizabeth2009-06-12 - 05:45:14 PMHola me gustaria saber si ya existen algunas plantillas para REQM y PP que se puedan utillizar. Gracias
-
Jorge2009-05-18 - 07:07:56 PMHola, como una introducción al CMM está bastante bien, me ha servido para visualizar el contexto y la herramienta que cita aparenta ser muy útil. Lo único que debo pedirle al autor es que corrija la innumerable cantidad de faltas de ortografía, dado que resta puntos al tutorial; por lo menos si justamente habla de modelos de calidad basados en la comunicación continua. Salvo por ese "detalle" me parece un buen punto de inicio. Un saludo y gracias por tu aporte!
-
Marcelo2007-11-13 - 04:56:31 PMUn poco corto en explicacion teórica y ejemplos, que es lo que estoy buscando.
-
HENRY2007-08-15 - 09:13:41 PMmuy bueno el tutorial
-
Fabian2007-05-07 - 06:24:02 PMConciso y claro.
-
Horacio Hernández2007-04-17 - 03:46:00 AMHola, me gustó mucho tu explicación del tema está bien claro, pero necesito ampliar un poco más en el detalle de las actividades me podria indicar donde puedo encontrar el detalle. Usted hace sólo para la actividad de gestión de requerimientos yo necesito para las otras 5 actividades. muchas gracias
-
Jairo2007-02-13 - 01:36:00 PMExcelente introducción al CMMI, gran aporte con los conceptos básicos
-
HUGO RAUL MONTES CHE2007-01-16 - 05:00:44 PMComo introducción al tema de CMM, me parec iteresante, creo que deberia tener un poco más de información. Lo que no tengo claro aún, como conigo más información como libros, direcciones URL, costos, etc. Aunque es un tema sumamente interesante e importante, no conozco en PERU alguna institución que lo dicte como un curso con certificación. De todas maneras, se agradece la buena intención de brindar conocimientos.Agradecería me envíen a mi correo más información. GRACIAS
-
Erick De la Rosa2006-10-11 - 10:30:11 PMEs bueno el curso pero le hacen falta ejemplos que dejen más en claro eluso y la aplicacion de CMMI
-
julian ramirez2006-08-30 - 06:37:54 PMEl tutorial es muy breve, no podria dar mas detalles sobre cmmi, o enviarme informacion sobre este a mi correo se lo agradeceria, gracias
-
Sandra Guerrero2006-08-02 - 11:46:22 PMMuy buen material, lo recomiendo. Excelente
-
angela lopez2006-06-29 - 11:27:09 PMBuenas tardes Me pareció muy interesante el documento que realizaron. Quisiera preguntarles si conocen a alguna empresa consultora certificada que pueda colaborar en la implementación de CMM en una empresa en bogotá. El consultor deberá tener experiencia en implementaciones exitosas en otras empresas. Ese dato me seria muy util Se pueden comunicar conmigo a mi correo electrónico Mil gracias
-
katia carralero alma2006-06-04 - 03:13:13 AMseria bueno poner en el sitio un tutorial donde explique mas sobre la norma CMMI es decir como usarla en que casos con que plantillas etc, ya que es muy importante y se tiene poco conocimiento ,pienso que el sitio esta muy bueno y que abarca bastantes conocimientos en sus tutoriales
-
Javier2006-04-26 - 12:57:15 PMEstupenda introducción al CMMi. Concisa, clara, y con evidente capacidad didactica del autor. Muchas gracias.








