Blog de Innevo

Modelo CMMI para Desarrollo

Escrito por Adolfo Navarro | Oct 4, 2022 7:00:00 PM

Las empresas de desarrollo se mueven en un mercado altamente competitivo y en crecimiento. Aplicar las mejores prácticas para controlar la calidad de tus soluciones de software que estipula el modelo CMMI® ha demostrado ser un camino seguro para mejorar tu productividad, costos y valor de marca.

¿Qué es CMMI Desarrollo?

CMMI® (Capability Maturity Model Integration) es un conjunto de buenas prácticas mundialmente aceptadas en la industria para el diseño e implementación de procesos a través de los cuales se construyen soluciones y productos de alta calidad.

Este modelo, altamente requerido a sus proveedores por empresas de Estados Unidos y por el gobierno mexicano en sus licitaciones, abarca prácticas relacionadas a la gestión de proyectos, ingeniería de producto, gestión de procesos y otras áreas de apoyo.

CMMI Desarrollo busca garantizar la calidad en el proceso de ingeniería de software, es decir que la solución desarrollada cubra las necesidades y requerimientos a través de procesos ágiles en el marco de trabajo de un proyecto que planifica y controla sus recursos, presupuesto, calendario y riesgos.

Watts Humprey, el creador del modelo CMMI, creía que el desarrollo de software podía gestionarse de manera eficaz mediante procesos especializados para cada aspecto del Ciclo de Vida de Desarrollo del software, y que, si se realizaba cada etapa de este con los procesos adecuados, el resultado sería altamente satisfactorio. Este programa dio como resultado la creación del Modelo de Capacidad y Madurez o CMM (Capability Maturity Model)

Posteriormente el modelo se extendió a otras actividades empresariales y no solamente al desarrollo de software y se convirtió finalmente en CMMI. La “I” es de Integration, “integración” en inglés, que significaba que esta incorporado a todas las actividades empresariales ya sea productos o servicios.

Actualmente, CMMI es propiedad de ISACA, una asociación internacional cuyo propósito es ayudar a profesionales y empresas de tecnología a utilizar el potencial de esta.

¿Quiénes necesitan CMMI Desarrollo?

Considerando que el mercado de desarrollo de software está creciendo a  una tasa anual de casi el 27%, mantenerse competitivo con una alta calidad adquiere mayor relevancia para todas las empresas que buscan tomar parte en el juego.

Toda empresa que se dedique al desarrollo de productos puede beneficiarse de implementar CMMI Desarrollo para gestionar la calidad de sus soluciones. Sin embargo, dado el origen y la naturaleza del modelo, aquellas que generan soluciones de software a medida o requieren la integración de software en sus productos, encontrarán gran utilidad en las prácticas de este modelo, especialmente si buscan vender sus productos o servicios al extranjero o licitar para proyectos del gobierno mexicano, como mencionamos anteriormente, por ejemplo:

  • Fábricas de software
  • Industria automotriz
  • Industria aeroespacial
  • Fabricación de electrónica en electrodomésticos
  • Áreas o departamentos corporativos de desarrollo

¿Qué son los niveles de madurez en CMMI Desarrollo?

El modelo CMMI está organizado como un método de mejora por capas o niveles de capacidad llamadas “niveles de madurez”.

Se plantean 5 niveles de madurez acumulativos. El nivel 3, por ejemplo, está formado por las características de los niveles 1 y 2 más las propias del nivel 3. A estas características particulares de cada nivel se les conoce como “prácticas”.

Podemos decir que a cada nivel de madurez corresponde una pregunta sobre el control en sus procesos y la calidad sostenida que puede lograr:

Nivel 1: ¿Cuándo están inestables los procesos? Características principales.

  1. No tiene definido el Ciclo de Vida de Desarrollo de sus proyectos de software.
  2. En ocasiones entrega sus proyectos con defectos y en otras no.
  3. Quien detecta los defectos es el cliente.
  4. No sabe por qué motivo surgió el defecto ya que el grupo de trabajo es el mismo.
  5. No tiene definido un proceso estándar para levantar requerimientos, documentarlos y recibir aprobación de ellos.
  6. Cada desarrollador aborda la codificación según su criterio.

Nivel 2: ¿Qué desestabilizó el proceso? Características principales.

  1. No tiene definido el Ciclo de Vida de Desarrollo de sus proyectos de software.
  2. En ocasiones entrega sus proyectos con defectos y en otras no.
  3. Quien detecta los defectos es el cliente.
  4. Puede conocer por qué motivo surgió el defecto y corregir.
  5. La corrección la centra en las personas solamente.
  6. Tiene definido un proceso estándar para levantar requerimientos, documentarlos y recibir aprobación de ellos.
  7. Cada desarrollador aborda la codificación según su criterio.

