Qualidade de Software CMM Uma Visão Geral 1 Sumário z z z z O que é o CMM Os 5 Niveis de Maturidade do CMM Caracterização Comportamental dos Níveis de Maturidade As inspirações do CMM 2 Qualidade de Software PROCESSO DE SOFTWARE Processo de Desenvolvimento requisitos de software produto usuário desenvolvedor organização requisitos atendidos SOFTWARE PRODUTO SOFTWARE COM QUALIDADE 3 Melhoria de Processo de Software Processo é examinado pela 5 ALAVANCAGEM Abordagem IDEAL Ações futuras 1 INICIALIZAÇÃO Avaliação do Processo Melhoria do Processo 4 Teste Piloto Soluçã o Recomen -dações 3 DIRETRIZES Refinamento REALIZAÇÃO Estado Atual e Desejado DIAGNÓSTICO conduz à Implementação InfraEstímulo Contexto e Patrocínio Estrutura 2 Analisar/ Validar Plano de Ação Prioridades Abordagem A abordagem IDEAL descreve as fases, atividades e recursos necessários para uma melhoria de processo com sucesso. 4 Abordagem IDEAL 1 INICIALIZAÇÃO INICIALIZAÇÃO InfraEstímulo Contexto e Patrocínio Estrutura 2 DIAGNÓSTICO CMM Ações futuras Analisar/ Validar 5 Implementação 4 REALIZAÇÃO Estado Atual e Desejado Recomendações 3 DIRETRIZES ALAVANCAGEM Refinamento Teste Solução Piloto Plano de Ação Prioridades Abordagem 5 O que é o CMM? z Uma estrutura que descreve os elementos chaves de um processo de software eficaz. eficaz z Um caminho de melhoramento evolucionário (5 níveis de maturidade) para organizações de software mudarem de um processo de software imaturo, ad hoc, hoc para um processo maduro, disciplinado. 6 CMM - Capability Maturity Model z Capability Maturity Model (Modelo de Maturidade da Competência) z Maturidade da Competência : competência em controlar o Processo de Software (desenvolvimento, gerenciamento e manutenção). z Maturidade da Competência Processo de Software Maturidade do 7 Maturidade de Processo de Software z A maturidade dos processos de software de uma organização influencia na sua capacidade de atingir metas de custo, custo qualidade e cronograma z A qualidade do processo de software pode ser analisada através do nível de maturidade do processo. processo 8 CMM - Capability Maturity Model z z desenvolvido pela SEI (Instituto de Engenharia de Software) Carnegie Mellon University, Pittsburgh, PA Missão da SEI: SEI Exercer liderança nos estágios avançados da prática de engenharia de software para melhorar a qualidade de sistemas que dependam de software. SEI Software Engineering Institute 9 A Evolução do CMM (a) z z z z 1986 - início do desenvolvimento de um modelo de maturidade de processo, para ajudar as organizações a melhorar seus processos de software (por solicitação do governo federal). junho 1987 - liberação de breve descrição do modelo de maturidade de processo de software. setembro 1987 - versão preliminar do questionário de maturidade 1991 - 1a versão do CMM (Versão 1.0) 10 A Evolução do CMM (b) z 1993 - depois de 5 anos de experiência, o modelo de maturidade evoluiu para um modelo completamente definido, usando conhecimento adquirido das avaliações de processo de software e de extensivo retorno das indústrias e do governo CMM • fevereiro 1993 - Versão 1.1 do CMM - Capability Maturity Model for Software (atualmente usada) 11 Premissa Básica z Premissa básica que está por baixo do trabalho da SEI sobre maturidade de processo: A qualidade de um software produto é profundamente determinada pela qualidade do processo de desenvolvimento e de manutenção usado para construí-lo. 12 Visão Geral do Modelo (a) z z z SEI desenvolveu um modelo de 5 níveis que orienta uma organização em como “amadurecer” seus processos de software. O modelo descreve um caminho evolucionário que vai de um processo indisciplinado para um processo disciplinado. disciplinado Sem a disciplina descrita no modelo, programas de melhoria podem mostrar-se ineficientes porque os fundamentos necessários para apoiar os mnelhoramentos sucessivos não foram estabelecidos. estabelecidos 13 Visão Geral do Modelo (b) z z z Os 5 níveis de maturidade descrevem fundamentos sucessivos para melhoria contínua do processo e definem uma escala ordinal para medir a maturidade de processo de uma organização. As vantagens dos níveis de maturidade é que eles fornecem prioridades claras, claras as quais orientam na seleção de algumas atividades de melhoramento que serão muito úteis se implementadas imediatamente. Isso é importante porque a maioria das organizações podem focalizar somente algumas poucas atividades de melhoramento de cada vez. vez 14 Os 5 Níveis de Maturidade do CMM OTIMIZADO Organizações com Melhoria Contínua GERENCIADO Organizações Previsíveis DEFINIDO Organizações Padronizadas REPETÍVEL INICIAL Organizações Disciplinadas Organizações Caóticas 15 CMM: Nível 1 de Maturidade • O processo de software é caracterizado como ad hoc, e ocasionalmente até mesmo caótico. INICIAL Organizações Caóticas • Poucos processos são definidos e o sucesso depende de esforços individuais e heróicos. 16 CMM Nível 1- Inicial O Gerenciamento de Software é uma Caixa Preta In z z z Out Requisitos fluem para dentro. Um produto de software é (normalmente) produzido através de algum processo disforme. disforme O produto flui para fora e (espera-se) funciona. 17 CMM - Nível 1 - Inicial Organizações Caóticas z z z A organização não provê um ambiente estável para o desenvolvimento e manutenção de software Cronogramas e orçamentos são frequentemente abandonados por não serem baseados em estimativas realísticas Numa crise para cumprir cronograma, etapas planejadas do ciclo de vida não são realizadas prejudicando a qualidade do software 18 CMM - Nível 1 - Inicial Organizações Caóticas z z z Desempenho basicamente em função da competência e heroísmo das pessoas que fazem o trabalho. O processo de software é imprevisível, já que é constantemente alterado no decorrer do projeto Os maiores problemas com os quais se defrontam as organizações de software são gerenciais e não técnicos. 19 CMM: Nível 2 de Maturidade • Processos administrativos básicos são estabelecidos para acompanhar custo, cronograma e funcionalidade. • A disciplina de processo está REPETÍVEL em repetir sucessos anteriores Organizações em projetos com aplicações Disciplinadas similares. 20 CMM Nível 2- Repetível Está em vigor um Sistema de Gerenciamento de Projeto In z Out Processo de construção de software é uma série de caixas pretas com pontos de verificação definidos. 21 CMM - Nível 2 - Repetível Organizações Disciplinadas z Caracterizado pela existência de um processo efetivo de planejamento e gerenciamento do projeto de software onde os controles sobre os procedimentos, compromissos e atividades são bem fundamentados. z Os processos de planejamento e gerenciamento do projeto de software devem ser praticados na organização, organização documentados, treinados e controlados. z Neste nível ainda não há preocupação com o processo de engenharia de software 22 CMM - Nível 2 - Repetível Organizações Disciplinadas z z z O planejamento e gerenciamento de novos projetos são baseados na experiência obtida com projetos similares, similares que tenham obtido sucesso no passado Um fator relevante para a organização nesse nível é a dependência das experiências anteriores. anteriores O desenvolvimento de novos tipos de produtos pode causar um desequilíbrio no projeto, nas estimativas de custos e nos cronogramas 23 CMM: Nível 3 de Maturidade • Os processos de software, tanto para atividades administrativas quanto para de engenharia estão documentados, DEFINIDOpadronizados e integrados em um processo de software padrão Organizações Padronizadas para a organização. • Todos os projetos usam uma versão aprovada do processo de software padrão da organização para desenvolvimento e manutenção de software. 24 CMM Nível 2- Repetível Desenvolvimento de software de acordo com um processo bem definido In z z Out Funções e responsabilidades no processo são bem entendidas. entendidas A produção do produto de software é visível através do processo de software. 25 CMM - Nível 3 - Definido Organizações Padronizadas z Caracterizado principalmente pela existência de um processo de engenharia de software bem definido, documentado e padrão para a empresa. z As saídas de uma atividade fluem naturalmente para as entradas da próxima atividade z Cada projeto de software utiliza o processo padrão da organização como base para implementar seu próprio processo. 26 CMM - Nível 3 - Definido Organizações Padronizadas z Existe um grupo para processos de software (SEPG) responsável por facilitar atividades de definição e melhoria de processos. z Existe um programa de treinamento que assegura que todos tenham o conhecimento e a capacidade requerida para desenvolver suas tarefas, utilizando as ferramentas e os métodos disponíveis z Processos que dêem poderes as pessoas para realizarem o trabalho 27 CMM: Nível 4 de Maturidade GERENCIADO • São coletadas medidas detalhadas da qualidade do processo e do produto. Organizações Previsíveis • Tanto o processo de software quanto os produtos são quantitativamente compreendidos e controlados. 28 CMM Nível 4- Gerenciado Produto e processo são gerenciados quantitativamente In z z Out A gerência tem bases objetivas para tomada de decisão. A gerência é capaz de prever o desempenho dentro de limites quantificados. 29 CMM - Nível 4 - Gerenciado Organizações Previsíveis z z z Caracterizado pela existência de processos de software passíveis de medida. medida A produtividade e a qualidade são medidas em todas as etapas do processo de software e para todos os projetos da organização. O controle sobre produtos e processos de todos os projetos são adquiridos através da diminuição da variação do seu desempenho para dentro de limites quantitativos aceitáveis. 30 CMM - Nível 4 - Gerenciado Organizações Previsíveis z z z A organização começa a aplicar métricas de controle de qualidade para aumentar a qualidade e a produtividade do software entregue aos clientes. À medida que a organização adquire mais conhecimento sobre o produto, produto tem a oportunidade de remover várias fontes de comprometimento da qualidade final Isto proporciona a oportunidade de colocar o produto sob um controle estatístico de qualidade. qualidade 31 CMM: Nível 5 de Maturidade OTIMIZADO Organizações com Melhoria Contínua • Melhorias contínuas são realizadas no processo, utilizando-se as medidas quantitativas de qualidade do processo e produto, e também aplicando-se idéias e tecnologias inovadoras. 32 CMM Nível 5- Otimizado Foco na melhoria contínua do processo In z Out Mudança disciplinada é um meio de vida. 33 CMM - Nível 5 - Otimizado Melhoria Contínua z Caracterizado pela existência de processos de software com contínua melhoria. melhoria z Os processos de software são avaliados para prevenir tipos de defeitos conhecidos devido à recorrência, e as lições aprendidas são disseminadas para outros projetos. z Tecnologias que proporcionem mais retorno para processos específicos, utilizados pela organização, são selecionadas para serem introduzidas, de maneira gerenciável na organização. 34 CMM - Nível 5 - Otimizado Melhoria Contínua z Apesar de o processo ser maduro, ele é alvo de contínuas melhorias. melhorias z Os grupos de projetistas analisam o rendimento do projeto para determinar as causas dos defeitos. defeitos z Nesse nível foi atingido um ambiente de excelência em engenharia de software 35 Níveis de maturidade não podem ser omitidos z Processos dos níveis mais altos de maturidade podem ser realizados até mesmo por organizações do nível 1 (embora talvez ineficazmente). z Competência em processos é construída em estágios, estágios uma vez que alguns processos não são eficazes quando outros não estão estáveis. z Cada nível oferece um fundamento necessário para melhorias a serem implementadas no nível seguinte. 36 Níveis de maturidade não podem ser omitidos z Sem a disciplina de gerenciamento o processo de engenharia é sacrificado. sacrificado z Medidas detalhadas são inconsistentes sem um processo definido. z O efeito de inovação de processo não é claro em um processo cheio de ruído. 37 CMM: capacidade x pessoas, tecnologia e medidas Otimizado (5) Foco na melhoria contínua do processo Gerenciado (4) Processo medido e controlado Definido (3) Processo é caracterizado e claramente bem entendido Repetível (2) Pode repetir tarefas executadas com sucesso Inicial (1) Pobremente controlado e imprevisível 38 CMM: Capacidade x Pessoas Nível 1 Nível 2 sucesso depende de indivíduos, apoio administrativo comprometi mentos são compreendidos e administrados sucesso depende de heróis individuais “apagando incêndio” é o modo de viver relacão entre disciplinas são descordenadas e até adversas Nível 3 Nível 4 Nível 5 grupos de projeto trabalham juntos forte senso de trabalho em equipe dentro de cada projeto forte senso de trabalho em equipe na organização treinamento é planejado e de acordo com os papéis todos estão envolvidos na melhoria do processo as pessoas são treinadas 39 CMM: Capacidade x Tecnologia Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 introdução de nova tecnologia é um risco tecnologia apoia atividades estáveis e estabelecidas novas tecnologias são avaliadas em bases qualitativas novas tecnologias são avaliadas em bases quantitativas novas tecnologias são procuradas e desenvolvidas 40 CMM: Capacidade x Medidas Nível 1 coleta de dados e análise são feitas ad hoc Nível 2 dados de administração e planejamento usados em projetos individuais Nível 3 dados são coletados e usados em todo processo definido dados são compartilhados ao longo do projeto Nível 4 definição e coleta de dados padronizados na organização dados são usados para compreender o processo quantitativamente e estabilizá-lo Nível 5 dados são usados para avaliar e selecionar melhorias de processo 41 As Inspirações do CMM z z z z A estrutura do modelo de maturidade de processo de software está baseada nos princípios de qualidade de produto que existem há 60 anos. 1940 - Shewart (AT&T) promulgou os princípios de controle estatístico de qualidade. qualidade Os princípios de Shewart foram posteriormente desenvolvidos e demonstrados com sucesso no trabalho de Deming e Juran. O trabalho desses pioneiros princípios do TQM (Total Quality Management) 42 A reação em cadeia de Deming A qualidade do produto melhora O custo diminui devido a menos re-trabalho, menos problemas, menos demora, melhores projetos uso eficiente de recursos e materiais. A capacidade melhora. O mercado é conquistado devido a melhores produtos e preços menores Lucro e mais serviço é conseguido Permanência no negócio 43 Adaptação da reação em cadeia de Deming ao Projeto de Software A organização amadurece O processo de software torna-se melhor definido e mais consistemente implementado através da organização. Software com maior qualidade , aumento de produtividade, menos re-trabalho, melhores planos e melhor administração de projeto de software 44 Gerenciamento da Qualidade Total z Gerenciamento da Qualidade Total (TQM) (TQM é a aplicação de métodos quantitativos e recursos humanos para melhorar : - o material e serviços fornecidos por uma organização - todos os processos dentro de uma organização - o nível de atendimento das necessidades do cliente , no presente e no futuro 45 Princípios do TQM adaptados no Modelo CMM z O CMM estabelece, durante os estágios iniciais, iniciais a administração do projeto e os fundamentos de engenharia e durante os estágios mais avançados de maturidade, o controle quantitativo do processo de software. 46 Aplicando TQM ao Software Organização Projeto A Projeto B Projeto X Projeto C TQM hardware software CMM O processo de melhoria se aplica em todo o contexto do negócio - o CMM se aplica especificamente ao software. 47 Pontos Comuns no Movimento da Qualidade z Melhoria tem o seu foco em ajustar o processo e não em culpar as pessoas. z Melhoria deve ser medida e ter sua implementação periodicamente controlada. controlada z Melhoria requer constância de investimentos, recompensas e incentivos. z Melhoria é um processo contínuo. contínuo Se o nível de desconforto não é suficientemente alto, as coisas não mudarão. mudarão z 48 Motivação para o CMM Comunicar a visão de: • o que significa modelo de maturidade • como ele resulta em melhoria da qualidade • como ele faz a relação entre maturidade de processo e competência (capacitação) Fornecer fundamento para: • dar suporte à avaliações baseadas no CMM • testar e aperfeiçoar o modelo de maturidade 49