Experiencia Con Un Modelo de Madurez Para El Asq

14
Trabajo de investigación financiado por el Fondo de Ciencia y Tecnología 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 Antimán y Patricio Rojas Departamento de Informática Universidad Técnica Federico Santa María Casilla 110-V Valparaíso, 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 mantención, lo que motiva un cambio de enfoque para mejorar la calidad, desde una visión 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 artículo describe el desarrollo y aplicación de un modelo de madurez desarrollado para el proceso de aseguramiento de calidad del software, como parte de un proyecto de investigación amplio en el tema de la madurez y el mejoramiento de los

description

s

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.