Desarrollo de Software. CMMI (Capability Maturity Model Integration)

La mejora de la eficiencia en el proceso de desarrollo de software busca la obtención de una base para la consecución de productos software de calidad (es importante que se tenga en cuenta que ninguna metodología o modelo o garantiza nada, lo único que hace es proporcionar un camino del que si no te sales y ejecutas las tareas de manera adecuada te permite alcanzar como mínimo unos umbrales objetivo para la misma), que se realizan en un entorno controlado (entendiéndose el control como el hecho de que tu influencia sobre el proyecto y sobre todo el entorno sea mayor que la que el proyecto ejerce sobre ti) y que trata de cumplir presupuestos y plazos (siempre y cuando estos sean acordes con la naturaleza del proyecto).

Visto de esta forma a nadie se le escapa que una organización que proporciona servicios de desarrollo de software tenga como objetivo una mejora continua de sus procesos, es decir, de cómo hace las cosas. Esto resulta lógico y razonable ya que un mercado con tanta competencia y en donde actualmente existe crisis económica, si no evolucionas, si no mejoras, si no te adaptas, estás condenado a sufrir mucho, salvo que tengas una posición dominante en algún segmento de mercado que permita tomarte cierto tipo de licencias.

CMMI no es más que la conjunción de una serie de modelos (integración de buenas prácticas, estándares, etc..) orientados a la mejora de determinados servicios (a través de la mejora los procesos a través de los cuales se gestionan/controlan/implementan los mismos): desarrollo de productos y servicios, adquisición de productos y servicios y la gestión y entrega de servicios (cada uno de estos servicios tiene su propia constelación de procesos, en este artículo y los que voy a ir escribiendo sobre esta temática me voy a centrar en los relacionados con el desarrollo de software).

Surgió en los Estados Unidos como medio para combatir la crisis del software que se producía de manera crónica en los proyectos software relacionados con el Departamento de Defensa de los Estados Unidos para lo que se convocó un concurso que ganó la Carnegie Mellon University.

CMMI plantea un modelo en base a qué es lo que hay que hacer y no entra en cómo hay que hacerlo, esto puede suponer una ventaja en cuanto a que proporciona flexibilidad y un inconveniente en el sentido de que no proporciona fórmulas exactas (es como si tienes un mapa, pero tú te las tienes que averiguar para llegar de manera adecuada al destino).

Un aspecto importante de CMMI es que contempla diferentes niveles de madurez en cuanto a la implantación de los procesos, lo que permite que cada organización pueda plantear una estrategia de mejora continua (implanto un proceso, lo consolido, observo ventajas e inconvenientes y tomo la decisión de si me quedo como estoy o intento acceder al siguiente escalón) hasta llegar al nivel de madurez adecuado a las expectativas de la organización y a lo que ésta puede dar de sí.

No se certifica a las organizaciones en CMMI aunque esto es un tema sobre todo más formal que real, ya que lo que se hace es evaluar el nivel de madurez de una organización y otorgándole su pertenencia a uno de los niveles de madurez definidos en el modelo (se empezaría por el nivel 2 de los 5 niveles existentes). No obstante, también es posible realizar una evaluación por áreas de proceso (cada nivel del modelo tiene como objetivo satisfacer los objetivos de todas las áreas de proceso que lo conforman) y determinar el nivel de capacidad de las mismas (permitiendo de esta que se puedan tener procesos más evolucionados que otros, ya sea porque sean más importantes para la organización y/o les resulta más sencillos de conseguir por las características de los procesos ya implantados, su madurez, las características del personal, la cultura de empresa, etc…).

En los próximos artículos sobre la materia pasaré a tratar brevemente los cinco niveles de madurez definidos.

28 comentarios

Deja un comentario