Nivel 3: ¿Cómo estabilizamos los procesos? Características principales.

  1. Tiene definido el Ciclo de Vida de Desarrollo de sus proyectos de software.
  2. En ocasiones entrega sus proyectos con defectos y en otras no.
  3. Su criterio de calidad está centrado fundamentalmente en el cumplimiento de fechas de entrega al cliente, pero no en la cantidad, tipo y etapa del Ciclo de Vida de Desarrollo en la que los defectos se originan.
  4. Quien detecta los defectos es su equipo de desarrollo.
  5. Puede conocer por qué motivo surgió el defecto y corregir.
  6. La corrección la realiza en los procesos parte del Ciclo de Vida de Desarrollo ya sea que porque estén mal diseñados, mal implementados o ejecutados y elimina la causa.
  7. Tiene definido un proceso estándar para levantar requerimientos, documentarlos y recibir aprobación de ellos.
  8. Cada desarrollador aborda la codificación de acuerdo con criterios estándar para toda la empresa y los cumplen.

Nivel 4: ¿Cuándo están estables? Características principales

  1. Tiene definido el Ciclo de Vida de Desarrollo de sus proyectos de software.
  2. En muy pocas ocasiones entrega sus proyectos con defectos.
  3. El cumplimiento de fechas de entrega al cliente ha dejado de ser su principal criterio de calidad, siempre o casi siempre entrega a tiempo.
  4. Su principal criterio de calidad es que la cantidad de defectos inyectados cumpla con los criterios internacionales de Seis Sigma (Cpk ≥ 1.33).
  5. El tamaño de sus proyectos no los mide en tiempo (horas, semanas o meses) o en cantidad de personas involucradas.
  6. El tamaño de sus proyectos lo define con criterios cuantificables (puntos de función, casos de uso, número de entidades en diagrama ER, grados de influencia).
  7. Quien detecta los defectos es su equipo de desarrollo.
  8. Puede conocer por qué motivo surgió el defecto y corregir.
  9. La corrección la realiza en los procesos que son parte del Ciclo de Vida de Desarrollo ya sea que porque estén mal diseñados, mal implementados o ejecutados y elimina la causa.
  10. Tiene definidos procesos estándar para todo el Ciclo de Vida de Desarrollo para toda la empresa y se cumplen.
  11. Cada desarrollador aborda la codificación de acuerdo con criterios estándar para toda la empresa.
  12. Realiza un seguimiento numérico de su Ciclo de Vida de Desarrollo con Control Estadístico de Procesos para evaluar con inmediatez el grado de calidad del software producido.
  13. Utiliza los resultados del seguimiento para realizar las acciones preventivas o correctivas necesarias para cumplir con sus criterios de calidad.

Nivel 5: ¿Qué los mantiene estables? Características principales

  1. Tiene definido el Ciclo de Vida de Desarrollo de sus proyectos de software.
  2. En muy pocas ocasiones entrega sus proyectos con defectos.
  3. El cumplimiento de fechas de entrega al cliente ha dejado de ser su principal criterio de calidad, siempre o casi siempre entrega a tiempo.
  4. Su principal criterio de calidad es que la cantidad de defectos inyectados cumpla con los criterios internacionales de Seis Sigma o similares (Cpk ≥ 1.33).
  5. El tamaño de sus proyectos no los mide en tiempo (horas, semanas o meses) o en cantidad de personas involucradas.
  6. El tamaño de sus proyectos lo define con criterios cuantificables. (Puntos de función, casos de uso, número de entidades en diagrama ER, grados de influencia).
  7. Quien detecta los defectos es su equipo de desarrollo.
  8. Puede conocer por qué motivo surgió un defecto y corregir.
  9. La corrección la realiza en los procesos que son parte del Ciclo de Vida de Desarrollo ya sea que porque estén mal diseñados, mal implementados o ejecutados y elimina la causa.
  10. Tiene definidos procesos estándar para todo el Ciclo de Vida de Desarrollo para toda la empresa y se cumplen.
  11. Cada desarrollador aborda la codificación de acuerdo con criterios estándar para toda la empresa.
  12. Realiza un seguimiento numérico de su Ciclo de Vida de Desarrollo con Control Estadístico de Procesos para evaluar con inmediatez el grado de calidad del software producido.
  13. Utiliza los resultados del seguimiento para realizar las acciones correctivas necesarias de inmediato.
  14. Su actuación solamente se centra en actividades preventivas en el Ciclo de Vida de Desarrollo.
  15. Tiene un modelo predictivo que le permite conocer con anticipación el grado de calidad con que realizará sus proyectos

