CERTIFICACIN DE CALIDAD EN LA INDUSTRIA DEL SOFTWARE.
UN MODELO PARA PYMES
R. Bertone, A. Pasini, H. Ramn, S. Esponda 1 , P. Pesado 2
A. Mon, N. Gigante, E. De Mara, M. Estayno 3
I I I -LIDI Facultad de I nformtica - UNLP 4
G.I.S. - UNLaM 5
Resumen La certificacin de Calidad en la industria del software se realiza, habitualmente, a travs de las normas clsicas como ISO o el Modelo CMMI, que apuntan a controlar la gestin en el desarrollo del software de una manera integral. Estos modelos presentan dificultades para ser aplicados a PyMEs, entre otras, por el alto costo y complejidad de la infraestructura requerida para su aplicacin. Este artculo expone el trabajo conjunto entre III-LIDI - UNLP y G.I.S. - UNLaM, hacia la construccin de un Modelo de Proceso para la mejora de calidad en la industria del software y su aplicacin en PyMEs.
Palabras claves: Calidad de Software, PYMES.
1 {pbertone,apasini,hramon,ssesponda}@lidi.info.unlp.edu.ar. Investigadores. III-LIDI. Facultad de Informtica. UNLP. 2 ppesado@lidi.info.unlp.edu.ar. Investigador. III-LIDI. Facultad de Informtica. UNLP. CIC 3 aliciamon@fibertel.com.ar; noragigante@gmail.com; {demariae,estayno}@fibertel.com.ar. Secretara de Postgrado/ Departamento de Ingeniera e Investigaciones Tecnolgicas. UNLaM. 4 Instituto de Investigacin en Informtica LIDI Calle 50 y 115 1er Piso. TE +54 221 4227707. Facultad de Informtica. UNLP. 5 Grupo de Ingeniera de Software. Secretara de Postgrado. Departamento de Ingeniera e Investigaciones Tecnolgicas. UNLaM.
Introduccin En muchos pases latinoamericanos, la industria del software est representada por empresas de desarrollo de software habitualmente pequeas y medianas (PyMEs) que no estn preparadas para competir internacionalmente y en muchos de los casos ni siquiera para proveer software de calidad a los requerimientos locales. El sector informtico se enfrenta a una serie de problemas como la dependencia tecnolgica y metodolgica, la falta de formacin sobre los procesos del ciclo de vida del software y sobre la calidad del mismo. Por lo que en la mayora de los casos, asistimos a una construccin de software de baja calidad, totalmente artesanal, con tiempos de desarrollo inapropiados, e insatisfaccin de los clientes y usuarios finales. A pesar de ello, el software desempea un papel cada vez ms importante en la sociedad actual y su demanda crece exponencialmente, por lo que urge articular una estrategia para conseguir la construccin de productos software de calidad. Un proceso solo puede medirse por sus actividades especficamente determinadas, esta es la razn por la que se han elaborado diversos modelos de madurez del proceso software, que proveen a las organizaciones desarrolladoras de software, una manera ordenada mediante la cual pueden determinar las capacidades de sus procesos actuales y establecer prioridades de mejora. Los diferentes modelos de proceso brindan una coleccin estructurada de elementos que describen las caractersticas de procesos efectivos. A nivel internacional se han desarrollado y se aplican varios modelos para la mejora y evaluacin de procesos software, destacando la norma ISO/IEC 15504 [1] y [2] y, especialmente, los modelos CMM [3] y, ms recientemente, CMMI [4]. El Modelo CMM para la produccin del software, ha refinado la concepcin de un modelo que evale la madurez de una organizacin y describe un camino de mejora continuo que parte de organizaciones inmaduras, con procesos informales y poco definidos hasta llegar a organizaciones maduras, cuyos procesos son disciplinados y continuamente mejorados. Este modelo CMM establece cinco niveles de madurez progresivos para los procesos relacionados con la construccin de software, definiendo para cada nivel, unas reas Clave del Proceso (KPAs) que proporcionan los objetivos a alcanzar en cada uno y las prcticas ejemplares a realizar en cada nivel, hasta alcanzar la madurez total. Los niveles establecidos son: 1.Inicial, 2.Repetible, 3.Definido, 4.Gestionado y 5.Optimizado. Dicho Modelo CMM se ha convertido en un estndar de certificacin de calidad a partir de la evaluacin de la Madurez alcanzada por las organizaciones de desarrollo de software en sus procesos, pero nicamente las entidades tecnolgicamente ms importantes en el mbito mundial han podido alcanzar el nivel 5 de CMM. La constante revisin y mejora de este modelo de madurez, sumado a la evolucin tecnolgica ha llevado al SEI a modificar el estndar y proponer una nueva versin del mismo, llamada CMMI (Capability Maturity Model Integration), que integra la evaluacin de la madurez de los procesos de desarrollo de software unido a la gestin de proyectos tecnolgicos. El problema de muchos de estos modelos y estndares internacionales es que estn pensados para grandes empresas, y su adopcin por parte de las PyMEs de la industria del software, es difcil y costosa, por la necesidad de contar con recursos humanos capacitados en las prcticas de Ingeniera de Software, tal como atestiguan diversas investigaciones. [5]. No obstante, la importancia de los Modelos de Proceso para Certificacin en Calidad de Software, constituye un elemento central en la competitividad de los equipos de desarrollo. Las organizaciones en general, comparten las siguientes caractersticas: - En su gran mayora son pequeas y medianas empresas (PyMEs); - Carecen de recursos para acceder a la consultora para la mejora de procesos y para las certificaciones con modelos tipo CMMI;
- Poseen poca presencia internacional con bajas posibilidades de exportar. Por otra parte, los Modelos de Proceso citados, como SW CMM; CMMI, estndares y Normas de certificacin como ISO/IEC 12207[6], ISO/IEC15504 y los mtodos de evaluacin disponibles como CBA-IPI[7], SCAMPI[8] presentan los siguientes problemas a estas empresas: - Son muy generales - Estn diseados para organizaciones grandes - El costo para acceder a ellas es muy alto.
De acuerdo a esta perspectiva, resulta interesante analizar la informacin referente al proceso de certificacin en la industria del software, de acuerdo a los estndares aplicados en la actualidad a nivel mundial, que son presentados en la siguiente tabla:
Modelo Instituciones en Argentina Instituciones en la India Instituciones en resto del mundo Pas con mayor cantidad SW CMM < 10 359 > 3000 EEUU CMMI < 10 44 367 EEUU Tick-it 0 22 > 1400 RU ISO 9000 2 38 > 1400 EEUU 15504 0 2 11 RU
Del anlisis de la tabla 1 se observa el pobre nivel de desenvolvimiento del proceso de certificacin de calidad en el rea de la industria del software, que existe en la Repblica Argentina, tanto para calidad del proceso como del producto desarrollado. Un mercado emergente, con una economa favorable y con gran capacidad profesional, como es el argentino, hace que la posibilidad de exportacin de productos del software aumente significativamente desde 2002. Ahora bien, si se compara la calidad en Argentina con otro mercado tradicional en dicha industria como es la India, puede verse la enorme brecha que los separa. Modelo de Madurez para PyMES El equipo de investigacin constituido por integrantes del Instituto de Investigacin en Informtica LIDI de la UNLP y del Grupo de Ingeniera de Software de la UNLaM se encuentra abocado en la adaptacin de un modelo de proceso que permita ser implementado ms fcilmente y un modelo de evaluacin que permita bajar los costos para la certificacin de pequeas y medianas empresas de la industria del software, en el contexto de los Proyectos CYTED [9] y CIC [10]. De acuerdo a los objetivos planteados en el proyecto CIC, se encuentra en desarrollo un Modelo de Procesos para la Industria de Software que fomente la estandarizacin de su operacin a travs de la incorporacin de las mejores prcticas en gestin e ingeniera de software. La adopcin del modelo permitira elevar la capacidad de las organizaciones para ofrecer servicios con calidad y alcanzar niveles internacionales de competitividad en relativamente corto tiempo y a bajo costo, a partir de la adopcin de un modelo fcil de entender y de aplicar.
En este sentido, se est trabajando en los lineamientos de un modelo basado en la experiencia mexicana de la Norma Nacional de certificacin de calidad de software basada en el Modelo de Proceso MoProSoft [11] y elaborada para la mejora de procesos en la industria del software de las PyMES en Mxico. Este modelo de proceso permite a las pequeas y medianas empresas de desarrollo de software, el acceso a las prcticas de Ingeniera de Software de clase mundial y se encuentra fundamentado en los niveles 2 y 3 de SW-CMM, ISO 9000 e ISO/IEC TR 15504. MoProSoft est basado en procesos y considera los tres niveles bsicos de la estructura de una organizacin que son: Alta Direccin, Gestin y Operacin. El modelo tiene por objetivo apoyar a las organizaciones en la estandarizacin de sus prcticas, en la evaluacin de su efectividad y en la integracin de la mejora continua. [12] La categora de Alta Direccin, est compuesta por el proceso de Gestin de Negocios, y se compone de la planificacin estratgica, la preparacin para la realizacin de la estrategia y la valoracin y mejora continua de la organizacin. [12] En la categora de Gestin, los procesos incluidos son los de Gestin de Procesos, Gestin de Proyectos y Gestin de Recursos (Humanos y Ambiente de trabajo, Bienes, Servicios e Infraestructura y Conocimiento de la Organizacin). Esta categora de Gestin aborda las prcticas de gestin de procesos y recursos en forma coherente con los lineamientos de la Alta Direccin, proporciona los elementos para el funcionamiento de los procesos de la Categora de Operacin, recibe y evala la informacin generada por stos y comunica los resultados a la Categora de Alta Direccin. La ltima Categora, la de Operacin, aborda las prcticas de los proyectos de desarrollo y mantenimiento de software, y se compone de los procesos de Administracin de Proyectos Especficos y Desarrollo y Mantenimiento de Software. [12] El trabajo realizado hasta el momento se concentr en esta ltima categora, en el proceso de Administracin de proyectos especficos. De acuerdo a lo analizado de MoProsoft, este nivel est compuesto de cuatro fases: (1) planificacin, (2) realizacin, (3) evaluacin y control, (4) cierre. Dentro de cada fase, MoProSoft plantea un conjunto de prcticas. El trabajo realizado por el grupo consisti en la elaboracin de un cuestionario que permite evaluar la adecuacin de las prcticas de una organizacin a las fases y actividades establecidas en MoProSoft, de acuerdo a los niveles planteados por la misma. MoProSoft define diferentes niveles de capacidad, en forma similar a lo que hace CMMI. Estos niveles de capacidad se corresponden a 6 estados: (0) sin proceso definido, (1) realizado, (2) gestionado, (3) establecido, (4) predecible, (5) optimizado. La norma identifica estos distintos niveles con colores diferentes. El primer nivel de capacidad, realizado, indica las prcticas que se recomiendan como iniciales para una organizacin que comienza a normalizar sus procesos. Cada proceso incluye actividades correspondientes a los diferentes niveles de capacidad. Adems, el cuestionario presentado tiene, para cada prctica, preguntas que concuerdan con su nivel de capacidad o que responden a mayores. Algunas prcticas quedan, de por s, en varios niveles. Esto significa que algunas partes de las mismas se requieren en niveles diferentes. La interpretacin que se sugiere es que, cuando se implementa un nivel ms bajo de capacidad, solo se toma en cuenta las partes indicadas en el nivel correspondiente y al ascender de nivel se incorporan las partes del nivel siguiente. El cuestionario desarrollado [13] abarca, para cada prctica, las instancias bsicas que deben ser cubiertas. A modo de ejemplo, se presenta la Fase 1, Actividad 1 con su cuestionario asociado:
A.1. Planeacin A.1.1. Revisar con el Responsable de Gestin de Proyectos la Descripcin del Proyecto. A.1.1.1. Existe un responsable de la Gestin de Proyectos? S No A.1.1.2. A.1.1.3. A.1.1.2. Quin ocupa ese rol? Roles A.1.1.3. A.1.1.3. Existe un Documento donde se definan objetivos y alcances del proyecto? S No A.1.1.5. A.1.1.4.. A.1.1.4. Si no existe el DP, en qu se basa para definir las actividades para cada proyecto? Texto A.1.1.5. A.1.1.5. Responde a una plantilla predefinida? S/No A.1.1.6. A.1.1.6. En qu medio queda documentado (manual/digital)? Manual/Digital A.1.2.1.
En este caso se plantean 6 preguntas asociadas a la prctica A.1.1. propuesta por MoProSoft. El color est asociado con el nivel de capacidad, en este caso amarillo representa nivel realizado y verde nivel establecido. Cada pregunta tiene asociada sus posibles respuestas. Puede ocurrir que la pregunta sea por Verdadero o Falso, que se deba indicar el Rol del miembro del equipo de trabajo que cumple la prctica o que se permita completar un texto libremente. En algunos casos las respuestas pueden ser seleccionadas de un conjunto de opciones propuesto, est seleccin puede ser excluyente a una alternativa o puede permitir la seleccin conjunta de varias. Algunas opciones permiten desplegar un glosario para aclarar su significado. Cada respuesta obtenida establece el camino crtico a seguir, esto es, de acuerdo a las prcticas cumplidas hasta el momento se determinan las preguntas siguientes. Aplicacin del desarrollo El cuestionario elaborado se ha aplicado, de manera experimental, en una PyME de la Provincia de Buenos Aires que actualmente desarrolla software de mediana envergadura tanto a nivel nacional como internacional. Las entrevistas realizadas permitieron realizar un refinamiento del cuestionario, de manera de superar, errores de redaccin, vocabulario y terminologa empleada. Hasta el momento, y teniendo en cuenta las entrevistas realizadas, la completitud del cuestionario no se puede asegurar. Los parmetros evaluados permiten determinar que el horizonte pretendido por el equipo de calidad es alcanzable, en particular para las expectativas del nivel realizado. De las entrevistas se puede inferir que una de las adaptaciones del Proceso propuesto por Moprosoft para la realidad de las PyMEs argentinas, debiera incluir una flexibilizacin en la generacin de la documentacin.
Conclusiones y trabajo futuro En la industria del software, para competir en el mercado internacional actual se dispone de un conjunto de Normas internacionales, pero que no estn adaptadas al contexto sociocultural
de las pequeas y medianas empresas latinoamericanas. Por consiguiente, su aplicacin para certificar las mismas resulta dificultosa en un contexto reducido. El trabajo de investigacin y desarrollo iniciado, y aqu presentado, describe avances en la construccin de un Modelo de proceso para la certificacin de calidad en la industria de software en el mbito de pequeas y medianas empresas. Si bien, hasta el momento los resultados de esta investigacin y de su aplicacin prctica en diversos casos reales, es incipiente, la experiencia sistemtica de su aplicacin, generara un impacto en la industria de software nacional, y del contexto iberoamericano. Partiendo de la utilizacin de MoProSoft como Modelo base, se aceptaron, en primera instancia, los niveles de capacidad definidos por sta, dado que ha sido pensado y elaborado para certificacin de PyMES en un contexto latinoamericano similar al de este equipo de trabajo. Es tarea futura del equipo analizar adems, si estos niveles de capacidad se adaptan fehacientemente a las caractersticas de las PyMEs argentinas. No obstante, como se indic en esta presentacin, el desarrollo debe alcanzar las tres categoras: Alta Direccin, Gestin y Operacin. Por el momento slo se ha avanzado sobre el ltimo, una vez depurado el cuestionario que compone este nivel y generado los patrones de anlisis para las respuestas obtenidas en el cuestionario, se proceder a trabajar sobre los niveles restantes.
Referencias [1] ISO/IEC. ISO/IEC TR 15504. Information Technology Software process assessment. International Organization for Standardization, International Electrotechnical Commission, 1998. http://wwwsel.iit.nrc.ca/spice [2] www.isospice.com/standard/tr15504.htm [3] www.sei.cmu.edu/cmmi [4] CMU/SEI-2002-TR-012, 2002, Capability Maturity Model Integration (CMMI- SE/SW/IPPD/SS), Staged Representation, V1.1, Carnegie Mellon University/ Software Engineering Institute, MA. [5] Proceedings of the First International Research Workshop for Process Improvement in Small Settings, 2005 . January 2006 . SPECIAL REPORT CMU/SEI-2006-SR-001 [6] ISO/IEC 12207: 1995 Information technology Software life cycle process. [7] CMM-Based Appraisal for Internal Process Improvement (CBA IPI) http://www.sei.cmu.edu/publications/documents/01.reports/01tr033.html [8] Standard CMMI-Appraisal for Internal Process Improvement (SCAMPI SM ), Version 1.1: Method Definition Document. http://www.sei.cmu.edu/publications/documents/01.reports/01hb001.html [9] Mejora de procesos para fomentar la competitividad de la pequea y mediana industria del software de Iberoamrica (COMPETISOFT) Proyecto CYTED. (2005-2006). [10] Construccin de un Modelo de Proceso para Certificacin de Calidad en la Industria del Software y su aplicacin en pequeas y medianas empresas de desarrollo. Comisin de Investigaciones Cientficas de la Provincia de Buenos Aires ( Proyecto CIC). (2005- 2006). [11] www.software.net.mx/desarrolladores/directorios/asociaciones/amcis/MoProSoft.htm [12] Modelo de procesos para la industria del software. MoProSoft. Por niveles de Capacidad de Procesos. Versin 1.3, Agosto 2005. [13] Administracin de Proyectos Especficos. Cuestionario Gua para evaluacin. Versin 1.0. Proyecto CIC Construccin de un Modelo de Proceso para Certificacin de Calidad en la Industria del Software y su aplicacin en pequeas y medianas empresas de desarrollo. Departamento de Ingeniera e Investigaciones Tecnolgicas, Universidad Nacional de La Matanza, III LIDI, Facultad de Informtica, Universidad Nacional de La Plata. Mayo 2006.