c1.jpg

Modelo de madurez
de ingeniería del software

Francisco José Pino Correa
Mario Piattini Velthuis
Carlos Manuel Fernández Sánchez

aenoredicionest_bn.jpg

Créditos

Título: Modelo de madurez de ingeniería del software. ePUB

Autores: Francisco José Pino Correa, Mario Piattini Velthuis y Carlos Manuel Fernández Sánchez

© AENOR (Asociación Española de Normalización y Certificación), 2014

Todos los derechos reservados. Queda prohibida la reproducción total o parcial en cualquier soporte, sin la previa autorización escrita de AENOR.

ISBN: 978-84-8143-869-7

Impreso en España - Printed in Spain

Edita: AENOR

Maqueta y diseño de cubierta: AENOR

Nota: AENOR no se hace responsable de las opiniones expresadas por los autores en esta obra.

logoAENOR.jpg

Génova, 6. 28004 Madrid • Tel.: 902 102 201 • Fax: 913 103 695
comercial@aenor.eswww.aenor.es

Dedicatoria

A Fabián David, Francisco David, Isabel Sofía y Andrés Fabián por su cariño incondicional y a quienes auguro muchos éxitos en sus vidas.

Francisco José Pino Correa

A Pere Botella y Gonzalo Cuevas, pioneros de la ingeniería del software en nuestro país, por haberme introducido en este mundo y por los más de 25 años de enseñanzas.

Mario Piattini Velthuis

A mis alumnos y ex alumnos, en agradecimiento a su atención y consideración de mis razonamientos y explicaciones sobre el control interno en la ingeniería del software.

Carlos Manuel Fernández Sánchez

Agradecimientos

Querríamos expresar nuestro agradecimiento, en primer lugar, a Boris Delgado de AENOR, Javier Garzás de Kybele Consulting, s.l. y Moisés Rodríguez de Alarcos Quality Center, s.l., por su colaboración en la elaboración y aplicación de este modelo de madurez. A Harold Bocanegra por su valioso aporte en la identificación de artefactos directos e indirectos relacionados con cada uno de los atributos de proceso del modelo.

A las empresas que han implantado y certificado este modelo, y a los auditores de AENOR y de entidades colaboradoras, por su trabajo de campo y colaboración constante.

A la Dirección de Servicios de Información y al Departamento Editorial de AENOR por su ánimo y apoyo constantes, haciendo posible que esta publicación concluyera con éxito.

Francisco José Pino Correa
Mario Piattini Velthuis
Carlos Manuel Fernández Sánchez

Introducción

Desde hace varios años se viene insistiendo en la “crisis” de la ingeniería del software y en los desastres que los fallos de los productos software pueden llegar a causar en las organizaciones [Piattini et al., 2014]. En la evolución experimentada por la calidad de los sistemas informáticos se ha pasado de un tratamiento centrado fundamentalmente en la inspección y detección de errores en los productos software, a una aproximación más sistémica que considera otros componentes organizacionales que afectan a la calidad del software, y especialmente a los procesos de software. En efecto, en la actualidad, la calidad de cualquier producto software no puede ser asegurada simplemente probando el producto [Satpathy y Harrison, 2002]: es importante considerar que existe una correlación directa entre la calidad del producto obtenido y la calidad del proceso utilizado para su desarrollo [Fuggeta, 2000]. En este sentido, en los últimos años se han publicado diversos estudios y estándares en los que se exponen las buenas prácticas que se deben seguir para la mejora de la calidad de los diferentes componentes de los sistemas informáticos: procesos, proyectos, productos, servicios, etc.

El proceso software es un conjunto de actividades, métodos, prácticas y transformaciones que se utilizan para desarrollar y mantener el software y los productos asociados (por ejemplo, planes de proyecto, documentación de diseño, código, casos de prueba, manuales de usuario, etc.) [SEI, 1995]. Las organizaciones desarrolladoras de software que siguen un enfoque orientado a procesos software pretenden llevar a cabo la construcción de sus productos software de una manera sistemática y coherente, estableciendo claramente quién (rol) realiza qué (tarea) y con qué lo realiza (tecnología), a fin de obtener unas salidas (productos de trabajo) a partir de unas entradas (productos de trabajo). Las tareas representan el esfuerzo a realizar, los roles representan quién lo realiza, la tecnología representa con que se realizan, y los productos de trabajo representan las entradas que se utilizan en las tareas y las salidas que se producen.

Seguir un enfoque orientado a procesos para el desarrollo de software permite a las organizaciones visualizar y organizar su “quehacer” buscando aprovechar al máximo los recursos con los que cuentan con el fin alcanzar sus objetivos estratégicos, los cuales pueden englobarse en perspectivas, como: tener finanzas saneadas, obtener la satisfacción de sus clientes (ya sean internos o externos), lograr el crecimiento y aprendizaje de los miembros, y generar productos y servicios de calidad. Si bien cada organización establece sus propios objetivos, todos ellos convergen en el deseo de ser una organización eficiente y eficaz, lo cual implica minimizar tiempos de ejecución de los procesos, disminuir costos y lograr mejor calidad en los proyectos y productos [Oktaba et al., 2008].

