460 likes | 697 Views
Capability Maturity Model for Software SW-CMM. Técnicas de Calidad en el Software. Recomendaciones para Mejorar el Proceso del Software. Juan Antonio Vega Fernández. Derechos Reservados, 1999-2003. Organizaciones Maduras e Inmaduras. Técnicas de Calidad en el Software.
E N D
Capability Maturity Model for Software SW-CMM Técnicas de Calidad en el Software Recomendaciones para Mejorar el Proceso del Software Juan Antonio Vega Fernández Derechos Reservados, 1999-2003
Organizaciones Maduras e Inmaduras Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Organizaciones Maduras e Inmaduras Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Organizaciones Maduras e Inmaduras Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Organizaciones Maduras e Inmaduras Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Conceptos Fundamentales Técnicas de Calidad en el Software • 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.) Juan Antonio Vega Fernández Derechos Reservados, 1999
El Proceso del Software Técnicas de Calidad en el Software Procedures & Methods Process Tools People 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
El Proceso del Software Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Conceptos Fundamentales Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Conceptos Fundamentales Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Conceptos Fundamentales Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Conceptos Fundamentales Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Evolución e Historia del CMM Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Aplicación de TQM al Software Técnicas de Calidad en el Software • Los conceptos de mejoramiento de la calidad se aplican en el contexto general del negocio, CMM sólo se aplica al software. Juan Antonio Vega Fernández Derechos Reservados, 1999
Evolución e Historia del CMM Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Evolución e Historia del CMM Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
¿Qué es el Modelo de Capacidad y Madurez para el Software (SW-CMM)? Técnicas de Calidad en el Software • 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. • 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 Modelo de Capacidad y Madurez Técnicas de Calidad en el Software • 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 Juan Antonio Vega Fernández Derechos Reservados, 1999
El “Modelo” CMM Técnicas de Calidad en el Software Juan Antonio Vega Fernández Derechos Reservados, 1999
Cambios del CMM Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Para empezar con CMM Técnicas de Calidad en el Software • 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 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
Los 5 Niveles de Madurez del Proceso de Software Técnicas de Calidad en el Software • Inicial • Repetido • Definido • Administrado • Optimizado • [Ver Fig. 2.1] Juan Antonio Vega Fernández Derechos Reservados, 1999
Nivel 1: Inicial Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Nivel 2: Repetible Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Nivel 3: Definido Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Nivel 4: Administrado Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Nivel 5: Optimizado Técnicas de Calidad en el Software • El mejoramiento continuo del proceso es permitido por la retroalimentación cuantitativa de los procesos y de pilotear ideas y tecnologías inovativas. Juan Antonio Vega Fernández Derechos Reservados, 1999
Los 5 Niveles de Madurez del Proceso de Software Técnicas de Calidad en el Software Juan Antonio Vega Fernández Derechos Reservados, 1999
Brincar Niveles de Madurez Técnicas de Calidad en el Software • El CMM identifica la manera como una organización debe evolucionar para establecer una cultura de excelencia en la ingeniería del software. • 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
Brincar Niveles de Madurez Técnicas de Calidad en el Software • 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. • 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
Visibilidad del Proceso de Software Técnicas de Calidad en el Software • Cada nivel incrementa la visibilidad del proceso de software para los administradores y los ingenieros • [Ver Fig. 2.3] • 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
Visibilidad del Proceso de Software Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
Entendiendo la Calidad en el CMM Técnicas de Calidad en el Software • 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. • 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
Predicción del Rendimiento Técnicas de Calidad en el Software • 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] Juan Antonio Vega Fernández Derechos Reservados, 1999
Level 5 Companies Técnicas de Calidad en el Software • 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. • *Software Engineering Measurement & Analysis – SEI, CMU. Juan Antonio Vega Fernández Derechos Reservados, 1999
¿Cuándo Utilizar SW-CMM? Técnicas de Calidad en el Software Juan Antonio Vega Fernández Derechos Reservados, 1999
La Necesidad de Evaluar el Proceso del Software Técnicas de Calidad en el Software • ¿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? • ¿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
La Necesidad del Cambio Técnicas de Calidad en el Software • ¿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. Juan Antonio Vega Fernández Derechos Reservados, 1999
El Enfoque IDEAL del SEI Técnicas de Calidad en el Software Juan Antonio Vega Fernández Derechos Reservados, 1999
La Necesidad de Mejorar Técnicas de Calidad en el Software • ¿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 ($$$) • 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
Lo que se encuentra al Final del ArcoIris Técnicas de Calidad en el Software • 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. • 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
¿Por qué SW-CMM? Técnicas de Calidad en el Software • 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!!! Juan Antonio Vega Fernández Derechos Reservados, 1999
¿Donde Aplicar SW-CMM? Técnicas de Calidad en el Software • 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. Juan Antonio Vega Fernández Derechos Reservados, 1999
El Detalle en SW-CMM Técnicas de Calidad en el Software • 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 • La cultura organizacional es “la manera como hacemos las cosas por aquí.” Juan Antonio Vega Fernández Derechos Reservados, 1999
El Qué vs el Cómo Técnicas de Calidad en el Software • 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. • 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