Beneficios de la implantación de una metodología para el ciclo de vida de
desarrollos software
Dirección de Desarrollo y Aplicaciones Miguel Martínez Vélez
Agenda
1. Introducción
2. El Proceso Software
3. Modelos de Evaluación y mejora de proceso software
• ISO 9001
• CMMI
• SPICE
4. Modelos Agiles
5. Posicionamiento de Modelos
6. Beneficios de implantación del Proceso Software.
7. Caso: Implantación del Proceso Software en Arsys.
8. Conclusiones.
9. Referencias
Introducción
• Problemas actuales en el desarrollo de software
– Los proyectos se desvían en coste y plazo – Baja calidad, mucho mantenimiento correctivo – Poca documentación
– No existe control de cambios
– No existe uniformidad en el trabajo realizado – Éxito depende de capacidades individuales
– Desalineamiento entre expectativas de clientes y software resultante
– Falta de coordinación entre equipos
“ Es necesario algo que racionalice y optimice el
como desarrollar software “
Proceso Software
• Ciclo de Vida Software
– “Marco de referencia que contiene las tareas y actividades
involucradas en el desarrollo, la explotación y mantenimiento de un producto de software, abarcando la vida del sistema desde la definición hasta la finalización del mismo”
– Define los principios y directrices de las etapas
• Proceso Software, un concepto mas amplio.
– Basado en el ciclo de vida software
– Cubre tecnologías, personas, artefactos y procedimientos relacionados con las actividades del ciclo de vida software
– “El proceso software define como se organiza, gestiona, mide, soporta y mejora el desarrollo, independientemente de las
técnicas y métodos usados”
Proceso Software
• Características
– Complejo
– No es típico proceso de producción. Excepciones y creatividad
– Muchos factores. Presupuestos, calendarios y calidad no tienen fiabilidad 100%
– Los entregables generan nuevos requisitos
– Éxito depende de implicación del usuario y coordinación de muchos roles
– La gestión de cambios es compleja
• Subproceso de Producción
– Construcción y mantenimiento del producto software
• Subproceso de Gestión
– Estimación, planificación y control de recursos
– Feedback para la mejora del proceso y mejora de calidad del producto final
Proceso Software
• Composición:
– Estructura Organizacional
– Tecnología de Desarrollo Software (herramientas, entornos)
– Métodos y técnicas de Desarrollo Software. Ciclo de vida
Mejorar el proceso
Ejecutar el proceso
Medir el proceso Definir
el proceso
Controlar el proceso
Proceso Software
• Elementos Básicos
– Actividades
– Recursos (humanos, herramientas, entornos, etc) – Roles y Responsabilidades
– Directivas (Seguridad, usabilidad, etc) – Productos intermedios y finales
DESARROLLADOR HERRAMIENTA
ACTIVIDAD
ROL
PRODUCTO
DIRECTIVA
Tiene_entrada Tiene_intermedio Tiene_salida emplea
necesita
Tiene_sub
obedece desempeña
Tiene_sub
Modelos de Evaluación y Mejora de Procesos Software
• “La calidad de un producto software se rige por la calidad del proceso usado para desarrollarlo”
• Orientados a la mejora continua de los procesos software de una empresa
• Aplican mejores prácticas
Modelos de Evaluación y Mejora de Procesos Software – ISO 9001
• Secciones:
– QMS : Sistema de Gestión de Calidad – Responsabilidad de la Gestión
– Gestión de Recursos
– Realización del Producto – Medición , Análisis y Mejora
• Puntos Fuertes
– Aplicabilidad
– Reconocimiento internacional
– Libertad de interpretación e implementación – Incremento de satisfacción de clientes
• Puntos Débiles
– Demasiado General
– No explica la implementación del proceso de mejora
Modelos de Evaluación y Mejora de Procesos Software – CMMI
• Modelo de Madurez de la Capacidad (CMMI, SEI 1995)
• Objetivos:
– Evaluar la madurez de los procesos de desarrollo de software – Proponer planes de mejora de los procesos de desarrollo de
software
•Cinco niveles de madurez
•Areas Clave (KPA, 18) agrupadas en los niveles de madurez
•Cada KPA tiene objetivos y metas que indican su cumplimiento
•Cada KPA tiene Prácticas Clave (KP)•Ejemplos y actividades de que se
deben realizar para cumplir objetivos de una KPA
•Características Comunes
•Atributos que indican el grado de implementación de una KPA
Modelos de Evaluación y Mejora de Procesos Software – CMMI
NIVEL CARACTERÍSTICAS RESULTADOS
INICIAL Ausencia de gestión de proyectos
El proceso de software es cambiante e irregular
Los grupos abandonan facilmente los planes y se centran en codificación y pruebas PRODUCTIVIDAD Y CALIDAD ESCASA
Los planes y estimaciones son impredecibles RIESGO MÁXIMO
El rendimiento depende de la capacidad individual de los miembros del grupo REPETIBLE Los procesos software son estables y repetibles
La organización establece políticas de gerencia de proyectos y procesos PRODUCTIVIDAD Y CALIDAD BAJA
La planificación se basa en proyectos similares RIESGO ALTO
Existen estandares definidos y exigidos
DEFINIDO Los procesos son definidos, estandarizados, documentados e institucionalizados
Los procesos de ingeniería y gestión son estables y se integran en uno solo PRODUCTIVIDAD Y CALIDAD MEDIA Existe un entendimiento común de los procesos, funciones y responsabilidades RIESGO MEDIO
La organización tiene un grupo dedicado a definición, mejora y difusión del proceso software GESTIONADO Los procesos son medibles y cuantificables
La productividad y calidad se miden y registran para cada proyecto de la organización PRODUCTIVIDAD Y CALIDAD ALTA
Se fijan metas cuantitativas de la calidad del software RIESGO MÍNIMO
Mediante el uso de métricas de software se crea una base cuantitativa para evaluación OPTIMIZADO Los procesos se mejoran continuamente
La organización busca lograr el máximo nivel de capacidad PRODUCTIVIDAD Y CALIDAD TOTAL
Se incorporan nuevas tecnologías y métodos para mejorar los procesos RIESGO NULO
Modelos de Evaluación y Mejora de Procesos Software – CMMI
Modelos de Evaluación y Mejora de Procesos Software – CMMI
Modelos de Evaluación y Mejora de Procesos Software – CMMI
• Puntos Fuertes:
– Guía paso a paso para la mejora del proceso.
– Uso de bibliotecas y Bases de datos de proyectos mejorados.
• Puntos Débiles:
– Excesivamente detallado – Requiere inversión elevada – Difícil de aprender
• Métodos de Evaluación
– SCAMPI (Standard CMMI Appraisal Method for Process Improvement).
– CBA/IPI, SCE
• Posibles Representaciones de CMMI:
– Por Etapas
• Nivel de Madurez = n KPAs
• Cada etapa es un nivel de madurez – Continua
• Guía menos específica del proceso de mejora
• Ninguna etapa está asociada con niveles de madurez
• Posibilita la implantación y evaluación de procesos individuales.
Modelos de Evaluación y Mejora de Procesos Software – CMMI
OPTIMIZADO OPTIMIZADO
GESTIONADO GESTIONADO
DEFINIDO DEFINIDO
REPETIBLE REPETIBLE
INICIAL INICIAL
CMMI STAGED Innovación y Distribución Organizacional Análisis Causal y Resolución
Rendimiento de Proceso Organizacional Gestión Cuantitativa de Proyectos
Gestión Cuantitativa de Suministrador
Desarrollo RQS Enfoque Proceso Organizacional Solución Técnica Definición Proceso Organizacional Integración Producto Formación de la Organización Verificación Gestión Integrada de proyectos Validación Gestión de Riesgos
Análisis de decisión y resolución
Gestión RQS Medición y Análisis
Planificación de Proyectos Gestión de Configuración Monitorización y control de proyectos
Gestión de acuerdos con suministrador
Aseguramiento de calidad del proceso y producto Gestión Básica
de proyectos
Estandarización de Proceso
Gestión Cuantitativa
Mejora Continua
Modelos de Evaluación y Mejora de Procesos Software – SPICE
• Norma ISO/IEC 15504
• Modelo de evaluación, determinación de capacidad y mejora del proceso software.
• Proceso de Evaluación:
– Planificación
– Recopilación de datos – Validación de datos
– Valoración de atributos – Generación Informes
PROCESO OPTIMIZANTE PROCESO PREDECIBLE PROCESO ESTABLECIDO PROCESO GESTIONADO PROCESO REALIZADO PROCESO INCOMPLETO
Modelos de Evaluación y Mejora de Procesos Software - Comparativa
ISO 9001:2000 CMMI ISO 15504
Ámbito de aplicación Genérico Software y Sistemas Software y Sistemas En su favor El más extendido y
sencillo El de mayor prestigio Más consensuado y probado
En su contra Simple, general, no
guía paso a paso Difícil de entender, mayor inversión, prescriptivo
Difícil en capacidad, complejo para evaluar
Procesos Estructura propia Estructura propia Delega en ISO 12207, por mayor aplicabilidad
Validación Encuestas
satisfacción Encuestas
satisfacción y casos de estudio
‘Trials’ y esfuerzo empírico
Objetivo Cumplimiento de
requisitos de calidad por procesos
Mejora del proceso, determinación
capacidad contratista
Valoración del proceso y guía para la mejora.
Representación Plana Continua y por
etapas Continua (por etapas a nivel de proceso) Técnicas análisis Guías y listas de
comprobación Cuestionarios de
evaluación Varios
Método para mejora
de procesos Ninguno, guía ISO
9004 IDEAL, mapa guiado SPICE 4ª Parte
Modelos Agiles de Proceso Software
• Nueva Tendencia, modelos mas ligeros, adaptables y flexibles
• RUP (Rational Unified Process),Extreme Programming (XP),SCRUM, Adaptative Development, etc
• Nacieron a finales de los 90
• Tienen en común:
– No son rigurosas ni ceremoniales
– Adaptativas a las necesidades del negocio – Orientadas a resultados. Quick Wins
– No quiere decir que la documentación no sea importante – El proceso software se adapta a los cambios
– Están comenzando a ser usadas en proyectos complejos
Modelos Agiles de Proceso Software: RUP
• RUP es adaptable al nivel de ceremonia exigido
• Se basa en UML como lenguaje de modelado
• Es preciso adaptar RUP a cada empresa
Posicionamiento de modelos
Cascada (Pocos riesgos, secuencial)
Iterativo (Risk-driven, integración y testing continuo) Poca
Ceremonia Mucha
Ceremonia
RUP
SCRUM XP AD
MIL-STD-498 DOD-STD-2167
CMMI
Beneficios de Implantación de Proceso Software
• Incremento de satisfacción del cliente
• Incremento de la calidad del producto
• Alineamiento con el negocio
• Time to Market óptimo
• Mejor gestión de riesgos
• Resultados mas predecibles
• Reducción de costes de las actividades
• Homogeneidad operativa.Mejora de comunicación.
• Reducción del mantenimiento correctivo
• Posibilita ser mas proactivo y menos reactivo
• Mayor control del impacto de los cambios
• Facilita la externalización
Implantación de Proceso Software en Arsys
• Condiciones del entorno
– Alineamiento con un negocio muy dinámico – 43 personas aprox. Media de edad, 30 años – Diversas tecnologías
– Equipos orientados al servicio
– Múltiples proveedores en diversos proyectos
– Externalizaciones en Software Factories de otros paises – Poca formación en Metodologías y procesos
• Frentes fundamentales de Actuación:
– Controller de Proceso Software
– Implantación de Proceso de Software (MSA). Auditorías y mejora continua
– Gestión del cambio
– Formación en Metodologías y modelado
– Implantación de Herramientas para la Gestión del ciclo de vida de desarrollo
– Hacia CMMI
Implantación de Proceso Software en Arsys
• FASE 1 (Jul06-Ene08)
– Compromiso de la Dirección
– El Controller de Proceso Software lidera el Plan – Definición del Proceso Software en Arsys (MSA)
• Etapas. Ciclo de Vida
• Documentos Entregables
• Responsabilidades
• Auditorías de Proyectos
• Indicadores. Cuadro de Mando del Proceso.
• Guías y Normas (código, seguridad, diseño, usabilidad) – Mejora Continua del Proceso
– Comité de Calidad Software (CCSA)
– Formación en Metodología y lenguaje de modelado UML
Implantación de Proceso Software en Arsys
Implantación de Proceso Software en Arsys
30-nov-06 30-dic-06 12-feb-07 23-mar-07 11-abr-07 21-may-07 13-jun-07 18-jul-07
% Proyectos MSA Abreviada 7,1% 11,1% 15,0% 32,0% 30,8% 37,5%
% Cumplimiento MSA (RQS,DT,D,PR,PP,PL) 0,60 0,69 0,82 0,86 0,87 0,93 0,89 0,91
Nº Medio Incumplimientos MSA 2,40 2,43 1,00 2,60 0,50 0,44 0,50 0,00
% Proyectos sin entrada (internos) 14,3% 22,2% 0,0% 4,5% 4,3% 6,9%
Media aritmética mensual indicadores
Reqs. D.T. Implem. Pruebas Paso Prod. Planif. Total
De oct a 30-nov 0,52 0,81 0,80 0,49 0,81 0,19 0,60
De 30-nov a 30-dic 0,62 0,70 0,89 0,72 0,79 0,40 0,69
De 30-dic a 12-feb 0,81 0,89 1,00 0,68 0,75 0,81 0,82
De 12-feb a 23-mar 0,84 0,82 0,98 0,87 0,90 0,73 0,86
De 23-mar a 11-abr 0,98 0,87 1,00 0,75 0,87 0,75 0,87
De 11-abr a 21-may 0,89 0,91 0,98 0,92 0,98 0,92 0,93
De 21-may a 13-jun 0,92 0,84 1,00 0,94 0,90 0,87 0,89
De 13-jun a 18-jul 0,97 0,93 1,00 0,92 0,94 0,99 0,91
Indicadores Globales de Cuadro de Mando de Desarrollo
INDICADORES PORCENTUALES
0,0%
5,0%
10,0%
15,0%
20,0%
25,0%
30,0%
35,0%
40,0%
25/11/2006 10/12/2006
25/12/2006 09/01/2007
24/01/2007 08/02/2007
23/02/2007 10/03/2007
25/03/2007 09/04/2007
24/04/2007 09/05/2007
24/05/2007 08/06/2007
% MSA Abreviada
% Proyectos internos
INCUMPLIMIENTOS DE GRANO GRUESO
0,00 0,50 1,00 1,50 2,00 2,50 3,00
25/11/2006 10/12/2006
25/12/2006 09/01/2007
24/01/2007 08/02/2007
23/02/2007 10/03/2007
25/03/2007 09/04/2007
24/04/2007 09/05/2007
24/05/2007 08/06/2007
23/06/2007 08/07/2007 Nº Medio Incumplimientos
Grano Grueso
CUMPLIMIENTO METODOLOGÍA
0,00 0,10 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,90 1,00 1,10
25/11/2006 10/12/2006
25/12/2006 09/01/2007
24/01/2007 08/02/2007
23/02/2007 10/03/2007
25/03/2007 09/04/2007
24/04/2007 09/05/2007
24/05/2007 08/06/2007
23/06/2007 08/07/2007 Requisitos
Diseño técnico Implementación Pruebas Paso producción Planificación TOTAL
Implantación de Proceso Software en Arsys
• FASE 2 (Sept07-Abr08)
– Evaluación de herramientas de gestión de ciclo de vida – Selección de IBM Rational Suite
• Modelado de Arquitecturas y Diseño de sistemas
• Automatización de Pruebas de software, funcionales y stress
• Gestión de versiones y de configuración
• Gestión de Defectos
• Gestión de Requisitos (Futuro)
• Deslocalización (Futuro) – Formación en Rational
– Pruebas Piloto
– Plan de Despliegue : Módulos x Sistema
Implantación de Proceso Software en Arsys
• FASE 3 (Dic07-Ene09) – HACIA CMMI
– Asessment ¿ Como estamos ahora ?
– Involucración de otros departamentos/áreas – Formación en CMMI
– Creación del Grupo de Seguimiento de la implantación.
– Plan de acciones en base a recomendaciones – Futuro, Integración de CMMI con ITIL