Sin embargo, para lograr influir en los objetivos organizacionales, los procesos software deben tener una alta calidad. En este sentido, los requisitos de calidad más significativos de los procesos software son: (i) que produzcan los resultados esperados, (ii) que estén basados en una correcta definición, y (iii) que sean mejorados en función de los objetivos de negocio, muy cambiantes ante la gran competitividad actual de las empresas. Actualmente la calidad de software ha cobrado mayor importancia en las organizaciones por su influencia en los costos finales, como elemento diferenciador de la competencia y elemento de imagen para los clientes [Piattini y Garzás, 2010].

Para que una organización desarrolladora de software obtenga los beneficios de un enfoque orientado a procesos, estos deben ser de calidad. Un proceso software de calidad implica que el mismo incorpora las responsabilidades (prácticas) claves de gestión de procesos como son: definir el proceso, medir el proceso, controlar el proceso y mejorar el proceso [Florac y Carleton, 1999]. La incorporación de estas responsabilidades o prácticas de gestión permite incrementar gradualmente la capacidad del proceso, y por tanto su calidad, con el fin de tener un activo organizacional relevante que apoye la consecución de los objetivos de negocio. Además, incrementar la capacidad de los procesos de una organización desarrolladora de software conlleva el incremento de su madurez organizacional, llevándola desde un nivel de organización inmadura al de organización madura. Una organización inmadura no tiene un enfoque orientado a procesos (o estos son de baja calidad), y se caracteriza por ciertos factores: el éxito depende de “héroes”, sufre altibajos en la productividad, tiene alta rotación de recursos, las planificaciones son poco realistas, existe mucho esfuerzo en mantenimiento y hay empleados descontentos. Por su parte, una organización madura tiene procesos definidos y gestionados, el conocimiento está en la organización, entrega el software con la calidad esperada, cumple los plazos, satisface a los clientes y los empleados están satisfechos. Sin embargo, la industria del software está poco madura en el control de la calidad del software, aunque este constituye un factor fundamental en la competitividad y productividad de las organizaciones [Fernández y Piattini, 2012].

AENOR ha contribuido a la industria software mediante la certificación e implantación de diferentes normas en el campo de las tecnologías de la información y la comunicación (TIC) por medio de la definición del modelo integrado y dinámico para el gobierno y gestión de las TIC [Fernández y Piattini, 2012], (véase la figura I.1). Gracias a este modelo de gobierno y gestión para las TIC de AENOR, los responsables de los CPD (Centros de Procesos de Datos) o servicios informáticos pueden entender los beneficios de la certificación, conocer cuál es la más adecuada para cada caso, ordenar sus prioridades, organizar su estructura y, quizás lo más importante, alinear sus objetivos y sus respuestas con los propios objetivos y necesidades del plan estratégico global de la organización.

fig_I-1.jpg

Figura I.1. Modelo de gobierno y gestión de las TIC propuesto por AENOR

Básicamente, el modelo propone dos certificaciones para la parte de gobierno corporativo de las TIC y del sistema de gestión de la continuidad del negocio (UNE-ISO 22301 y UNE-ISO/IEC 38500). El área puramente de gestión es dividida en dos campos: los sistemas de gestión de servicios de TI (SGSTI) (UNE-ISO/IEC 20000-1) y los sistemas de gestión de la seguridad de la información (SGSI) (UNE-ISO/IEC 27001). Con la implantación del SGSTI (UNE-ISO/IEC 20000-1) se alcanza la calidad en los servicios de las TIC considerando los objetivos del negocio. Con la implantación del SGSI (UNE-ISO/IEC 27001) se logra gestionar los riesgos de los sistemas de información y, por tanto, la seguridad de los mismos. Esto conlleva minimizar los posibles riesgos de las TIC, y devolver calidad y confianza a los sistemas de información.

El segundo campo del área de gestión es donde se agrupan las actividades de desarrollo de programas enfocado a la calidad del software (modelo de evaluación y madurez del software en ISO/IEC 15504 SPICE; y procesos del ciclo de vida en ISO/IEC 12207 y UNE-ISO/lEC 19770-1 Tecnología de la Información. Gestión de activos de software (SAM). Parte 1: Procesos). Este modelo puede ser complementado con la serie de normas ISO/lEC/IEEE 29119 sobre pruebas de software.

El modelo de madurez de ingeniería del software de AENOR (basado en las normas ISO/IEC 15504 e ISO/IEC 12207), ofrece una herramienta eficaz que contribuye a mejorar la calidad del desarrollo del software en todo tipo de organizaciones. Uno de los principales objetivos del modelo es simplificar y reducir la complejidad y el coste de implementación de dichas normas en las organizaciones desarrolladoras de software, así como lograr una mayor agilidad, adaptación e integración con los procesos y metodologías de las mismas.

En este libro describimos el modelo de madurez de ingeniería del software de AENOR para ayudar a su utilización e implantación en las organizaciones de software. El capítulo 1 describe una visión general de las normas ISO utilizadas para la creación del modelo. El capítulo 2 despliega el modelo de madurez de ingeniería del software, mientras que el capítulo 3 ofrece una guía de implementación del modelo. En el capítulo 4 se muestra una comparación entre el modelo de madurez de AENOR y CMMI-DEV, y, finalmente, las conclusiones se describen en el capítulo 5. También se incluyen en el anexo A evidencias e indicadores para alcanzar los niveles 1, 2 o 3 de capacidad del proceso.