2. Situación actual
La disciplina, ingeniería del software, es relativamente reciente y
muchos de sus conceptos importantes están aún inmaduros
No ha acabado de salir de la fase artesanal
Carencia de un corpus de conocimiento aceptado
mayoritariamente que sirva como fundamentos (Swebook)
Padecemos de “prisa patológica”, que es consecuencia directa de:
Desorganización
Falta de planificación
Alta dependencia de los “héroes”
Dedicamos el esfuerzos de hoy a arreglar lo que se hizo mal ayer
El producto (software) es algo intangible y no constreñido por las
leyes físicas
Escasa presión del mercado
3. Empresa Inmadura
En una organización inmadura:
Procesos software normalmente improvisados
Si se han especificado, no se siguen rigurosamente
Organización reactiva (resolver crisis inmediatas)
Planes y presupuestos excedidos sistemáticamente, al no estar
basados en estimaciones realistas
Si hay plazos rígidos, se sacrifican funcionalidad y calidad del
producto para satisfacer el plan
No existen bases objetivas para juzgar la calidad del producto
Cuando los proyectos está fuera de plan, las revisiones o
pruebas se recortan o eliminan
4. Empresa Madura
El proceso de elaboración del software esta claramente definido, no
existen ambigüedades a cerca de:
Que se tiene que hacer
Cuando, como ,donde, etc.
Es predecible, se puede repetir en otros proyectos con confianza
sobre los resultados
Predecible respecto a esfuerzo, costo, etc.
Predecible respecto a la calidad: con respecto al numero de
defectos, rendimiento, etc.
Identifica y remueve los defectos tempranamente
Los defectos incrementan el costo del proyecto
La detección y corrección tardía son costosas
Se preocupa de monitorizar y mejorar continuamente:
Basada en la retroalimentación de la monitorización
Evalúa continuamente nuevas herramientas y tecnologías
Define métricas y realiza mediciones
5. Empresa con procesos institucionalizados
“Esta es la forma en la que hacemos las
cosas por aquí.”
La organización se construye sobre una infraestructura que
contiene procesos, efectivos, usables, y aplicados
consistentemente.
La cultura organizacional se transporta en los procesos.
La gestión nutre la cultura.
Los procesos institucionalizados se mantienen incluso luego de que
las personas que los definieron se han ido.
7. Que es un proceso de mejora continua
Un proceso es un conjunto de pasos definidos para lograr una tarea
Proceso del software es el conjunto de actividades, métodos,
practicas y transformaciones para desarrollar y mantener software y
productos asociados
[Paulk 1994]
Un proceso definido es aquel que esta descrito a tal detalle que
permite que los ingenieros lo ocupen constantemente. Los procesos
definido ayudan durante la planificación y desarrollo de un trabajo
[Humhprey, 2000-2001]
La madurez de un proceso es el punto hasta el cual un determinado
proceso es explícitamente definido, administrado, medido,
controlado y efectivo
[Paulk 1994]
Un proceso de mejora continua, es un conjunto de guías y técnicas
que permiten incrementar continuamente la madurez de un proceso
de software
8. Modelo de Procesos
¿Que es un modelo de procesos?
Es una colección estructurada de practicas que describe las
características de un proceso efectivo.
Las practicas incluidas son aquellas que han probado ser
efectivas en la practica.
¿Como se utiliza un modelo de procesos?
Como ayuda para definir prioridades y objetivos de mejora de
procesos.
Como ayuda para diseñar procesos estables, capaces y
maduros.
Como guía para mejorar proyectos y procesos organizacionales.
En conjunto con métodos de auditoria para diagnosticar el
estado de las practicas de una organización.
9. ¿Por qué son importantes los Modelos de Procesos?
Son importantes porque proveen:
Un punto de partida para iniciar el proceso de mejora
Los beneficios de la experiencia previa de una comunidad
Un lenguaje común y una visión compartida
Un marco para priorizar acciones
Una forma de definir lo que la mejora significa para una
organización
10. Algunos Modelos de Procesos de mejora continua del
software
Trillium
Bootstrap
12. Capability Maturity Model Integration (CMMI)
¿Que hace CMMI?
Estudia los procesos de desarrollo de software de una
organización y produce una evaluación de la madurez de la
organización según una escala de cinco niveles
La madurez de un proceso es un indicador de la capacidad
para construir un software de calidad.
¿Porque CMMI es importante?
Es el modelo de mejora continua de desarrollo de software mas
conocido y distribuido a nivel mundial
Es un estándar de facto basado en las mejores practicas de
cientos de proyectos de desarrollo de software
Esta siendo utilizado por muchas organizaciones que no son
desarrolladoras de software
13.
14. Antecedentes
Originado en 1982 ayudo a mejorar la calidad del proceso de
software de contratistas gubernamentales en USA
El trabajo empezó en el centro MITRE, y luego en el Software
Engineering Institute (SEI) de la universidad Carnegie Mellon
El autor inicial fue Watts Humphrey, luego se sumaron Mark
Paulk, Bill Curtis, y otros
Esta basado en gran medida en los conceptos de Total Quality
Management (TQM) y el trabajo de Philip Crosby.
Ha estado en continuo y activo desarrollo durante mas de 25
años
Ha ganado mucho interés por parte de organizaciones que no
se dedican al desarrollo de software
Todos los documentos son públicos y gratuitos
Versión actual CMMI v 1.3
15. CMMI Para la mejora de procesos
Se debe utilizar CMMI en las actividades de mejora de procesos
como:
Una colección de mejores practicas
Un marco para organizar y priorizar actividades
Soporte para la coordinación de actividades multidisciplinarias
que pueden ser necesarias para construir un producto de
manera exitosa.
Una forma de enfatizar el alineamiento de los objetivos de
mejora de procesos con los objetivos de negocio de la
organización.
17. Representaciones del Modelo CMMI (1/2)
Existen dos tipos de representaciones del modelo CMMI:
Escalonada o por pasos
Continua
Una representación en CMMI es análoga a una vista en un base de
datos.
Ambas representaciones proveen formas de implementar mejoras a
los procesos para alcanzar los objetivos de negocio.
Ambas representaciones proveen esencialmente el mismo
contenido y componentes del modelo, pero se organizan de
diferente manera.
18. Representaciones del modelo CMMI (2/2)
Practicas
Especificas
Objetivos
Específicos
Practicas
Genéricas
Objetivos
Genéricos
Área de Proceso
Representación Escalonada
Niveles de
Madurez
Practicas
Especificas
Objetivos
Específicos
Practicas
Genéricas
Objetivos
Genéricos
Área de Proceso
Representación Continua
Niveles de
Capacidad
19. Componentes del modelo
Componentes Requeridos
Objetivo genérico: Asociados a un nivel de capacidad establecen
lo que una organización debe alcanzar en ese nivel de capacidad.
Su logro en un área de proceso significa mejorar el control en la
ejecución del área de proceso.
Objetivo específico: Se aplican a una única área de proceso y
localizan las particularidades que describen qué se debe
implementar para satisfacer el propósito del área de proceso.
Componentes Esperados
Práctica genérica: Se aplica a cualquier área de proceso porque
puede mejorar el funcionamiento y el control de cualquier proceso.
Práctica específica: Es una actividad que se considera importante
en la realización del objetivo específico al cual está asociado.
Describen las actividades esperadas para lograr la meta específica de
un área de proceso
20. Componentes del modelo
Componentes Informativos
Propósito: Describe el propósito del Área de Proceso
Notas introductorias: Describe los principales conceptos que aborda
el Área de Proceso.
Áreas de proceso relacionadas: Esta sección provee referencias a
áreas de proceso relacionadas y una visión general de sus relaciones
Productos de trabajo típicos: Ejemplos de productos resultantes de
las practicas especificas (no son una lista rigurosa)
Sub-prácticas: Descripción detallada que sirve como guía para la
interpretación de una práctica genérica o específica.
Ampliaciones de disciplina: Información relevante de una disciplina
particular y relacionada con una práctica específica.
Elaboraciones de prácticas genéricas: Es una guía de cómo la
práctica genérica debe aplicarse al área de proceso.
21. Organización de las áreas de proceso en las dos
representaciones
En la representación escalonada las áreas de proceso se organizan
por nivel de madurez:
Niveles 1 a 5
En la representación continua las áreas de proceso se organizan
por categorías de áreas de proceso:
Gestión de Procesos
Gestión de Proyectos
Ingeniería
Soporte
22. CMMI Representación escalonada: Áreas de proceso por
Nivel de madurez
NIVEL ENFOQUE AREA DE PROCESO AREA DE PROCESO (ESPAÑOL) SIGLA
Nivel 5:
Optimizing
(Optimizado)
Continuous Process
Improvement
(Mejora continua)
Organizational Innovation and
Deployment
Innovación y Despliegue Organizacionales OID
Causal Analysis and Resolution Análisis de Causas y Resolución CAR
Nivel 4:
Quantitatively
Managed
(Gestionado
Cuantitativamente)
Quantitatively
Manged
(Gestionado
Cuantitativamente)
Organizational Process Performance Rendimiento de Procesos Organizacionales OPP
Quantitative Project Management Gestión Cuantitativa de Proyectos QPM
Nivel 3:
Defined
(Definido)
Process
Standardization
(Estandarización de
procesos)
Requirements Development Desarrollo de Requerimientos RD
Technical Solution Solución Técnica TS
Product Integration Integración de Producto PI
Verification Verificación VER
Validation Validación VAL
Organizational Process Focus Enfoque Organizacional en Procesos OPF
Organizational Process Definition +IPPD Definición de procesos organizacionales OPD
Organizational Training Entrenamiento Organizacional OT
Integrated Project Management +IPPD Gestión Integrada de Proyectos IPM
Risk Management Gestión de Riesgos RSKM
Decision Analysis and Resolution Análisis de Decisiones y Resolución DAR
Nivel 2:
Managed
(Gestionado)
Basic Project
Management
(Gestión Básica de
Proyectos)
Requirements Management Gestión de Requerimientos REQM
Project Planning Planificación de proyecto PP
Project Monitoring and Control Monitorización y Control de Proyecto PMC
Supplier Agreement Management Gestión de Acuerdos con Proveedores SAM
Measurement and Analysis Medición y Análisis MA
Process and Product Quality Assurance Aseg. de calidad de Procesos y Productos PPQA
Configuration Management Gestión de la configuración (CM) CM
23. CATEEGORIA AREA DE PROCESO SIGLA
Gestión de Procesos
Enfoque Organizacional en Procesos OPF
Definición de procesos organizacionales OPD
Entrenamiento Organizacional OT
Rendimiento de Procesos Organizacionales OPP
Innovación y Despliegue Organizacionales OID
Gestión de Proyectos
Planificación de proyecto PP
Monitorización y Control de Proyecto PMC
Gestión de Acuerdos con Proveedores SAM
Gestión Integrada de Proyectos IPM
Gestión de Riesgos RSKM
Gestión Cuantitativa de Proyectos QPM
Ingeniería
Gestión de Requerimientos REQM
Desarrollo de Requerimientos RD
Solución Técnica TS
Integración de Producto PI
Verificación VER
Validación VAL
Soporte
Gestión de la configuración (CM) CM
Aseg. de calidad de Procesos y Productos PPQA
Medición y Análisis MA
Análisis de Decisiones y Resolución DAR
Análisis de Causas y Resolución CAR
CMMI Representación continua: Áreas de proceso por
Categorías
24. Entendiendo los niveles (1/4)
Los niveles se utilizan en CMMI para describir una ruta de evolución
para una organización a la que le interesa mejorar los procesos que
utiliza para desarrollar y mantener sus productos y servicios.
CMMI soporta dos rutas de mejora:
Escalonada: Habilita a la organización a mejorar un grupo de
procesos relacionados abordando incrementalmente y de
manera sucesiva, grupos predefinidos de áreas de proceso.
Continua: Habilita a las organizaciones a mejorar
incrementalmente los procesos correspondientes a un área de
procesos individual (o un grupo de áreas de proceso)
seleccionadas por la organización.
25. Entendiendo los niveles (2/4)
Los dos tipos de rutas están asociados a dos tipos de niveles que
corresponden a las dos representaciones escalonada y continua.
Para la representación escalonada se utiliza el termino Nivel de
Madurez o Madurez organizacional.
Para la representación continua se utiliza el termino Nivel de
Capacidad o Capacidad del área de proceso.
26. Entendiendo los niveles (3/4)
Independientemente de la representación seleccionada los niveles
tiene el mismo concepto.
Los niveles caracterizan la mejora de un estado mal definido a
un estado que utiliza información cuantitativa para determinar
las mejoras que son necesarias para que una organización
alcance sus objetivos
Para alcanzar un determinado nivel las organizaciones deben
satisfacer todos los objetivos apropiados del área de procesos (o
grupo de áreas de procesos) sobre los cuales se quiere obtener una
mejora.
Independientemente de si el nivel es un nivel de capacidad o de
madures.
28. Los niveles de madurez no deben saltarse
Cada nivel de madurez provee los fundamentos necesarios para la
implementación efectiva de los procesos al siguiente nivel:
Los niveles de proceso superiores tienen un mejor chance de
alcanzar el éxito en su implementación con las disciplinas
provistas en los niveles inferiores.
Los efectos de las innovaciones de mayor madurez son mas
fáciles de medir.
Los procesos de los niveles superiores madurez pueden ser
ejecutados por organizaciones con niveles inferiores de
madurez, con el riesgo de no ser aplicados consistentemente
durante una crisis.
29. Niveles de Capacidad
Un nivel de capacidad consiste de un objetivo genérico y sus
practicas genéricas relacionadas, que pueden mejorar los procesos
de una organización asociados a un área de procesos
Los niveles de capacidad proveen una escala para medir los
procesos de una organización en relación a las áreas de proceso de
un modelo CMMI
Existen seis niveles de capacidad.
Cada nivel es una capa en fundamental para la mejora continua de
procesos.
Los niveles de madures son acumulativos (ej. Un nivel superior
incluye las practicas de los niveles inferiores.
30. Niveles de Capacidad
2
6
5
4
3
EJECUTADO
GESTIONADO
DEFINIDO
GESTIONADO
CUANTITATIVAMENTE
OPTIMIZADO
El proceso se ejecuta y se logra su objetivo
Además de ejecutarse, el proceso se planifica, se revisa y se
evalúa para comprobar que cumple los requisitos
Además de ser un proceso gestionado se ajusta a la política
de procesos que existe en la organización, alineada con las
directivas de la empresa
Además de ser un proceso definido se controla utilizando
técnicas cuantitativas.
Además de ser un proceso cuantitativamente gestionado, de
forma sistemática se revisa y modifica o cambia para
adaptarlo a los objetivos del negocio. Mejora continua.
1
INCOMPLETO
El proceso no se realiza, o no se consiguen sus objetivos
31. Representación de la capacidad de un Área de Proceso
La capacidad de un área de proceso se puede representar con una
barra
0
1
2
3
Área de
proceso N
Capacidaddel
ÁreadeProceso
Áreas de Proceso
Este punto
representa mayor
capacidad que
Este otro punto
V
32. Los niveles de capacidad son acumulativos
0
1
2
3
Debido a que los niveles de capacidad se construyen uno sobre
otro, no pueden existir espacios en blanco.
33. Comparando los niveles de Capacidad y de Madurez
NIVEL
CONTINUA
(NIVELES DE CAPACIDAD)
ESCALONADA
(NIVELES DE MADUREZ)
0 Incompleto N/D
1 Ejecutado Inicial
2 Gestionado Gestionado
3 Definido Definido
4 Gestionado Cuantitativamente Gestionado Cuantitativamente
5 Optimizado Optimizado
35. Objetivos y las Practicas Genéricas
Contribuyen al proceso de institucionalización.
Son los componentes del modelo que proveen compromiso y
consistencia a lo largo de los procesos y actividades de una
organización.
El nivel de institucionalización se representa con objetivos
genéricos y se expresa con los nombres de los procesos asociados
a cada objetivo como se indica en la tabla.
OBJETIVO GENERICO Y TITULO PROGRESO DEL PROCESO
GG1: Conseguir los objetivos específicos Proceso Ejecutado
GG2: Institucionalizar un proceso gestionado Proceso Gestionado
GG3: Institucionalizar un proceso definido Proceso Definido
GG4: Institucionalizar un proceso Gestionado
Cuantitativamente
Proceso Gestionado
Cuantitativamente
GG5: Institucionalizar un proceso Optimizado Proceso Optimizado
GG2 y GG3 Son los únicos utilizados en la versión escalonada
36. Los Objetivos Genéricos Evolucionan
Cada objetivo genérico provee la base para los siguientes:
Un proceso Gestionado incluye y se construye sobre un proceso
ejecutado
Un proceso Definido incluye y se construye sobre un proceso
Gestionado
Un proceso Gestionado Cuantitativamente incluye y se
construye sobre un proceso Definido
Un proceso Optimizado incluye y se construye sobre un proceso
Gestionado Cuantitativamente
37. GG 1: Lograr las objetivos específicas
PRACTICA GENERICA DESCRIPCION
GP 1.1 REALIZAR LAS PRÁCTICAS ESPECÍFICAS
Realizar las prácticas específicas del área de proceso
para desarrollar los productos de trabajo y
proporcionar servicios para lograr las metas
específicas del área de proceso
"El proceso da soporte y permite el logro de las objetivos específicas
del área de proceso, transformando los productos de trabajo de
entrada identificables para producir los productos de trabajo de salida
identificables."
38. GG 2: Institucionalizar un proceso gestionado
PRACTICA GENERICA DESCRIPCION
GP 2.1 ESTABLECER UNA POLÍTICA DE LA
ORGANIZACIÓN
Establecer y mantener una política de la organización para
planificar y realizar el proceso.
GP 2.2 PLANIFICAR EL PROCESO Establecer y mantener el plan para realizar el proceso
GP 2.3 PROPORCIONAR RECURSOS
Proporcionar recursos adecuados para realizar el proceso,
desarrollar los productos de trabajo y proporcionar los
servicios del proceso.
GP 2.4 ASIGNAR RESPONSABILIDAD
Asignar la responsabilidad y la autoridad para realizar el
proceso, desarrollar los productos de trabajo y proporcionar los
servicios del proceso.
GP 2.5 FORMAR AL PERSONAL
Formar, según sea necesario, a las personas para realizar o dar
soporte al proceso.
GP 2.6 GESTIONAR CONFIGURACIONES
Poner los productos de trabajo designados del proceso bajo los
niveles de control apropiados.
GP 2.7 IDENTIFICAR E INVOLUCRAR A LAS PARTES
INTERESADAS RELEVANTES
Identificar e involucrar, como se planificó, a las partes
interesadas relevantes del proceso.
GP 2.8 MONITORIZAR Y CONTROLAR EL PROCESO
Monitorizar y controlar el proceso frente al plan para realizar el
proceso y tomar las acciones correctivas apropiadas.
GP 2.9 EVALUAR OBJETIVAMENTE LA ADHERENCIA
Evaluar objetivamente la adherencia del proceso frente a la
descripción del proceso, estándares y procedimientos, y tratar
las no conformidades.
GP 2.10 REVISAR EL ESTADO CON EL NIVEL
DIRECTIVO
Revisar con el nivel directivo las actividades, el estado y los
resultados del proceso, y resolver los problemas.
"El proceso está institucionalizado como un proceso gestionado"
39. GG 3: Institucionalizar un proceso definido
PRACTICA GENERICA DESCRIPCION
GP 3.1 ESTABLECER UN PROCESO DEFINIDO
Establecer y mantener la descripción de un proceso
definido.
GP 3.2 RECOGER INFORMACIÓN DE MEJORA
Recoger productos de trabajo, medidas, resultados de
medición e información de mejora procedente de la
planificación y realización del proceso para dar soporte
al uso futuro y a la mejora de los procesos y de los
activos de proceso de la organización.
"El proceso está institucionalizado como un proceso definido."
40. GG 4: Institucionalizar un proceso gestionado
cuantitativamente
PRACTICA GENERICA DESCRIPCION
GP 4.1 ESTABLECER OBJETIVOS CUANTITATIVOS
PARA EL PROCESO
Establecer y mantener los objetivos cuantitativos para
el proceso, los cuales tratan la calidad y el rendimiento
del proceso en base a las necesidades del cliente y a
los objetivos de negocio.
GP 4.2 ESTABILIZAR EL RENDIMIENTO DEL
SUBPROCESO
Estabilizar el rendimiento de uno o más subprocesos
para determinar la capacidad del proceso para lograr
los objetivos cuantitativos establecidos de calidad y
de rendimiento del proceso.
"El proceso está institucionalizado como un proceso gestionado
cuantitativamente."
41. GG 5: Institucionalizar un proceso de optimización
"El proceso está institucionalizado como un proceso en optimización."
PRACTICA GENERICA DESCRIPCION
GP 5.1 ASEGURAR LA MEJORA CONTINUA DEL
PROCESO
Asegurar la mejora continua del proceso para satisfacer
los objetivos de negocio relevantes de la organización.
GP 5.2 CORREGIR LAS CAUSAS RAÍZ DE LOS
PROBLEMAS
Identificar y corregir las causas raíz de los defectos y de
otros problemas en el proceso.