Experiencia Con Un Modelo de Madurez Para El Asq
-
Upload
jesus-serna -
Category
Documents
-
view
8 -
download
3
description
Transcript of Experiencia Con Un Modelo de Madurez Para El Asq
-
Trabajo de investigacin financiado por el Fondo de Ciencia y Tecnologa de CONICYT-CHILE, mediante proyecto FONDECYT N 1950708.
Experiencia con un Modelo de Madurez para el Mejoramiento
del Proceso de Aseguramiento de Calidad del Software
Marcello Visconti, Patricio Antimn y Patricio Rojas
Departamento de Informtica
Universidad Tcnica Federico Santa Mara
Casilla 110-V
Valparaso, Chile
e-mail: {visconti,projasv,pantiman}@inf.utfsm.cl
fono: +56-32-626364, fax: +56-32-625217
Resumen
Para producir y mantener software de alta calidad, a bajo
costo y en forma efectiva, son fundamentales los procesos utilizados
en su desarrollo y mantencin, lo que motiva un cambio de enfoque
para mejorar la calidad, desde una visin centrada en los productos
hacia otra centrada en los procesos. Es as como han surgido los
modelos de madurez de procesos de software como herramientas
para enfrentar la complejidad. Este artculo describe el desarrollo y
aplicacin de un modelo de madurez desarrollado para el proceso de
aseguramiento de calidad del software, como parte de un proyecto de
investigacin amplio en el tema de la madurez y el mejoramiento de los
-
procesos de software. Durante 1996 se ha aplicado el procedimiento
de evaluacin diseado en diversas empresas de desarrollo de
software y/o unidades informticas Chilenas, del tipo pequeas o
medianas, con la finalidad de obtener informacin que permita
elaborar un perfil representativo de la madurez y del nivel de
satisfaccin actual de las prcticas claves del proceso, descubrir sus
fortalezas y debilidades, y as recomendar acciones que posibiliten un
mejoramiento a corto y mediano plazo. Los resultados han sido muy
estimulantes, no por los altos grados de madurez detectados, sino que
por el manifiesto inters demostrado en mejoramiento.
Palabras Claves: proceso de software, madurez de procesos,
aseguramiento de calidad del software.
1.- Concepto de Madurez de Procesos.
La Ingeniera de Software ha introducido ltimamente la
premisa que la calidad de un producto de software est
fundamentalmente determinada por los procesos utilizados en su
desarrollo y mantencin [3]. Dentro de este marco de referencia, se
define como una organizacin madura aquella que posee la
potencialidad para desarrollar y administrar sus proyectos de
software en forma consistente y proactiva, as como tambin la
capacidad para mantener y mejorar sus procesos.
-
Una organizacin madura se caracteriza por mantener
procesos consistentes a travs de sus distintos proyectos. La
aplicacin de estos procesos debe resultar en una disminucin de las
crisis y de los costos anormales que afectan a una organizacin
inmadura. La organizacin que ha logrado un nivel adecuado de
madurez de procesos puede controlar sus proyectos razonablemente y
ahorrar los costos inherentes al proceso catico, aprovechando as los
beneficios que brinda la calidad.
Las ideas y conceptos fundamentales de la madurez
organizacional fueron planteados por el Software Engineering
Institute (SEI) de Carnegie Mellon University, EE.UU. a travs de
un Marco Conceptual [3] y ms tarde a travs del modelo de
madurez de los procesos de software (Capability Maturity Model ,
CMMsm) [4].
CMMsm describe un plan evolutivo de mejoramiento para
pasar de un proceso ad-hoc o catico a uno maduro. El modelo
tambin establece ciertas caractersticas estndares contra las cuales
se puede juzgar formalmente la madurez de una organizacin relativa a
sus procesos de software. El modelo debe ser usado conjuntamente
con un procedimiento de evaluacin que permita mapear el estado de
una organizacin a uno de los niveles de madurez y determinar, de esta
CMM es una marca de servicio de Carnegie Mellon University
-
forma, los desafos y las potenciales reas de mejoramiento para pasar
al siguiente nivel de madurez.
Aplicar los conceptos de madurez al proceso de
aseguramiento de calidad del software (Software Quality Assurance,
SQA [1,2]) se presenta como un gran paso para conocer qu tan
eficazmente est siendo ejecutado este proceso en una organizacin.
Sin embargo, aplicar CMMsm directamente a dicho proceso no es
conveniente ya que este modelo describe una potencialidad global en
base a un proceso que involucra a todas las actividades relevantes en
la produccin, operacin y mantencin de software (anlisis de
requerimientos, diseo, codificacin, testing, entre otros). De esta
manera, la madurez corresponde a una visin global del estado de la
prctica en que se encuentra dicha organizacin con respecto a su
proceso de software. Una de las crticas principales que ha recibido el
CMMsm es justamente esta situacin; que un simple nivel de madurez
no puede describir completamente el proceso de software de una
organizacin [5]. Existe la posibilidad de que ciertas actividades
dentro del proceso de software no alcancen el nivel de madurez que lo
representa, o viceversa.
La propuesta y experiencia que se describe en este artculo ha
consistido en desarrollar y aplicar un modelo de madurez para el
proceso de aseguramiento de calidad del software, con el principal
objetivo de entregar una visin focalizada de este proceso inserto en
-
el ciclo de vida de un producto de software, de manera de tener un
mayor conocimiento de sus potencialidades y debilidades para
emprender acciones de mejoramiento priorizadas y con mayor
probabilidad de xito.
2. Modelo de Madurez para el Proceso de Aseguramiento de
Calidad del Software.
El modelo propuesto para el proceso de aseguramiento de
calidad del software est compuesto, en su primera versin, por 5
niveles de madurez ms un nivel base o de inmadurez. Estos niveles
describen los distintos escenarios de madurez en que se desenvuelven
las organizaciones que desarrollan o mantienen software con respecto
a sus procesos de calidad. A continuacin se describe cada nivel.
Nivel Cero: Inmaduro
En este nivel de madurez, no existe un compromiso de la alta
administracin por aplicar los conceptos y prcticas de calidad en sus
procesos de desarrollo y mantencin del software. Resultado de ello
es la carencia de procedimientos documentados que guen la ejecucin
de prcticas de calidad tales como testing, inspecciones de cdigo,
revisiones de requerimientos, entre otros. Estas prcticas son
realizadas en forma improvisada por los ingenieros de software.
Las prcticas de calidad dominantes en este nivel
corresponden a testing y debugging, siendo stos los nicos motores
-
del proceso de SQA. Corresponden a prcticas reactivas o por
fuerza bruta que se utilizan solamente para resolver problemas
inmediatos o para apagar incendios ante eventuales crisis que
resultan de la carencia de una planificacin adecuada y de objetivos de
calidad claramente definidos.
Primer Nivel: Bsico
Se comienza a adquirir conciencia de la importancia o del rol
que cumple la calidad en los procesos de software tanto para las
organizaciones que desarrollan o mantienen software como para los
clientes. Estos indicios de una cultura de calidad se manifiestan en
la definicin y planificacin temprana de prcticas de calidad tales
como testing, la incorporacin de revisiones tanto para la
planificacin y requerimientos como para el diseo y codificacin, y el
registro de los resultados de las prcticas de calidad.
Segundo Nivel: Planificado
En este nivel de madurez, las organizaciones desarrollan un
plan de aseguramiento de calidad del software y nace el compromiso
de la alta administracin por orientarse hacia una cultura de la
calidad del software. En este plan se definen claramente las fases del
desarrollo del producto con sus respectivas prcticas de calidad, se
estandariza la documentacin de cada sub-producto de las fases del
desarrollo y las practicas de revisin, inspecciones, auditoras, testing
-
y capturas de conocimiento en forma de guas y checklists
bsicos (tipos de defectos).
Tercer Nivel: Estandarizado
Las organizaciones que se encuentran en este nivel definen
explcitamente el proceso de aseguramiento de calidad del software.
Este proceso se transforma en un sistema de calidad estndar para la
organizacin, el cual es integrado a su proceso de software.
Se definen objetivos globales de calidad para el proceso de
aseguramiento de calidad del software. Adems, se establecen
claramente responsabilidades y compromisos de la administracin
superior con respecto al proceso.
Cuarto Nivel: Controlado
Se establece un plan de medicin con el objetivo de controlar
y comprender cuantitativamente el proceso de aseguramiento de
calidad del software. Este plan define mtricas para el producto,
procesos, estndares y procedimientos, describe cmo usarlas y
explica procedimientos para recolectarlas.
Las herramientas utilizadas por estas organizaciones estn
orientadas a monitorear y controlar la eficacia de los procesos de
calidad del software.
Quinto Nivel: Optimizado
Las organizaciones que se encuentran en este nivel mejoran o
perfeccionan en forma continua el proceso de aseguramiento de
-
calidad del software, con el objetivo de lograr procesos ms efectivos
para lograr la calidad del producto final.
Existe un compromiso organizacional por orientarse hacia un
mejoramiento continuo de los procesos de calidad del software.
3. Procedimiento de Evaluacin de Madurez
El propsito del procedimiento de evaluacin desarrollado es
determinar la ubicacin de la organizacin relativa al modelo de
madurez propuesto, y orientarla hacia un camino ordenado de
mejoramiento. Para este modelo, se propone un cuestionario de
evaluacin como herramienta, que en su primera versin consulta 65
preguntas.
La filosofa de evaluacin consiste en determinar si un proceso
cumple con los objetivos de un nivel de madurez del modelo. Cada
objetivo se concreta en base a prcticas, las cuales corresponden a
actividades que deben ser realizadas en conjunto para satisfacer dicho
objetivo. Para cada prctica se pueden formular una o ms
preguntas que permiten establecer, mediante sus respuestas, si
aqullas han sido implantadas en la organizacin. Exceptuando al nivel
0, todos los niveles estn descritos a travs de prcticas de calidad.
Para avanzar hacia niveles superiores de madurez, el proceso
debe cumplir con los objetivos del nivel y tambin los de los niveles
-
inferiores. El procedimiento de evaluacin considera la realizacin de
las siguientes actividades:
Pre-Evaluacin: Preparacin previa a la evaluacin: objetivos,
conceptos, formatos, etc. Clave para asegurar adecuada utilizacin de
la herramienta de evaluacin.
Evaluacin: Completacin de los cuestionarios de evaluacin.
Post - Evaluacin : Anlisis de discrepancias, para entenderlas,
explicitarlas, y potencialmente removerlas.
Elaboracin de Informes: Una vez revisadas las discrepancias se
elabora un informe que contiene los siguiente tpicos:
Proyectos evaluados y resultado de la evaluacin (nivel).
Perfiles de madurez (Satisfaccin de prcticas).
Perfil organizacional de madurez del proceso evaluado.
Plan de mejoramiento (corto y mediano plazo).
Resumen del modelo de madurez, de preguntas y
respuestas.
-
4. Resultados Preliminares
Durante 1996 se han evaluado 36 proyectos de software en
11 empresas, tres de las cuales corresponden a divisiones o unidades
de informtica de empresas medianas, y ocho a casas de desarrollo de
software. En total, se ha evaluado a 88 profesionales. Los resultados
agregados a nivel de proyecto, en trminos de nivel de madurez, se
ilustran en el grfico siguiente:
Resultados Globales de Proyectos Modelo de Madurez SQA
Nivel 2: 0%Nivel 3: 0%Nivel 4: 0%NIvel 5: 0%
Nivel 114%
Nivel 086%
La siguiente tabla muestra en trminos porcentuales la
distribucin por grado de satisfaccin para cada una de las prcticas
definidas por cada nivel en el modelo propuesto. Esta informacin
complementa la informacin entregada en el grfico superior, pues
permite priorizar tareas y focalizar acciones de mejoramiento.
-
Porcentaje de ProyectosNivel Prcticas - Primera Versin Grado de Satisfaccin
MUYBAJA
BAJA MEDIA ALTA MUYALTA
Nivel0
Ninguna - - - - -
Nivel1
Definicin y planificacin de hitos de calidad a lo largo de unproyecto de software
25% 31% 22% 19% 3%
Documentacin de prcticas de calidad y de sus resultados 44% 28% 11% 17% 0%
Definicin de procedimientos a seguir por las prcticas de calidad 61% 19% 14% 6% 0%
Nivel2
Establecimiento de compromisos y participacin de toda laorganizacin con respecto a la calidad
92% 8% 0% 0% 0%
Definicin de un plan de aseguramiento de la calidad del software 94% 0% 6% 0% 0%
Implantacin de un grupo independiente de SQA 97% 0% 0% 3% 0%
Utilizacin de herramientas CASE para apoyar las actividades deSQA
94% 3% 3% 0% 0%
Nivel3
Establecimiento de compromisos y responsabilidades con respectoal proceso de SQA
97% 3% 0% 0% 0%
Definicin y estandarizacin del proceso de SQA 89% 8% 3% 0% 0%
Nivel4
Definicin de un plan de medicin 94% 6% 0% 0% 0%
Definicin de metas cuantitativas para el proceso de SQA 100% 0% 0% 0% 0%
Utilizacin de herramientas de apoyo a fin de monitorear laeficacia de los procesos de calidad
94% 6% 0% 0% 0%
Nivel5
Definicin de un programa de mejoramiento continuo para elproceso de SQA
92% 6% 3% 0% 0%
Utilizacin de ambientes inteligentes para apoyar el plan demejoramiento
89% 11% 0% 0% 0%
Estos resultados obtenidos son preliminares y corresponden
solamente a un conjunto pequeo de empresas evaluadas, por lo que
no pueden ser considerados concluyentes. Sin embargo, los mismos
muestran un claro estado de inmadurez y de insatisfaccin generalizada
de prcticas del proceso de SQA. Dichos resultados han estimulado la
adopcin de polticas explcitas donde se reconoce la importancia del
aseguramiento de calidad del software, pero la implantacin de planes
de accin concretos para abordar el mejoramiento es aun escasa.
-
5. Conclusiones Preliminares
El modelo de madurez del proceso de aseguramiento de
calidad de software es una propuesta que presenta un marco
conceptual para mejorar las actividades de calidad insertas en una
organizacin dedicada al desarrollo y mantencin del software. Sin
embargo, el modelo no garantiza el xito en el logro de productos de
gran calidad o procesos de calidad ms eficaces. Para lograr estas
metas, debe existir un compromiso real de toda la organizacin con
respecto a la calidad y se debe aunar esfuerzos para alcanzar las
metas propuestas.
CMMsm y el modelo de madurez de SQA propuesto se
complementan: mientras uno permite tener un conocimiento global del
proceso de software de una organizacin, el otro permite tener una
visin ms particular de un subproceso involucrado en l, en este caso,
el proceso de aseguramiento de calidad del software.
Actualmente se trabaja en el desarrollo de una herramienta
automatizada de auto-evaluacin, y de la segunda versin del modelo.
Desarrollar y aplicar modelos de madurez en la industria de software
es una experiencia de aprendizaje, por lo que constantemente aqullos
deben ser evaluados con el objetivo de mejorarlos permanentemente.
La siguiente tabla esquematiza la segunda versin del modelo de
madurez para SQA, actualmente en desarrollo. En ella se ha reducido
-
en uno el nmero de niveles y se han reorganizado las prcticas claves
de cada nivel, producto de las evaluaciones y experiencia acumulada.
Nivel Prcticas - Segunda Versin
Nivel 0 NingunaNivel 1 Declaracin de poltica especificando prcticas de calidad requeridas
Establecimiento de actividades para satisfacer practicas de calidad requeridasNivel 2 Poltica organizacional y compromiso de alto nivel para SQA
Plan de SQA como parte del plan del proyectoEstablecimiento de hitos de SQAControl del cambio como parte del plan de SQA
Nivel 3 Medicin del grado de satisfaccin de hitos de SQAMonitoreo de adherencia al plan de SQAEstablecimiento de un proceso de SQA
Nivel 4 Mediciones del proceso de SQAAnlisis de la efectividad del proceso de SQACiclo de retroalimentacin para mejoramiento del proceso de SQA
Bibliografa
[1] Sanders, J., Curran, E., Software Quality, a Framework for
Success in Software Development and Support, Addison-Wesley,
1994, pp. 109-130.
[2] Basili,V.,Rombach, H.,Implementing Quantitative SQA: A
Practical Model, IEEE Software, Septiembre 1987, pp. 6-9.
[3] Humphrey Watts S., Caracterizing the Software Process: A
Maturity Framework, IEEE Software, Marzo 1988, pp. 73-79.
[4] Paulk Mark C., Curtis Bill, y Chrissis Mary Beth, Capability
Maturity Model, Versin 1.1, IEEE Software, Julio 1993, pp. 18-27.
-
[5] Topper Andrew y Forgensen Paul, More than One Way to
Measure Process Maturity, IEEE Software, Noviembre 1991, pp. 9-
10.