Mejora de los Procesos de Desarrollo Software Visión Práctica Máster Oficial en Ingeniería y Tecnología del Software Universidad de Sevilla
Instituto Nacional de Tecnologías de la Comunicación
Índice Presentación Parte 1 Introducción – Calidad del Software Parte 2 Mejora de los Procesos de Desarrollo Software Parte 3 Proyecto de Mejora de Procesos de Desarrollo Software Fuentes / Contacto
2
Índice Parte 1: Introducción – Calidad del Software Elementos que influyen en la calidad del software Niveles de gestión de la calidad Normas, modelos y metodologías Diagnóstico de la calidad del software en España Caso particular: La PYME en España Situación actual
3
Introducción – Calidad del Software Elementos que influyen en la calidad del software
Procesos
Herramientas
Personas
Calidad del Software 4
Introducción – Calidad del Software Niveles de gestión de la calidad (1) A nivel de producto: Cuando nos centramos en el proceso de desarrollo de software y hacemos una serie de pruebas en paralelo con cada etapa, para detectar y corregir los posibles defectos que puedan surgir.
A nivel de proyecto: Cuando nos centramos en controlar todas las fases y áreas de gestión de proyecto, implantando metodologías y mejores prácticas que aseguren la correcta gestión de las mismas.
A nivel de proceso: Cuando nos centramos en gestionar todas las áreas de proceso de una organización, mediante la implantación de una metodología. Así se consigue tener mayor información de los procesos de modo que puedan controlarse y mejorarse, y produzcan así un aumento de la calidad de los productos y servicios relacionados con ellos.
La mejora de la calidad en un nivel repercute en el resto de niveles
5
Introducción – Calidad del Software Niveles de gestión de la calidad (2)
6
Introducción – Calidad del Software Normas, modelos y metodologías NORMAS, MODELOS Y METODOLOGÍAS
Orientadas a Proceso
CMMI
Orientadas a Producto
TPI/TMAP
ISO/IEC 9126
ISO/IEC 14598
ISO/IEC 25000
ISO 9000
ISO/IEC 15504
RUP
Métrica 3
Otros ITMark
SwTQM
Métodos ágiles 7
Introducción – Calidad del Software Diagnóstico de la calidad del software en España (1) La percepción de la empresa española es que los modelos más aplicables son CMMI, símbolo de la certificación de calidad aplicada al software por excelencia, y SPICE, adoptado por ISO como estándar ISO/IEC 15504.
Un 37% de las empresas conocen CMMI frente a un 51% que lo hace de la ISO/IEC 15504. CMMI es utilizado por un 38% de las empresas frente a un 8% que utiliza ISO/IEC 15504. Un 69,2% de los entrevistados señalan CMMI como primera opción a la hora de elegir un modelo para su implantación frente a un 23% que muestran interés por la ISO/IEC 15504.
Fuente: “Estudio sobre la certificación de la calidad como medio para impulsar la industria de desarrollo del software en España” – INTECO (2008) 8
Introducción – Calidad del Software Diagnóstico de la calidad del software en España (2) De los resultados del estudio se deduce un gran desconocimiento de las propuestas metodológicas y herramientas existentes.
Dos de cada tres encuestados de la demanda (64,8%), y uno de cada tres de la oferta (37,6%), no tienen conocimiento alguno sobre estándares, normas oficiales y metodologías orientadas a la calidad del software. Desde el punto de vista de la oferta, los profesionales de la microempresas y de la PYME tienen un menor conocimiento de las metodologías, estándares y normas de calidad del software, frente a los profesionales de las grandes empresas.
Fuente: “Estudio metodologías y herramientas empleadas en los proyectos software en España y su repercusión sobre la calidad de los productos y servicios finales” - INTECO (2008) 9
Introducción – Calidad del Software Caso particular: La PYME (1) La PYME (especialmente las microempresas) tiene un peso específico muy importante en el sector de desarrollo de software en España.
La estructura del sector software se compone en un 99,8% de PYME, de las que más del 85% son microempresas de menos de 10 empleados. En España existen en la actualidad 32.023 empresas dedicadas a actividades informáticas. Un total de 31.905 (el 99,63% del total) son PYME.
Fuente: “Estudio sobre la certificación de la calidad como medio para impulsar la industria de desarrollo del software en España” – INTECO (2008)
10
Introducción – Calidad del Software Caso particular: La PYME (2) Existe desconocimiento de los modelos de mejora de procesos o producto existentes.
Un 86% de los entrevistados desconoce los modelos de mejora (procesos/producto) aludiendo falta de información. En caso de conocer los modelos, la sensación de “pionero” en este campo provoca rechazar la posibilidad de certificación (respuesta de un 65% de entrevistados).
Fuente: “Estudio sobre la certificación de la calidad como medio para impulsar la industria de desarrollo del software en España” – INTECO (2008)
11
Introducción – Calidad del Software Situación actual (1)
ESPAÑA: 155
MÉXICO: 68
BRASIL: 117
REINO UNIDO: 100
FRANCIA: 153
Fuente: Software Engineering Institute (SEI) 2009 12
Introducción – Calidad del Software Situación actual (2) 2004
2005
2006
2007
2008
2009
PLAN AVANZA
TOTAL
NIVEL 1
NIVEL 2
NIVEL 3
NIVEL 4
NIVEL 5
2004
10 o MENOS
-
-
-
-
-
2005
10 o MENOS
-
-
-
-
-
2006
25
NO
SI
SI
NO
SI
2007
55
NO
SI
SI
SI
SI
2008
85
1
53
25
1
3
2009
155
1
93
48
3
4
Fuente: Software Engineering Institute (SEI) 2009 13
Índice Parte 2: Mejora de los Procesos de Desarrollo Software Modelos de calidad: procesos y productos Mejora de la calidad de los procesos CMMI-DEV – SCAMPI ISO/IEC 12.207 – ISO/IEC 15.504 CMMI-DEV vs ISO/IEC 15.504 Modelos orientados a PYME
A nivel internacional
A nivel nacional
Caso de estudio: Proyecto COMPETISOFT 14
Mejora de los Procesos de Desarrollo Software Modelos de calidad: procesos y productos TSP/PSP MÉTRICA v3
CMMIDEV
ISO/IEC 9126 MSF
RUP
ISO/IEC 15.504
TickIT
6-SIGMA
Orientación a Procesos
TPI/TMAP
Orientación a Producto
ISO/IEC 14.598
SCRUM
SwTQM
ISO 9000
XP DSDM
ITMark
ISO/IEC 25.000
AUP
“Quality Principle: The quality of a product is determined by the quality of the process used to develop it”. (Humphrey, W. H. 2005) 15
Mejora de los Procesos de Desarrollo Software Mejora de la calidad de los procesos (1) ORGANIZACIÓN INMADURA
ORGANIZACIÓN MADURA
Formada por héroes y apagafuegos
Procesos definidos y gestionados
Con altibajos en la productividad
Mejora en la detección temprana de errores
Fuerte rotación de recursos Con planificaciones y estimaciones poco realistas
Reducción de errores en los productos desarrollados (poco mantenimiento) Planificaciones y estimaciones realistas
Dedicación de mucho esfuerzo en mantenimiento
Cumplimiento de plazos y presupuestos
Incumplimiento de plazos y presupuestos
Incremento de la productividad
Baja calidad de los productos desarrollados
Calidad de los productos desarrollados (satisfacción del cliente)
16
Mejora de los Procesos de Desarrollo Software Mejora de la calidad de los procesos (2)
Mejora de la Calidad de los Procesos Modelos (de Referencia) de Procesos
CMMI-DEV
ISO/IEC 12.207
Modelos de Evaluación de Procesos
SCAMPI
ISO/IEC 15.504
17
Mejora de los Procesos de Desarrollo Software CMMI-DEV - SCAMPI CMMI-DEV: Modelo de Procesos Modelo propietario del SEI (Software Engineering Institute) Evolución de CMM (finales de los 80). Actualmente: CMMI-DEV v1.2 Tres constelaciones del modelo: CMMIDEV, CMMI-ACQ y CMMI-SVC Dos representaciones: 1. Escalonada (por etapas), cinco niveles de madurez organizacional, 2. Continua, capacidad de los procesos No existe un proceso de certificación (no es una norma)
SCAMPI: Método de Evaluación Lead Appraisers: profesionales reconocidos por el SEI que evalúan frente al Modelo de Procesos (CMMI-DEV) ARC (Appraisal Requirements for CMMI): documento de principios de evaluación SCAMPISM (Standard CMMI Appraisal Method for Process Improvement): documento de definición del método Tipos de revisiones bajo SCAMPI: clase A, clase B y clase C. Puntuación de implementación de prácticas: FI, LI, PI y NI.
18
Mejora de los Procesos de Desarrollo Software ISO/IEC 12.207 – ISO/IEC 15.504 ISO/IEC 12.207: Modelo Procesos
ISO/IEC 15.504: Modelo Evaluación
Norma internacional. Última versión ISO/IEC 12.207: 2008: modelo de procesos para el ciclo de vida del SW.
Norma internacional compuesta por 7 partes: normativas (1, 2 y 7) y no normativas (3, 4, 5 y 6).
Dos grupos de procesos: Contexto del Sistema (4 subgrupos): procesos de acuerdo, procesos organizacionales de proyecto, procesos de proyecto y procesos técnicos. Específicos del Software (3 subgrupos): procesos de implementación del software, procesos de soporte del software y procesos de reutilización del software.
Actualmente en desarrollo las partes 8, 9 y 10 y la evolución de la norma a la familia de normas 33.xxx.
Alineada con ISO/IEC 15.288: 2008: procesos del ciclo de vida del Sistema.
Tipos de evaluaciones: Niveles de capacidad, a nivel de proceso (6 niveles): incompleto, realizado, gestionado, establecido, predecible y optimizado. Niveles de madurez, a nivel de organización (6 niveles): inmadura, básica, gestionada, establecida, predecible y optimizando. 19
Mejora de los Procesos de Desarrollo Software CMMI-DEV vs ISO/IEC 15.504 Popularidad: CMMI-DEV es más popular (a nivel nacional) que ISO/IEC 15.504. Adaptabilidad: Constelaciones CMMI (CMMI-DEV, CMMI-ACQ y CMMI-SVC, 16 áreas de proceso comunes) – Áreas de aplicación de ISO/IEC 15.504 (SPICE-AUTOMATIVE, medicina, banca, etc.) Dinamismo: CMMI-DEV propiedad del SEI, adaptaciones rápidas. ISO/IEC 15.504, norma internacional, las modificaciones son aprobadas a nivel internacional (comités, subcomités y grupos de trabajo), evolución de la norma hacia la familia de normas 33.xxx – 2011. Idioma: CMMI-DEV v1.2 en castellano. ISO/IEC 15.504, no existe versión en castellano (de forma oficial, como norma UNE). Propuesta del AEN/CTN71/SC7/GT7 a AENOR para la traducción de ISO/IEC 12.207:2008 (existen versiones en varios países iberoamericanos). Propiedad: CMMI no está avalado por una organización internacional como ISO (no es un estándar internacional), es un estándar de facto de uso internacional. Equivalencia: Las áreas de proceso de CMMI-DEV e ISO/IEC 15.504 no son 100% equivalentes, pero es posible llevar a cabo procesos de adaptación para alinear ambos modelos. 20
Mejora de los Procesos de Desarrollo Software Modelos orientados a PYME – A nivel internacional (1) PROSOFT (México) Programa para el Desarrollo de la Industria del Software (Secretaría de Economía). Modelo de Referencia de Procesos (MoProSoft) y Método de Evaluación de Procesos (EvalProSoft), basado en ISO/IEC 15.504-2.
PBQP-Software (Brasil) Programa PBQP-Software – Proyecto MPS.BR (Melhoria do Processo de Software Brasileiro). Modelo de Referencia de Procesos (MR-MPS), Modelo de Evaluación de Procesos (MA-MPS), alineado con ISO/IEC 15.504-2 y Modelo de Negocio (MN-MPS).
SIMEP-SW (Colombia) Marco de trabajo Agile-SPI: Modelo de Referencia de Procesos (Light Quality Model), Modelo de Evaluación de Procesos (Light Evaluation Model) y Modelo de Medidas de Proceso (Light Metrics Model)
Características comunes Objetivo final: adaptabilidad a la PYME 21
Mejora de los Procesos de Desarrollo Software Modelos orientados a PYME – A nivel internacional (2)
IPSS (Improving Processes in Small Setting) Consorcio Internacional de Investigación de Procesos (IPRC) Mejora de Procesos en Small Settings: proyectos pequeños (< 20 personas), pequeñas organizaciones (< 50 personas) y pequeñas empresas (< 100 personas).
ISO/IEC 29110 (Lifecycle Profiles for Very Small Enterprises) Grupo de trabajo ISO: SC7-WG24 Mejora de Procesos en Very Small Enterprises (< 25 personas)
Visión General – TR 29110-1 Perfiles ISP – ISP 29110-2, ISP 29110-4 Guías TR – TR 29110-3, TR 29110-5 22
Mejora de los Procesos de Desarrollo Software Modelos orientados a PYME – A nivel nacional ITMark (ESI) Método que mejora de forma integrada los procesos de negocio, de desarrollo y de seguridad de la información de una organización. Tres niveles de madurez: ITMark Básico, ITMark Premium e IT Mark Elite.
Guía de implementación de ISO/IEC 15.504 (AENOR) Conforme con las partes normativas de la norma ISO/IEC 15.504 (partes 1, 2 y 7) y con la última versión del modelo de procesos ISO/IEC 12.207:2008. Facilita la integración con otras normas ISO: ISO 9001, ISO/IEC 27001 e ISO/IEC 20000, está alineada con la futura norma ISO/IEC 29110 y cumple la norma ISO/IEC 17021.
23
Mejora de los Procesos de Desarrollo Software Caso de estudio: Proyecto COMPETISOFT (1) ISO/IEC 15.504-2
Normas/Modelos internacionales
Modelo Evaluación Procesos
MoProSoft
Modelo Mejora Procesos
Modelo Referencia Procesos
Agile SPI
COMPETISOFT
24
Mejora de los Procesos de Desarrollo Software Caso de estudio: Proyecto COMPETISOFT (2) Modelo Referencia Procesos
Alta Dirección
Gestión de Negocio
Gestión
Operación
Gestión de Procesos
Administración Proyecto
Gestión de C. Proyectos
Desarrollo Software
Gestión de Recursos
Mantenimiento Software
Gestión de RRHH Gestión de Bienes, Servicios e Infraestructura Gestión del Conocimiento 25
Índice Parte 3: Proyecto de Mejora de los Procesos de Desarrollo Software Necesidad de mejora – FAQ Pasos hacia la mejora Proyecto de mejora Casos prácticos Implantación de CMMI-DEV Implantación en Proyecto COMPETISOFT
26
Proyecto Mejora Procesos de Desarrollo Software Necesidad de mejora - FAQ ¿Cómo puedo mejorar mi producto software? Evaluación / Certificación / Acreditación ¿Qué modelos existen en el mercado y cuál es el que más me conviene? Procesos / Producto ¿Qué pasos debo seguir? ¿qué debo invertir y qué mejoras puedo obtener implantando un modelo de calidad?
¿Quién me puede ayudar?
27
Proyecto Mejora Procesos de Desarrollo Software Pasos hacia la mejora
Evaluación (Certificación) Proyecto de mejora
Elección del modelo
28
Proyecto Mejora Procesos de Desarrollo Software Proyecto de mejora (1) Definición de objetivos
• Propósito • Factores de éxito • Restricciones y dependencias
Definición del alcance
• Alcance inicial • WBS (Work Breakdown Structure)
Fases y actividades Recursos Planes del proyecto
Procesos del proyecto
• Estimaciones • Cronograma • Hitos y entregables • Materiales • Personales • Plan de comunicación • Plan de riesgos • • • • •
Supervisión y control Gestión de cambios Aceptación del cliente Gestión de problemas Gestión documental 29
Proyecto Mejora Procesos de Desarrollo Software Proyecto de mejora (2)
Inicio del proyecto
Análisis de la situación
Definición del alcance
Plan de mejora
Implementación del plan de mejora
Registro de lecciones aprendidas
30
Proyecto Mejora Procesos de Desarrollo Software Proyecto de mejora (3)
Plan de mejora
Implementación del plan de mejora
Ciclo de mejora
Diagnóstico Procesos
Registro de lecciones aprendidas
Planificar Mejora
Iteraciones de mejora
Lecciones aprendidas
Implementar Mejora
?
?
31
Proyecto Mejora Procesos de Desarrollo Software Casos prácticos: Implantación de CMMI-DEV Beneficios Mejora en los procesos Planes de Mejora Evaluación (Certificación) Proyecto de mejora
Mejora estimación de proyectos Transparencia seguimiento/control proyectos
Elección del modelo
Definición de objetivos
• Crecimiento Mejoras control/seguimiento proyectos
Definición del alcance
• Áreas de proceso del Nivel 2 CMMI
Fases y actividades Recursos
• Planificación proyecto. Duración: 10 meses • Incremento RRHH. Metodología RUP
Planes del proyecto
• Riesgos del proyecto
Procesos del proyecto
• Gestión de cambios • Gestión de problemas 32
Proyecto Mejora Procesos de Desarrollo Software Casos prácticos: Implantación en Proyecto COMPETISOFT Ciclo de mejora
Diagnóstico Procesos
Planificar Mejora
3 Iteraciones de mejora
Lecciones aprendidas
Diagnóstico Procesos
Implementar Mejora
?
?
Planificación Valoración
Ejecución Valoración
Generación Resultados
Priorización Procesos
33
Fuentes / Contacto CMMI-DEV Página del SEI: http://www.sei.cmu.edu/
ISO/IEC 15.504 Página en castellano: http://www.iso15504.es/
Proyecto COMPETISOFT Libro “COMPETISOFT: Mejora de Procesos Software para Pequeñas y Medianas Empresas y Proyectos”, RA-MA Editorial
Calidad del Software Guías Calidad del Software: https://www.inteco.es/Calidad_del_Software/descargas/guias/
Contacto:
[email protected]
34
www.inteco.es