Técnicas de Calidad en el Software
Capability Maturity Model
for Software SW-CMM
Recomendaciones para Mejorar el Proceso
del Software
Juan Antonio Vega Fernández
 Derechos Reservados, 1999-2003
• En una organización inmadura…
– los procesos de software son improvisados por los
desarrolladores y su administración.
– si hay procesos definidos, generalmente no se siguen.
– los administradores son reaccionarios y se enfocan a
resolver crisis inmediatas (apaga fuegos).
– la calendarización y el presupuesto son rutinariamente
excedidos por que no se basan en estimaciones
realistas.
Técnicas de Calidad en el Software
Organizaciones
Maduras e Inmaduras
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• En una organización inmadura…
– cuando los deadlines son impuestos, la funcionalidad
del producto se compromete para cumplir el calendario.
– no hay manera objetiva de evaluar la calidad de un
producto.
– la calidad del producto no se puede predecir.
– las actividades como revisiones y pruebas son
recortadas o eliminadas cuando el proyecto se retrasa.
Técnicas de Calidad en el Software
Organizaciones
Maduras e Inmaduras
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• En una organización madura …
– El proceso del software es comunicado al personal
existente y al nuevo.
– El proceso a implantar es el adecuado y es consistente
con la manera como se hacen las cosas.
– El proceso es actualizado siempre que sea necesario y
las mejoras se desarrollan con pruebas piloto y/o
análisis de costo beneficio.
– Los papeles y las responsabilidades son claras para
todos.
Técnicas de Calidad en el Software
Organizaciones
Maduras e Inmaduras
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• En una organización madura …
– los administradores monitorean la calidad de los
productos de software y la satisfacción del cliente.
– hay una manera objetiva y cuantitativa de medir la
calidad del producto.
– la calendarización y los costos se basan en rendimientos
históricos y son realistas.
– los resultados esperados de costo, calendarización,
funcionalidad, y calidad del producto son generalmente
alcanzados.
Técnicas de Calidad en el Software
Organizaciones
Maduras e Inmaduras
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Proceso del Software
– el conjunto de actividades, métodos, prácticas,
y transformaciones que la gente usa para
desarrollar y mantener el software y sus
productos asociados (los entregables, por
ejemplo los planes del proyecto, los
documentos del diseño, el código, los casos de
prueba, manuales de usuario, etc.)
Técnicas de Calidad en el Software
Conceptos Fundamentales
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
Procedures
& Methods
Process
People
Técnicas de Calidad en el Software
El Proceso del Software
Tools
A software process is what people do using procedures, methods
and tools to transform inputs and requirements into
outputs and software products.
Juan Antonio Vega Fernández
 Derechos Reservados, 2003
