Procesos de Ingeniería de Requerimientos basados en modelos de madurez
orientados a la certificación ISO 9001
Mariana Cecilia Arruzazabala
1, Gladys Dapozo
1, Pablo Thomas
21
Departamento de Informática. Facultad de Ciencias Exactas y Naturales y Agrimensura Universidad Nacional del Nordeste, Av.Libertad 5450, 3400, Corrientes, Argentina
[email protected], [email protected]
2
Instituto de Investigación en Informática LIDI - Facultad de Informática. Universidad Nacional de La Plata, Calles 50 y 120, La Plata, Buenos Aires, Argentina
Resumen
En el marco de la industria del software en la Argentina la certificación de la calidad de software contribuye a la competitividad del sector productivo. La Ingeniería de Requerimientos (IR) es una parte fundamental del proceso de desarrollo de software, dado que pobres prácticas en esta etapa afectan significativamente el éxito de un proyecto. En esta línea de trabajo interesa analizar en qué medida la norma ISO 9001:2008 considera las buenas prácticas de la IR, para ello se estudiaron modelos de madurez de IR y se realizó una evaluación de proceso de IR antes y después de la certificación de la mencionada norma de calidad en las empresas del Polo IT Corrientes. Se concluye que la norma mejora el proceso de IR en ciertas áreas, pero no en todas. Actualmente, en base a los resultados obtenidos, se trabaja en la definición de procesos de IR que cumplan los requisitos de la norma ISO 9001:2008 y aseguren niveles altos de madurez de IR, basado en el modelo Uni-REPM.
Palabras clave: Ingeniería de Requerimientos. Certificación de Calidad. Madurez en la Ingeniería de Requerimientos. ISO 9001:2008.
Contexto
La línea de I/D presentada se desarrolla en el marco del proyecto F007-2009: “Modelos y métricas para la evaluación de la calidad de software”, acreditado por la Secretaría General de Ciencia y Técnica de la Universidad Nacional del Nordeste (UNNE).
Introducción
En el marco de la joven y dinámica industria del software en la Argentina, se promueve la certificación de calidad en el proceso de desarrollo de software como una forma de contribuir a incrementar la competitividad del sector productivo [1].
La Ley 25.922 de Promoción de la Industria del Software otorga beneficios impositivos a quienes la aplican, y tiene entre sus requisitos la certificación de calidad [2]. Entre las normas aplicables por esta
Ley se encuentran las que certifican procesos CMM, CMMI, ISO 9001, ISO/IEC 90003, IRAM 17601 (CMMI - SEI), ISO/IEC 15504, y la que certifica productos ISO/IEC 9126 [3].
Particularmente en la ciudad de Corrientes, Argentina, las empresas nucleadas en el Polo IT Corrientes, realizaron un proceso de implementación de la norma ISO 9001:2008 durante 12 meses [4].
Dentro de los procesos de desarrollo de software, la Ingeniería de Requerimientos (IR) es particularmente crítica debido a que los errores que se presentan en esta etapa originan inevitablemente problemas posteriores que afectan a todo el ciclo de vida del software [5] [6].
En los últimos años el ritmo de desarrollo de los productos se ha acelerado drásticamente, el cambio tecnológico y la rotación de personal han impactado en los niveles de experiencia de los profesionales, y el outsourcing y offshoring han cambiado el ciclo de vida del producto. Debido a esto las especificaciones de requerimientos deben ser precisas y detalladas [7]. Adicionalmente, se sabe que los requerimientos deficientes son la principal causa de fracaso de los proyectos de software [8]; y cuanto más tarde se descubre un error introducido en la etapa de requerimientos, mayor será el costo de su reparación [9].
Por todo lo expuesto, se considera relevante analizar el impacto que la certificación de la norma ISO 9001:2008 tuvo en las prácticas de IR, para lo cual se analiza el caso de las empresas del Polo IT Corrientes que certificaron dicha norma.
Uni-REPM (Unified Requirements Engineering Process Maturity Model)
Uni-REPM es un modelo que evalúa la madurez del proceso de IR de un proyecto a través de un conjunto de buenas prácticas [11]. La evaluación consiste en mapear las actividades ideales con el trabajo real de una organización.
Documentación, y Validación de Requerimientos. Cada área tiene subáreas, y cada subárea tiene acciones, que son las unidades más pequeñas de evaluación. Una acción, al ser evaluada, puede tener tres posibles estados: completa, incompleta o inaplicable. Una acción completa significa que la organización la tiene implementada, una acción incompleta significa que corresponde que la organización la implemente pero no lo hace, y una acción inaplicable es aquella que no corresponde ser evaluada en el marco de una organización específica, porque no es una actividad esencial en el negocio. En este último caso, por ejemplo, si sólo se desarrolla productos a medida, no correspondería evaluar las acciones propias de productos orientados al mercado. Se debe prestar especial atención con la asignación del valor 'inaplicable' a las acciones, ya que se podría sesgar el resultado si se la usa inapropiadamente.
El modelo propone tres niveles de madurez como resultado de la evaluación: 1-Básico, 2-Intermedio, y 3-Avanzado. El objetivo del primer nivel es asegurar que se definen procesos, y que éstos son aplicados por la organización, los stakeholders
relevantes son involucrados en la elicitación, los requerimientos se analizan en profundidad, y se predefinen documentos estándares. El nivel Intermedio trata diferentes perspectivas y está dirigido por las estrategias de producto/objetivos, las funciones y responsabilidades están bien definidas y documentadas, las solicitudes de cambio se gestionan consistentemente a los largo de todo el proyecto y la selección de requerimientos se realiza de manera sistemática. El nivel Avanzado representa el proceso de IR con mayor madurez, la mejora de proceso se ve en la forma avanzada de obtener los requerimientos, en asegurar su calidad, mantener las comunicaciones y la compresión común entre los diferentes
stakeholders, y evaluar proactivamente el proceso de toma de decisiones.
Para acceder a un nivel de madurez determinado se deben cumplir todas las acciones asociadas a dicho nivel, más las acciones de los niveles anteriores. Para un análisis más profundo se pueden analizar los niveles de madurez por área y subárea, en cuyo caso un área o subárea llegaría a un determinado nivel si se cumplen todas las acciones de ese nivel más el del nivel inmediato anterior. No todas las subáreas tienen acciones de los tres niveles, existen algunas cuyas acciones tienen como mínimo nivel dos, y otras cuyas acciones tienen como máximo nivel dos.
La creación de este modelo se basó en una revisión de literatura de los modelos REPM, CMMI e ISO 9000-TickIT y en una revisión sistemática de investigaciones de prácticas de IR orientadas al mercado. El modelo Uni-REPM fue validado en el contexto académico e industrial [12],[13].
Norma ISO 9001:2008
La norma ISO 9001 especifica los requisitos para un sistema de gestión de la calidad, cuando una organización necesita demostrar su capacidad para proporcionar regularmente productos que satisfagan los requisitos del cliente, los legales y reglamentarios aplicables, y aspira a aumentar la satisfacción del cliente a través de la aplicación eficaz del sistema, incluidos los procesos para la mejora continua del sistema y el aseguramiento de la conformidad con los requisitos del cliente, los legales y reglamentarios aplicables.
Todos los requisitos de esta Norma Internacional son genéricos y se pretende que sean aplicables a todas las organizaciones sin importar su tipo, tamaño y producto suministrado.
Para verificar que se cumplen los requisitos de la norma, existen entidades de certificación que auditan la implantación y mantenimiento, emitiendo un certificado de conformidad. Estas entidades están reguladas por organismos nacionales. En Argentina, el organismo que regula la actividad es el Instituto Argentino de Normalización y Certificación (IRAM).
Enfoque de procesos
Esta norma promueve la adopción de un enfoque basado en procesos cuando se desarrolla, implementa y mejora la eficacia de un sistema de gestión de calidad, para aumentar la satisfacción del cliente a través del cumplimiento de sus requisitos.
Un proceso puede ser considerado como una actividad o un conjunto de actividades que utiliza recursos, y que se gestiona con el objeto de que los elementos de entrada se transformen en resultados. Una organización que funciona de manera eficaz tiene que determinar y gestionar numerosas actividades relacionadas entre sí.
Un enfoque basado en procesos es el nombre que se le puede dar a la aplicación de un sistema de procesos dentro de la organización, junto con la identificación e interacciones de tales procesos, así como su gestión para producir el resultado deseado.
Un enfoque de este tipo, cuando se utiliza dentro de un sistema de gestión de la calidad, enfatiza la importancia de: la comprensión y el cumplimiento de los requisitos, la necesidad de considerar los procesos en términos que aporten valor, la obtención de resultados del desempeño y eficacia del proceso, y la mejora continua de los procesos con base en mediciones objetivas.
Líneas de investigación y desarrollo
La presente línea de investigación está orientada principalmente en:
1. Estudio y evaluación de modelos de madurez aplicados a procesos de Ingeniería de Requerimientos.
2. Caracterización de las empresas de software nucleadas en el Polo IT Corrientes, en cuanto a tipo de actividad, recursos humanos, proceso definidos, entre otros.
3. Evaluación de proyectos software realizados antes y después de la certificación ISO 9001. en cuanto a las mejoras logradas luego de los procesos de certificación ISO 9001:2008.
4. Definición de procesos de desarrollo que cumplan con las recomendaciones de los modelos de madurez de la Ingeniería de Requerimientos, con vistas a procesos de certificación ISO 9001.
Resultados y Objetivos
Para cumplir con los objetivos de la investigación, se propusieron las siguientes actividades:
- Análisis comparativo de modelos de evaluación de procesos de IR y selección de un modelo de referencia.
- Diseño e implementación de instrumentos de recolección de información para la caracterización de las empresas de software seleccionadas para la investigación.
- Evaluación de proyectos de software pre y post certificación en las empresas seleccionadas, aplicando el modelo Uni-REPM.
Análisis comparativo de modelos de evaluación de procesos de IR
Para encontrar el modelo que mejor se adecúe a la evaluación de la madurez del proceso de IR se realizó una investigación documental exploratoria vinculada a los conceptos de IR. Los criterios de
búsqueda privilegiaron los términos
“Requirements Engineering Process Maturity Models”, “Requirements Engineering Process Maturity”, entre otros relacionados. La selección de artículos se orientó a modelos específicos de IR, y que además ofrecieran una metodología de evaluación del proceso de IR.
Los modelos estudiados fueron: REGPG, R-CMM y R-CMMi, REPM, MDREPM, Uni-REPM. El análisis comparativo resultante de dichos modelos se detalla en [10].
El resultado más importante del análisis fue la selección de Uni-REPM como modelo de referencia, por los siguientes motivos:
- Evalúa proyectos,esto constituye una ventaja para el estudio a realizar, dado que se tomarán proyectos de referencia para evaluar el proceso de IR en cada uno de ellos, antes y después del proceso de certificación de calidad.
- Unifica prácticas de IR para desarrollo a medida y desarrollo orientado al mercado, y las empresas a evaluar presentan desarrollos de ambos tipos.
- Presenta facilidad de evaluar y calificar, es sencillo llevar adelante un proceso de evaluación a través de una lista de verificación que otorga el modelo, y el proceso de calificación es simple.
Caracterización de empresas
En cuanto a la caracterización de las empresas de software, se realizaron entrevistas a dichas organizaciones entre los meses de mayo y junio de 2012. En la mayoría de los casos quienes respondieron fueron los gerentes o directores de las empresas. Como resultados destacados se puede mencionar que todas las empresas son de Corrientes Capital, provincia de Corrientes, Argentina, e iniciaron sus operaciones entre el año 2000 y el 2008.
El principal servicio ofrecido por estas empresas es el desarrollo de software a medida, seguido por la implementación y puesta a punto de productos de software, y el soporte y asistencia de productos de software. También ofrecen actualización de productos de software y otros servicios relacionados, entre los que figuran capacitación, alojamiento de sitios web, y streaming de audio y video. Le sigue el desarrollo de productos de software (enlatados), servicios informáticos de valor agregado (consultorías), y en menor medida servicios brindados mediante el uso de software, y desarrollo de software embebido en equipos electrónicos.
En cuanto al rubro de productos, el 80% de las empresas se orienta al comercio, el 60% de las empresas ofrece soluciones para el sector público, un 40% lo hace para el sector primario, industria de la construcción, finanzas y seguros, transporte, comunicaciones e inmobiliarios; un 20% de las empresas cubre necesidades de software de la industria manufacturera, hotelería y restaurantes. La cantidad promedio de empleados por empresa es de diez, de los cuales el 92% se encuentra trabajando en el lugar físico de la empresa, y un 8% a distancia. De ellos un 48% trabaja a tiempo completo y un 52% a tiempo parcial, dos empresas tienen la mayor parte del personal a tiempo completo, y tres tienen la mayor parte a tiempo parcial.
universitario relacionado a los Sistemas de Información, los Licenciados en Sistemas representan el 30,77%, los Ingenieros en Sistemas son el 21,15%, le siguen con un 19,23% los Analistas de Sistemas o Programadores de Aplicaciones, 11,54% son Técnicos, 5,77% Diseñadores Gráficos, 5,77% estudiantes, y 5,77% corresponde a otro nivel de instrucción, relacionados a la administración, marketing, o área comercial de la empresa.
Evaluación de proyectos con el modelo Uni-REPM
Para la aplicación del modelo Uni-REPM se solicitó a las empresas que seleccionen dos proyectos de software, uno realizado antes de la certificación de la norma ISO 9001:2008, y otro ejecutado después de la aplicación de la mencionada norma.
El 60% de las empresas seleccionó un proyecto de desarrollo a medida y el 40% eligió un proyecto de adaptación de un producto propio existente, todas las empresas eligieron el mismo tipo de proyecto para el caso de precertificación y poscertificación. En cuanto al punto de partida para obtener los requerimientos del proyecto, en los proyectos precertificación fueron los requerimientos del cliente en un 100% y en los proyectos poscertificación fueron en un 60% los requerimientos del cliente, y en el 40% restante el punto de partida fue una combinación de los requerimientos del cliente con las posibilidades del mercado.
En relación al modelo de ciclo de vida aplicado a los proyectos, en los de precertificación se impuso el modelo incremental con un 60%, mientras que el 40% restante siguió un modelo en cascada. Los proyectos de poscertificación se llevaron adelante con un modelo de ciclo de vida incremental (40%), iterativo (40%) y en cascada (20%).
La duración de los proyectos fue de 1 a 18 meses, pero la diferencia entre los proyectos de precertificación y de poscertificación en una misma empresa estuvo entre los 0 y 6 meses. La cantidad de personas involucradas en los proyectos varió de 2 a 6 personas por proyecto.
En referencia a los roles del equipo de desarrollo, en los proyectos de precertificación todos contaban con desarrolladores y líder de proyecto, un 60% de los proyectos incluyó el rol de analista de sistemas o requerimientos, un 40% el rol de responsable de interfaz de usuario y tester, y un 20% contó con documentador y otros roles. Para los proyectos de poscertificación todos contaron con líder de proyecto, desarrollador, analista de sistemas o requerimientos, tester, y documentador; un 80% de los proyectos cubrió el rol de responsable de interfaz de usuario, y un 20% mencionó contar con otros roles, como implementador y capacitador.
Análisis de los resultados
El detalle de los resultados se describen en [15], entre estos se destaca que la certificación de la norma ISO 9001:2008 en las empresas del Polo IT mejoró las prácticas de IR, aunque tal mejora no fue suficiente para obtener un nivel de madurez mínimo del proceso de IR bajo el modelo Uni-REPM.
Sin embargo, se destaca que las empresas mejoraron significativamente en los tres niveles de madurez propuestos por el modelo Uni-REPM. La mejora más significativa a raíz de la certificación se dio en las áreas Apoyo de la Organización y Documentación y Especificación de Requerimientos, y en las subáreas Acciones Generales y Comunicación y Negociación de Requerimientos del área Gestión de Requerimientos, en éstas, todas las empresas del Polo IT Corrientes, alcanzaron al menos el nivel 1 de madurez del proceso de IR según el modelo Uni-REPM.
Se presentaron mejoras parciales en las áreas: Elicitación de Requerimientos, Planificación del Lanzamiento y Validación de Requerimientos; y en las subáreas Gestión de la Configuración y Política de Trazabilidad de Requerimientos del área Gestión de Requerimientos, es decir, sólo algunas empresas del Polo IT Corrientes mejoraron.
La certificación no afectó el área Análisis de Requerimientos, no produjo mejora ni retroceso en las prácticas incluidas en el área.
En cuanto a las prácticas de IR, 19 de ellas fueron mejoradas luego de la certificación. Estas representan un 26% sobre el total de acciones propuestas por Uni-REPM.
La mejora en algunas prácticas se debe a que las empresas las incluyeron en la definición de sus procesos, pero otras se dieron porque la norma ISO 9001:2008 establece:
- Una serie de requisitos en torno a la comprensión y cumplimiento de los requerimientos del producto para lograr la satisfacción del cliente.
- Que la organización debe determinar los requisitos especificados por el cliente, los no especificados pero necesarios para la realización del producto, los legales y reglamentarios.
- Que la organización debe asegurarse de la disponibilidad de recursos e información necesarios para apoyar la operación y el seguimiento de los procesos.
- Que la organización debe dejar registros de los requerimientos del cliente en cuanto al producto, y de los cambios en los requerimientos del cliente.
con el cliente relacionada a la información del producto.
- La revisión y validación de los requerimientos del producto.
Por todo lo expuesto, se concluye que la norma ISO 9001:2008, como norma genérica que establece ciertos requisitos, favorece el cumplimiento de las buenas prácticas más generales en cuanto a la gestión de procesos en una organización. Sin embargo, las prácticas más específicas de la Ingeniería del Software, y en particular de la IR, deben ser incluidas en la definición de los procesos de desarrollo por parte de las organizaciones, para que sean consideradas en el proceso de certificación.
Si la organización incluyera las buenas prácticas de la IR en la definición de sus procesos, entonces podría alcanzar niveles altos de madurez del proceso de IR bajo la certificación de la norma ISO 9001:2008.
En la actualidad, se trabaja en el análisis profundo de las prácticas propuestas por el modelo Uni-REPM, con el objetivo de definir un proceso de desarrollo de requerimientos de software que incorpore las buenas prácticas definidas en dicho modelo, y que además resulte aplicable a empresas de características similares a las del Polo IT Corrientes.
Formación de Recursos Humanos
.
Dentro del marco de esta línea de investigación se ha desarrollado un Trabajo Final Integrador de la Especialidad en Ingeniería de Software de la UNLP, a partir del cual se plantea el plan de actividad para el desarrollo de la tesis de la Maestría en Ingeniería de Software de la misma universidad, bajo la dirección de docentes investigadores de la Facultad de Informática de la UNLP y la FaCENA-UNNE, propiciando la vinculación interinstitucional orientada a la formación de recursos humanos.
Referencias
[1] Cámara de Software y Servicios Informáticos - CESSI: Propuestas para el Plan de acción 2008-2011,
http://www.cessi.org.ar/documentacion/PLA N-2008-2011_Documento_Principal_11.pdf. [2] Ley 25.922 - Ley de Promoción de la
Industria del Software, www.mincyt.gob.ar/multimedia/archivo/archi vos/ley_25922_3.pdf.
[3] Secretaría de Industria Comercio y de la Pequeña y Mediana Empresa: Resolución 61/2005:
http://infoleg.mecon.gov.ar/infolegInternet/an exos/105000-109999/106061/norma.htm, (2005).
[4] Polo IT Corrientes: Pymes correntinas de Software y Servicios Informáticos certificaran en Calidad, http://poloitcorrientes.com/noticia.php?i=052 29, (2009).
[5] Sommerville, I.: Software Engineering. Addison-Wesley (2005).
[6] Loucopoulos, P., Karakostas, V.: System Requirements Engineering. McGraw-Hill (1995).
[7] Berenbach, B., Paulish, D.J., Kazmeier, J., Rudorfer, A.: Software & Systems Requirements Engineering: In Practice. McGraw-Hill Osborne Media (2009).
[8] Hofmann, H.F., Lehner, F.: Requirements engineering as a success factor in software projects. IEEE Software. 18, 58-66 (2001). [9] Mizuno, Y.: Software Quality Improvement.
Computer. 16, 66-72 (1983).
[10] Arruzazabala, M., Dapozo, G., Thomas, P.: Análisis comparativo de modelos de evaluación de procesos de Ingeniería de Requerimientos, II Jornadas de Investigación en Ingeniería del NEA y Países Limítrofes,
http://www.frre.utn.edu.ar/IIJCyT/clean/files/ get/item/2186, (2012).
[11] Nguyen, T.T.L.: The creation of Uni-REPM A universal model for assessing requirements engineering process maturity, Blekinge Institute of Technology, (2010).
[12] Svahnberg, M., Gorschek, T., Nguyen, T.T.L., Nguyen, M.: Uni-REPM: validated and improved. Requirements Engineering - Springer London. 17, 19 (2012).
[13] Nguyen, M.: Empirical Evaluation of a Universal Requirements Engineering Process Maturity Model, Blekinge Institute of Technology, (2010).
[14] IRAM: IRAM | Instituto Argentino de Normalización y Certificación, http://www.iram.org.ar/seccion.php?ID=3&I DS=42. Accedido el 10 de Mayo de 2012.