Conoce más a fondo sobre los niveles de capacidad en este artículo
"
¿Qué significado tienen los niveles de madurez en CMMI?"

Beneficios de CMMI Desarrollo para tu empresa

En cualquier empresa, no solo en las de desarrollo, lograr la consistencia de los procesos y la calidad es un gran reto, pero en ello se basa la calidad sostenida en todos tus proyectos y soluciones.

CMMI Desarrollo te otorga altos niveles de control en la gestión permitiéndote lograr ese alto nivel de calidad que tus clientes y tu buscan.

A partir de esa calidad, haber implementado CMMI te brindará diversos beneficios comerciales, operativos, financieros y organizacionales, como:

  • Facilita la operación fluida: tendrás una clara definición de roles, responsabilidades y vías de acción cotidiana para atender las solicitudes de cada cliente, mejorando tanto la productividad como el ambiente laboral.
  • Mejorarás la velocidad de tus desarrollos: las empresas con CMMI reportaron una mejora de entre el 13% y el 40% en este aspecto.
  • Eficiencia de costos: la mejora en productividad, disminución de retrabajo, entre otros, ha permitido a empresas mejorar entre un 12% y un 75% sus costos.
  • Competitividad: una suma de los beneficios anteriores te permite entregar precios más competitivos, y el contar con el aval de CMMI tendrás acceso a clientes dispuestos a pagar por la alta calidad que ofreces.
  • Aumento del valor de tu marca: podrás avalar tu alta calidad y reforzar tu prestigio como proveedor.

¿Necesitas más razones? Te invitamos a leer más del tema en nuestro artículo
¿Cuáles son los beneficios de CMMI para mi empresa?

¿Cómo se logra implementar CMMI Desarrollo y obtener un nivel de madurez?

Certificarse en CMMI es un proceso fácil de controlar y de ejecutar ya que se logra mediante técnicas ágiles SCRUM de aproximaciones paulatinas al implantar progresivamente las diferentes Áreas de Prácticas del modelo para lograr finalmente la certificación oficial internacional.

Un proyecto CMMI en promedio puede consumir 10 meses de trabajo para una empresa que nunca ha realizado un proyecto de certificación en alguna norma internacional.

Algunos factores como sus características operativas, cultura organizacional, estilo gerencial y la disponibilidad de tiempo y esfuerzo que la empresa esté dispuesta a emplear también influirán en la duración del proyecto.

A grandes rasgos, podemos definir que la implementación se realiza en cuatro pasos: 

1. Plan de trabajo

Tanto si realizarás la implementación por tu cuenta o con el apoyo de una consultoría (lo cual es totalmente opcional), es importante diseñar un plan de trabajo que tome en cuenta las circunstancias y necesidades particulares de tu organización. Así podrás prevenir problemas y retrasos que solo aumentarán el costo de tu proyecto de certificación. 

2. Implementación

En esta etapa se involucrará al personal operativo, gerencial y directivo que participa en la fabricación de tus soluciones de desarrollo. Requerirás un líder de proyecto que coordine la agenda de todo el grupo (y del equipo de consultoría, si decides contratar uno), para verificar que todo va de acuerdo con el plan.

Como consultores, en Innevo realizamos esta etapa de una forma iterativa e integrada con tus proyectos reales, capacitando a tu equipo para aplicar el modelo a su trabajo y verificando que cada proceso creado o revisado, cumpla con los lineamientos de CMMI Desarrollo, garantizando una implementación exitosa, práctica y perdurable.

Conoce más a fondo el proceso en el artículo
¿Cómo se obtiene una certificación CMMI?

3. Preparación y realización de la evaluación (auditoría)

Un equipo de al menos 4 personas (team members) de tu empresa serán los que, en conjunto con un evaluador (lead appraiser) autorizado por ISACA, realizarán esta auditoría en la que se entrevistará al personal que aplica los procesos para verificar que cumpla con lo que se diseñó en la implementación. También se encargarán de recabar y revisar la evidencia documental de estos procesos aplicados.

Al finalizar las entrevistas, los team members y el lead appraiser comunicarán a la empresa los resultados, confirmando en su caso que cumple con el nivel de madurez buscado. El lead appraiser enviará la documentación que evidencia el resultado a ISACA.

4. Publicación del certificado

Finalmente, ISACA publicará los resultados de la evaluación, con lo que tu empresa estará oficialmente certificada en CMMI en el nivel de madurez correspondiente.

De esta manera, puedes lograr una certificación en CMMI Desarrollo y tener acceso a los beneficios de implementar este modelo en tus proyectos de desarrollo.