• Un proceso es una secuencia de pasos realizados con un
propósito específico.
• En pocas palabras, un proceso es lo que tu haces.
• Una descripción o definición del proceso no es un proceso.
• Sólo cuando las actividades son realizadas o los métodos
utilizados, se puede hablar de un proceso.
• Los estándares o procedimientos que no son utilizados son
simplemente “shelfware” y el proceso es ad hoc.
Técnicas de Calidad en el Software
El Proceso del Software
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Capacidad del Proceso del Software
– el rango de resultados esperados que pueden ser
logrados siguiendo el proceso del software. La
capacidad del proceso del software de una
organización provee el medio de predecir el
resultado más probable que se puede esperar
para el siguiente proyecto de software que la
organización desarrolle.
Técnicas de Calidad en el Software
Conceptos Fundamentales
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Rendimiento del Proceso del Software
– representa el resultado real alcanzado por seguir el proceso del
software. El rendimiento se enfoca en los resultados reales, la
capacidad en los resultados esperados.
– Basados en los atributos reales y el contexto en el que se
condujo el proyecto, el rendimiento actual puede no reflejar la
capacidad total de la organización
– Ejem. cambios radicales en la aplicación o la tecnología pueden
poner al personal en una curva de aprendizaje ocasionando
que el rendimiento sea corto comparado con la capacidad.
Técnicas de Calidad en el Software
Conceptos Fundamentales
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Madurez del Proceso del Software
– el grado en el que un proceso específico es definido,
administrado, medido, controlado y efectivo.
– La madurez indica un potencial de crecimiento en la
capacidad e indica lo valioso del proceso de software de
una organización y la consistencia con la cual se aplica
en los proyectos de la organización.
– Implica que la productividad y calidad resultante
pueden ser mejorados a lo largo del tiempo.
Técnicas de Calidad en el Software
Conceptos Fundamentales
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Institucionalización del Proceso del Software
– es construir una infraestructura y una cultura
corporativa que soporte los métodos, las prácticas y los
procedimientos de la empresa, de manera que perduren
después que se hayan ido los que la definieron
originalmente.
Técnicas de Calidad en el Software
Conceptos Fundamentales
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• CMM se basa en los principios de calidad
desarrollados por Deming y Juran, en los que se
establece que el control cuantitativo del proceso
es la base del proceso de mejora continua.
• El marco teórico del CMM es adaptado del libro
“Quality is Free” de Philip Crosby. Crosby
describe la madurez de la administración de la
calidad en 5 etapas evolucionarias para adoptar las
prácticas de la calidad.
Técnicas de Calidad en el Software
Evolución e Historia del CMM
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Los conceptos de mejoramiento de la calidad se aplican
en el contexto general del negocio, CMM sólo se aplica
al software.
Técnicas de Calidad en el Software
Aplicación de TQM al Software
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• CMM fué adaptado del trabajo de Ron Randice y
Watts Humphrey en IBM a principios de los 80’s.
• Humphrey se vá al SEI y junto con MITRE
empiezan a darle forma a lo que hoy se conoce
como CMM.
• En septiembre del 87 se libera una descripción
breve la cual es extendida en “Managing the
software process” del marco de madurez del
proceso.
Técnicas de Calidad en el Software
Evolución e Historia del CMM
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Se desarrollan dos métodos “software process
assessment” y “software capability evaluation” y
un cuestionario de madurez.
• Después de 4 años de experiencia el SEI
evolucionó al marco de madurez y lo convirtió en
CMM.
Técnicas de Calidad en el Software
Evolución e Historia del CMM
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Es una aplicación con sentido común de los conceptos
de la administración de procesos y el mejoramiento de
la calidad al desarrollo y mantenimiento del software.
• Es una guía desarrollada por la comunidad.
Técnicas de Calidad en el Software
¿Qué es el Modelo de Capacidad y
Madurez para el Software (SW-CMM)?
• Es un modelo para el mejoramiento organizacional.
• Es la estructura subyacente para la aplicación confiable
y consistente de los métodos de apreciación de CMM.
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• El CMM
– se basa en prácticas reales
– refleja lo mejor del estado de la práctica
– refleja las necesidades de los individuos que realizan
mejoras del proceso de software, y evaluaciones del
proceso de software.
– está documentado
– está disponible públicamente
Técnicas de Calidad en el Software
El Modelo de
Capacidad y Madurez
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
Técnicas de Calidad en el Software
El “Modelo” CMM
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• El CMM es un documento viviente que se adapta
a las necesidades actuales de la industria del
software.
• La versión actual 1.1 está desde 1993.
• Los planes para la version 2.0 están fuertemente
influenciados por SPICE de ISO, aunque
originalmente el CMM influenció a ISO.
Técnicas de Calidad en el Software
Cambios del CMM
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• http://www.sei.cmu.edu/activities/cmm/obtain.cmm.html
• Ahí se pueden obtener los siguientes documentos en
formato pdf:
– Mark C. Paulk, Bill Curtis, Mary Beth Chrissis, and Charles V.
Weber,"Capability Maturity Model for Software, Version 1.1",
Software Engineering Institute, CMU/SEI-93-TR-24, DTIC
Técnicas de Calidad en el Software
Para empezar con CMM
Number ADA263403,February 1993.
– Mark C. Paulk, Charles V. Weber, Suzanne M. Garcia, Mary Beth
Chrissis, and Marilyn W. Bush, "Key Practices of the Capability
Maturity Model, Version 1.1", Software Engineering Institute,
CMU/SEI-93-TR-25,DTIC Number ADA263432, February 1993.
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
•
•
•
•
•
Inicial
Repetido
Definido
Administrado
Optimizado
Técnicas de Calidad en el Software
Los 5 Niveles de Madurez
del Proceso de Software
• [Ver Fig. 2.1]
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• El proceso de software es caracterizado
como ad hoc, y ocasionalmente cómo
caótico. Pocos procesos son definidos y el
éxito depende del esfuerzo individual y del
heroísmo.
Técnicas de Calidad en el Software
Nivel 1: Inicial
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Se establecen procesos de administración de
proyectos básicos para registrar costos,
calendarios y funcionalidad.
• Se pone en práctica la disciplina de procesos
necesaria para repetir éxitos pasados en proyectos
con aplicaciones similares.
Técnicas de Calidad en el Software
Nivel 2: Repetible
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• El proceso de software para las actividades de
administración e ingeniería son documentadas,
estandarizadas e integradas en un proceso de
desarrollo de software estándar para la
organización.
• Todos los proyectos usan una versión aprobada y
adaptada del proceso de software estándar de la
organización para desarrollar y mantener el
software.
Técnicas de Calidad en el Software
Nivel 3: Definido
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Se colectan mediciones detalladas del
proceso de software y de la calidad del
producto.
• Se entienden cuantitativamente y se
controlan el proceso del software y los
productos.
Técnicas de Calidad en el Software
Nivel 4: Administrado
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• El mejoramiento continuo del proceso es
permitido por la retroalimentación
cuantitativa de los procesos y de pilotear
ideas y tecnologías inovativas.
Técnicas de Calidad en el Software
Nivel 5: Optimizado
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
Técnicas de Calidad en el Software
Los 5 Niveles de Madurez
del Proceso de Software
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• El CMM identifica la manera como una
organización debe evolucionar para establecer una
cultura de excelencia en la ingeniería del software.
Técnicas de Calidad en el Software
Brincar Niveles de Madurez
• Cada nivel de madurez es el fundamento necesario
para construir el siguiente nivel, por lo que tratar
de brincar niveles es casi siempre
contraproducente.
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Las organizaciones pueden instituir mejoras del
proceso específicas cuando ellas quieren, aún
antes de que esten preparadas para avanzar al nivel
donde se recomienda esa práctica.
Técnicas de Calidad en el Software
Brincar Niveles de Madurez
• Estas organizaciones deben entender que las
mejoras obtenidas están en un riesgo mayor ya que
el fundamento para su éxito no esta completo.
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Cada nivel incrementa la visibilidad del proceso
de software para los administradores y los
ingenieros
• [Ver Fig. 2.3]
Técnicas de Calidad en el Software
Visibilidad del
Proceso de Software
• Nivel 1: Entidad amorfa, todo el proceso es una
caja negra.
• Nivel 2: Los entregables son cajas negras y solo se
puede monitorear al final de cada etapa.
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Nivel 3: El proceso interno de cada etapa es
visible, los administradores y los ingenieros
entienden lo que está pasando. Se preparan
riesgos.
• Nivel 4: El proceso es medido y controlado, las
decisiones se toman con bases cuantitativas. Su
habilidad de predecir los resultados se incrementa.
• Nivel 5: Se prueban nuevas y mejores maneras de
construir el software de manera continua.
Técnicas de Calidad en el Software
Visibilidad del
Proceso de Software
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Juran descompone la administración de la calidad
en tres procesos administrativos básicos:
• [Ver Fig. 2.2]
– Planeación de la Calidad
• La cuál al principio es muy pobre y produce desperdicios.
Técnicas de Calidad en el Software
Entendiendo la
Calidad en el CMM
– Control de Calidad
• Se utiliza para evitar que las cosas empeoren, el pico
representa un apaga fuegos.
– Mejoramiento de la Calidad
• El desperdicio es la oportunidad de mejora.
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Nivel 1
•
•
•
•
• Mal rendimiento, no hay predicción.
Nivel 2
• Mal rendimiento, si hay predicción.
Nivel 3
• Mejora el rendimiento y la predicción, gran variabilidad.
Nivel 4
• Mejora el rendimiento, predicción y variabilidad
Nivel 5
• Mejoramiento continuo en todos los aspectos.
– [Ver Fig. 2.4]
Técnicas de Calidad en el Software
Predicción del Rendimiento
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Hay 32 compañías listadas en el SEMA* –
Published Maturity Levels (hasta Julio, 2000).
• Esta lista no es exhaustiva.
• De las 32 empresas, 18 están ubicadas en la India,
son multinacionales con oficinas en la India, o sus
headquarters están ubicados en la India.
•
Técnicas de Calidad en el Software
Level 5 Companies
*Software Engineering Measurement & Analysis – SEI, CMU.
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
Técnicas de Calidad en el Software
¿Cuándo Utilizar SW-CMM?
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• ¿Está ud. preocupado por el estado actual del software en
su organización?
• ¿Están los clientes preocupados por que ven que el
software desarrollado por la empresa no satisface
completamente sus necesidades?
Técnicas de Calidad en el Software
La Necesidad de Evaluar el
Proceso del Software
• ¿Está la competencia usando superioridad en el software
para ganar ventaja competitiva?
• ¿Están más preocupados sus empleados por terminar el
proyecto a tiempo que por hacerlo bien?
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• ¿Están los administradores y empleados lo
suficientemente molestos con la situación actual
como para cambiar las cosas?
• ¿Están lo suficientemente molesto como para
dedicarle tiempo a identificar los problemas,
atacarlos y dispuestos a solucionarlos?
• Si la respuesta es no a cualquiera de estas
preguntas, muy dificilmente se logrará el cambio o
inspirar el cambio en los demás.
Técnicas de Calidad en el Software
La Necesidad del Cambio
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
Técnicas de Calidad en el Software
El Enfoque IDEAL del SEI
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• ¿Por qué debería una organización interesarse en el
SW-CMM?
– Deseo de mejorar el proceso
• Una liga directa los objetivos del negocio
• Disponibilidad de invertir en la mejora ($$$)
Técnicas de Calidad en el Software
La Necesidad de Mejorar
– Preocupación del cliente sobre el rendimiento del proceso
• Puede guiar a un mejoramiento colaborativo
– Preocupación sobre evaluaciones de capacidad del software
• ¿Es costo-efectivo en pequeñas empresas?
– Estar a la moda
• Será un desastre!!!
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• Predictabilidad
– La habilidad de predecir el costo, el tiempo, y los defectos
basado en el historial de rendimiento
– Límites superiores e inferiores en el rendimiento esperado, en
lugar de estimaciones puntuales.
Técnicas de Calidad en el Software
Lo que se encuentra al
Final del ArcoIris
• Reconocimiento de lo desconocido
– Los requerimientos cambian!!(?)
– La administración del software es administración de riesgos.
• Disponibilidad de trabajar con el cliente y el
usuario final para entender sus necesidades.
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• SW-CMM fué iniciado por que . . .
– … existían sobregiros exagerados en el tiempo y el
costo.
– … se entregaba una funcionalidad incompleta (e
incluso incorrecta) sobre lo que se había acordado.
– … se alcanzaba una calidad muy inferior a la deseada.
– … no se podía predecir el resultado final del proceso de
desarrollo del software.
– … en general, por la crisis crónica del software!!!
Técnicas de Calidad en el Software
¿Por qué SW-CMM?
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• SW-CMM fué escrito para proveer de buenas prácticas de
administración e ingeniería de software a cualquier proyecto en
cualquier ambiente.
– Las prácticas son descritas de manera jerárquica.
– Las prácticas detalladas principalmente apoyan a grandes
organizaciones desarrolladoras de software.
– Los componentes normativos (con caracter de obligatoriedad)
son los niveles de madurez, las áreas de proceso clave (KPA), y
las metas.
– Todas las prácticas son informativas!
• El aprendizaje organizacional previene el reinventar la rueda para
lograr un proceso repetible.
Técnicas de Calidad en el Software
¿Donde Aplicar SW-CMM?
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• El SW-CMM es un documento de 500 páginas.
• Las prácticas clave, las subprácticas, los ejemplos, etc. proveen
una guía para interpretar a CMM.
– La mayor parte de las recomendaciones son dirigidas a proyectos
grandes en organizaciones grandes.
• La documentación es importante y no necesita ser larga o
compleja.
• El entrenamiento, los recursos, herramientas, políticas,
supervición, medición, etc. son importantes y la
institucionalización de éstas no tiene por que ser intrusiva
Técnicas de Calidad en el Software
El Detalle en SW-CMM
– La cultura organizacional es “la manera como hacemos las cosas
por aquí.”
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
• SW-CMM intenta ser …
– descriptivo de las prácticas de administración e ingeniería
de software.
– prescriptivo de las prioridades de mejoramiento del
proceso.
• Las áreas de proceso clave (KPA) describen el qué y no el
cómo.
Técnicas de Calidad en el Software
El Qué vs el Cómo
– La ignorancia de cómo implementar procesos nos lleva a
descuidar prácticas de CMM.
– Es un problema general para las personas técnicas que han
sido promovidas a puestos administrativos.
Juan Antonio Vega Fernández
 Derechos Reservados, 1999
Descargar

Introducción