El CMM y la mejora continúa del proceso de software
Resumen:
Dentro de la competitividad actual, conseguir productos software excelentes a
buen precio en márgenes de tiempo estrechos es el sueño de miles de
empresas. Ello se puede conseguir concentrando esfuerzos en torno a dos
pilares fundamentales: Las personas por un lado, y los métodos y
procedimientos por otro. El Modelo de Madurez de Capacidad del Software
(CMM) hace hincapié en la mejora del proceso de software en base a los
procedimientos internos y sin descuidar a las personas. Intentaremos en estas
líneas explicar este Modelo.
INTRODUCCIÓN
En una economía capitalista como la nuestra, basada en la obtención de beneficios
económicos derivados del comercio, el estudio de las organizaciones dedicadas a la
consecución de dichos beneficios ha sido objeto de numeroso material bibliográfico.
En un entorno donde lo que prevalece es la maximización de los beneficios se busca
como consecuencia inmediata la máxima eficiencia y efectividad en las tareas que generan el
beneficio.
Al mismo tiempo, la globalización a todos sus efectos, el nuevo orden social, las
nuevas formas de hacer negocios, las nuevas necesidades, los nuevos descubrimientos en
todos los ámbitos, las nuevas relaciones sociales y, en definitiva, la propia evolución de la
sociedad, elevan día a día la complejidad no solo de los procesos económicos sino también de
las relaciones personales.
Todos sabemos, que una de las formas más importantes de enfrentarse a estos retos,
es a través de las distintas herramientas informáticas eficaces y eficientes que facilitan la
ejecución y control del trabajo diario.
Sin embargo, la historia de la ingeniería del software o de la producción de material
informático esta repleta de grandes fracasos y decepciones. Proyectos de miles de millones de
dólares que no han cumplido sus objetivos y a menor nivel pero de forma mucho mas
abundante, millones de usuarios decepcionados con el software que manejan como principal
elemento de su trabajo. Los problemas mas frecuentes que nos encontramos en la producción
de software son:
1. La entrega del material fuera del plazo estipulado.
2. El material no cumple los requisitos estipulados, ya sea en eficiencia o
funcionalidad.
Todos los problemas reflejados en el párrafo anterior originan pérdidas económicas en
el mejor de los casos, ya que si es un sistema crítico podemos llegar a hablar incluso de
perdidas de vidas humanas.
Por tanto, la pregunta que nos planteamos es: ¿Cómo se pueden evitar los fracasos en
la producción de software?
LA MEJORA DEL PROCESO DE GESTIÓN DEL SOFTWARE
Para conseguir tener un proceso de producción de software sin fallos, adecuado a las
necesidades estipuladas en un principio y entregado a tiempo, esta claro que la producción de
software debe convertirse en un proceso disciplinado y aceptado por todos.
Son varias las razones por las que puede fallar el proceso de software, mencionamos
las tres principales:
1. El personal no se involucra lo suficiente en el control de calidad del trabajo.
2. La alta dirección no ha adquirido conciencia de la importancia de un buen proceso
de software para su compañía, la principal consecuencia de esto es que el proceso
de software no tiene los recursos adecuados ya sea en forma de tiempo, dinero,
tecnología, personal y formación de este.
3. Las prácticas establecidas no son las adecuadas.
Hasta ahora hemos empleado el termino "proceso de software", pero ¿qué queremos
decir con este término?: "Un proceso es un conjunto de pasos definidos para lograr una tarea",
mientras que "un proceso definido es aquel que esta escrito a tal detalle que permite que los
ingenieros lo usen constantemente". Los procesos definidos ayudan a la planificación y
desarrollo de un trabajo. El proceso que establezcamos debe ser flexible y debe facilitar el
cambio y la innovación. Al mismo tiempo el proceso debe poder ser aprendido.
Aquí es donde entra el CMM o "Modelo de Madurez de Capacidad del Software". El
CMM esta destinado a la evaluación y mejora de procesos. Se debe evaluar a la organización
para conocerla ya que sin conocerla no se puede mejorar. El propósito de CMM es guiar a
las organizaciones en la selección de estrategias de mejora determinando la madurez del
proceso actual e identificando los puntos importantes que se deben estudiar y trabajar
para mejorar tanto el proceso como la calidad del software. Dicho en palabras de Dymon
[Dymon 1997] ayudar a las personas a identificar aquellas actividades críticas que indican la
capacidad para realizar de la organización. Hay dos razones fundamentales para creer la
efectividad de este modelo:
1. El modelo CMM esta construido en base a prácticas reales.
2. Cada nueva (y correcta) implementación del CMM es un nuevo éxito.
EL MODELO DE MADUREZ DE CAPACIDAD DEL SOFTWARE (CMM)
Acabamos de ver una pequeña introducción al significado del CMM. También
consideramos brevemente las ventajas de su empleo en una organización. Ahora bien, ¿tan
bueno es el CMM que no tiene ningún inconveniente? Por supuesto que el CMM tiene
inconvenientes, aunque mejor deberíamos llamarlo riesgos. El CMM puede ser mal
interpretado, para evitarlo es conveniente que las personas que lo utilicen comprendan el
modelo y sus implicaciones a la hora de aplicarlo a la organización.
Este modelo es fruto del trabajo de SEI (Software Engineering Institute), desde 1986
centra sus esfuerzos en mejorar la practica del proceso del Software. En 1991 consiguieron
estabilizar la primera versión del CMM. Desde entonces este modelo se ha empleado en
organizaciones tales como el Departamento de Defensa de los EEUU, sedes que necesitaban
controlar de manera exhaustiva el proceso de producción de software.
El CMM es una forma de comprender la propia gestión de procesos dentro de la
organización. Es cierto que el CMM evalúa a la organización ya que para mejorar es preciso,
antes, evaluar. Pero no podemos cometer el error de reducir el CMM a una mera lista de
comprobación, el CMM es mucho más que eso, es una "institucionalización" del proceso para
construir software con el objetivo de conseguir una mejora continua.
A la hora de aplicar el CMM debemos tener claro una serie de aspectos sobre la
organización, dichos aspectos son:
1. El tamaño de la organización.
2. Su nivel cultural.
3. Las tecnologías que emplea.
Conociendo estos tres puntos podemos acometer el conocimiento de los objetivos de
la organización. Posteriormente deberemos decidir como vamos a medir.
El CMM establece 5 posibles niveles de madurez en los que puede encontrarse una
organización:
a) Nivel 1: El más básico.
b) Nivel 2 (el proceso repetible).
c) Nivel 3 (el proceso definido).
d) Nivel 4 (el proceso gestionado).
e) Nivel 5 (el proceso de optimización).
Nadie puede obtener el significado exclusive del CMM. El CMM no aporta una medida
absoluta, no existe un nivel de 2'5, todos los resultados deben ser interpretados, mejor así ya
que el CMM es flexible para adaptarse en su utilización a las peculiaridades de cada
organización. Debido a este punto, el conocimiento del Modelo por parte de quien lo aplica se
hace aún más importante.
Nos queda ahora abordar en profundidad el proceso del CMM, para ello debemos tener
en cuenta las siguientes definiciones [Paulk 1994]:
a) Institucionalizar: Edificar una infraestructura y una cultura que soporte los métodos,
las prácticas y los procesos para que éstos sean la forma real de hacer negocios.
Será fundamental conocer cual es el grado de conocimientos de todos sus
trabajadores, así como el esquema cultural y social en que se ubica la empresa.
b) Proceso de Software: Conjunto de actividades, métodos, prácticas y
transformaciones para desarrollar y mantener software y productos asociados.
c) Capacidad de un proceso: Rango de resultados esperados que se pueden obtener
tras seguir un proceso.
d) Madurez de un proceso de software: Es el punto hasta el que un determinado
proceso está explícitamente definido, administrado, medido, controlado y ejecutado
de manera efectiva.
e) Nivel de madurez: Plataforma bien definida desde la que podemos obtener un
proceso maduro de software.
f) Procedimiento documentado: La actividad o procedimiento es un proceso rutinario
y que ha sido codificado.


No hay comentarios:
Publicar un comentario