Garantia da Qualidade, Medição e Melhoria Leonardo Gresta Paulino Murta leomurta@ic.uff.br
Exercício motivacional Leonardo Murta Garantia da Qualidade, Medição e Melhoria 2
Qualidade depende da perspectiva... Atributo 1 Atributo 2 Atributo 3 Atributo 4 Atributo 5 Atributo 6 Atributos de qualidade Leonardo Murta Garantia da Qualidade, Medição e Melhoria 3
Qualidade depende da perspectiva... Baixa Qualidade (para o cliente) Priorizou Atributo 1 Atributo 2 Atributo 3 Atributo 4 Atributo 5 Atributo 6 Gostaria Atributos de qualidade Leonardo Murta Garantia da Qualidade, Medição e Melhoria 4
Qualidade depende da perspectiva... Alta Qualidade (para o cliente) Priorizou Atributo 1 Atributo 2 Atributo 3 Atributo 4 Atributo 5 Atributo 6 Gostaria Atributos de qualidade Leonardo Murta Garantia da Qualidade, Medição e Melhoria 5
Frases para pensar... Fazer é só uma vez, manter é para sempre Você pode fazer certo ou fazer de novo Não ter tempo para pensar em qualidade agora significa ter tempo para refazer o produto no futuro Leonardo Murta Garantia da Qualidade, Medição e Melhoria 6
Evolução da Garantia da Qualidade Anos 50 e 60 O próprio desenvolvedor avalia a qualidade dos seus produtos A partir dos anos 70 Normas e equipes próprias (SQA) para a avaliação da qualidade Leonardo Murta Garantia da Qualidade, Medição e Melhoria 7
Responsabilidades do desenvolvedor x SQA Desenvolvedor Conceber produtos de qualidade SQA (Software Quality Assurance) Apoiar às equipes de desenvolvimento Garantir que os produtos gerados pela equipe de desenvolvimento de fato têm qualidade Leonardo Murta Garantia da Qualidade, Medição e Melhoria 8
Tarefas do SQA Preparar o plano de SQA Identificar as normas a serem seguidas Identificar as auditorias a serem feitas Participar na definição do processo Auditar as atividades de ES para assegurar compatibilidade com o processo definido Auditar os produtos gerados para assegurar a sua compatibilidade com os padrões definidos Reportar as não conformidades encontradas Assegurar que as correções necessárias serão de fato feitas Leonardo Murta Garantia da Qualidade, Medição e Melhoria 9
Medição Por que medir? O que significa uma medição? Medição é o caminho para maturidade! Leonardo Murta Garantia da Qualidade, Medição e Melhoria 10
Medição Medições permitem: Aumentar a visibilidade do produto, projeto ou processo Tomadas de decisão objetivas ( eu acho x eu tenho certeza ) 2 3 4 5 9 7 8 Processo Projeto Produto Leonardo Murta Garantia da Qualidade, Medição e Melhoria 11
Baseline de medições Medições isoladas usualmente são inúteis A partir de diversas medições em contextos semelhantes é possível Estabelecer uma baseline Comparar as novas medições com a baseline Leonardo Murta Garantia da Qualidade, Medição e Melhoria 12
Medindo pessoas? Importante Não utilizar medições para punir ou premiar indivíduos!!! Medições devem ser utilizadas para aprimorar o produto, projeto ou processo Leonardo Murta Garantia da Qualidade, Medição e Melhoria 13
O que medir? Existe uma técnica que nos apoia nessa tarefa Goal-Question-Metric (GQM) Algoritmo 1. Definir os objetivos de negócio(goal) 2. Definir questões que permitem verificar se cada objetivo está sendo atingido (Question) 3. Definir medidas que apoiam na resposta de cada questão (Metric) Leonardo Murta Garantia da Qualidade, Medição e Melhoria 14
Exemplo: processo de Gerência de Configuração O que medir em Gerência de Configuração? A efetividade do processo Os custos associados Os benefícios obtidos Sugestão: Aplicar GQM Começar a medir antes de modificar o processo Leonardo Murta Garantia da Qualidade, Medição e Melhoria 15
Exemplo: processo de Gerência de Configuração Métricas Custo de operação Número de sistemas/ics sob gerência de configuração Número de solicitações de modificação por mês Tempo gasto para resolução de solicitações de modificação Carga de disco/memória/processamento do servidor de GC Densidade de defeitos por severidade Número de achados na auditoria de GC Tempo gasto para resolução dos achados de auditoria Intervalo entre releases Número de releases corretivas Leonardo Murta Garantia da Qualidade, Medição e Melhoria 16
Como analisar as métricas obtidas? É possível definir um limite (threshold) para a métrica em questão Se a métrica passar desse limite, é necessário fazer uma análise de causa Qual seria um limite apropriado? Que tal deixar a própria história determinar esse limite? Leonardo Murta Garantia da Qualidade, Medição e Melhoria 17
Processos estáveis x capazes Nem sempre o processo mais rápido é um processo estável ou capaz Um processo estável permite que o desempenho futuro seja previsível em função do desempenho passado Um processo capaz é um processo estável em que o desempenho atende aos requisitos do cliente Leonardo Murta Garantia da Qualidade, Medição e Melhoria 18
Processos estáveis x capazes Problema: Ir em até 20 minutos de Icaraí para São Francisco Processos Ir de carro Ir de ônibus Ir de bicicleta Ir a pé Qual é o processo mais rápido num cenário ótimo? Quais processos são estáveis? Quais processos são capazes? Leonardo Murta Garantia da Qualidade, Medição e Melhoria 19
probabilidade probabilidade probabilidade probabilidade Processos estáveis x capazes carro ônibus tempo 20 min tempo 20 min a pé bicicleta estável e capaz tempo 20 min tempo 20 min Leonardo Murta Garantia da Qualidade, Medição e Melhoria 20
Gráfico de controle O gráfico de controle é um artefato que nos permite analisar a estabilidade de um processo Foi criado em 1920 por Walter Shewhart 12,0 10,0 8,0 6,0 4,0 2,0 0,0 1 3 5 7 9 11 13 15 17 19 +3σ +2σ +1σ μ -1σ -2σ -3σ Solicitações corretivas Leonardo Murta Garantia da Qualidade, Medição e Melhoria 21
Algoritmo para construção do gráfico de controle 1. Coletar uma série temporal da métrica desejada 2. A partir da série temporal da métrica desejada calcular 1. Média: 1 n x i n i 1 2. Desvio-padrão: 1 n ( x i ) 1 i n 1 2 Leonardo Murta Garantia da Qualidade, Medição e Melhoria 22
Algoritmo para construção do gráfico de controle 3. Desenhar um gráfico com linhas delimitando Média 1 desvio-padrão para cima e para baixo da média 2 desvios-padrão para cima e para baixo da média 3 desvios-padrão para cima e para baixo da média 4. Desenhar os pontos da série desejada e conectar os pontos via uma linha Leonardo Murta Garantia da Qualidade, Medição e Melhoria 23
Exemplo número de solicitações corretivas por semana Passo 1 coleta de métricas Semana 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Solicitações corretivas 5 6 5 9 6 5 4 6 7 5 6 5 5 7 6 3 4 5 8 6 Passo 2 cálculo de média e desvio padrão μ 5,65 σ 1,39 Leonardo Murta Garantia da Qualidade, Medição e Melhoria 24
Exemplo número de solicitações corretivas por semana Passos 3 e 4 desenho do gráfico de controle Semana 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Solicitações corretivas 5 6 5 9 6 5 4 6 7 5 6 5 5 7 6 3 4 5 8 6 +3σ 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 9,8 +2σ 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 8,4 +1σ 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 7,0 μ 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7 5,7-1σ 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3 4,3-2σ 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9 2,9-3σ 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 Leonardo Murta Garantia da Qualidade, Medição e Melhoria 25
Exemplo número de solicitações corretivas por semana Passos 3 e 4 desenho do gráfico de controle 12,0 10,0 8,0 6,0 4,0 2,0 0,0 1 3 5 7 9 11 13 15 17 19 +3σ +2σ +1σ μ -1σ -2σ -3σ Solicitações corretivas Leonardo Murta Garantia da Qualidade, Medição e Melhoria 26
Análise do gráfico de controle Assumindo uma distribuição normal para as medidas coletadas Intervalo Probabilidade do intervalo Eventos esperados fora do intervalo (medidas diárias) μ ± 1σ 68% Dois por semana μ ± 2σ 95% Um a cada três semanas μ ± 3σ 99,7% Um por ano Leonardo Murta Garantia da Qualidade, Medição e Melhoria 27
Análise do gráfico de controle Causa comum de variação Dentro dos limites de probabilidade Existe em todo processo estável e previsível Causa especial de variação Foge os limites de probabilidade Precisa ser analisada e evitada para que o processo possa ser estável e previsível Leonardo Murta Garantia da Qualidade, Medição e Melhoria 28
Análise do gráfico de controle Quando o comportamento do gráfico foge do esperado... É necessário achar uma causa atribuível O processo pode estar instável Situações a serem analisadas 1 evento além de μ ± 3σ 2 de 3 eventos sucessivos do mesmo lado além de μ ± 2σ 4 de 5 eventos sucessivos do mesmo lado além de μ ± 1σ 8 eventos sucessivos do mesmo lado de μ Leonardo Murta Garantia da Qualidade, Medição e Melhoria 29
Análise do gráfico de controle 20,0 15,0 10,0 5,0 0,0-5,0 1 3 5 7 9 11 13 15 17 19 +3σ +2σ +1σ μ -1σ -2σ -3σ Solicitações corretivas Leonardo Murta Garantia da Qualidade, Medição e Melhoria 30
Análise do gráfico de controle Processo instável? Causa atribuível: adoção de testes automatizados 16,0 14,0 12,0 10,0 8,0 +3σ +2σ +1σ μ Ação: Contextualizar a medição com e sem os testes automatizados 6,0 4,0 2,0 0,0-2,0 1 3 5 7 9 11 13 15 17 19-1σ -2σ -3σ Solicitações corretivas Leonardo Murta Garantia da Qualidade, Medição e Melhoria 31
Análise do gráfico de controle Processos estáveis, antes e depois da adição de testes automatizados 14,0 12,0 10,0 +3σ +2σ 8,0 8,0 6,0 4,0 2,0 0,0 1 2 3 4 5 6 7 8 9 +1σ μ -1σ -2σ -3σ Solicitações corretivas 7,0 6,0 5,0 4,0 3,0 2,0 1,0 0,0 +3σ +2σ +1σ μ -1σ -2σ -3σ Solicitações corretivas 1 2 3 4 5 6 7 8 9 10 11 Leonardo Murta Garantia da Qualidade, Medição e Melhoria 32
Modelos de maturidade Crença principal: A qualidade do produto está intimamente ligada à qualidade do processo Leonardo Murta Garantia da Qualidade, Medição e Melhoria 33
Modelos de maturidade Servem para guiar empresas na busca por qualidade Não determinam como algo deve ser feito, mas sim o que deve ser feito Não são incompatíveis com métodos ágeis Existem empresas que usam XP e SCRUM e já avaliaram em algum modelo de maturidade Principais modelos em uso no Brasil CMMI MPS.BR Leonardo Murta Garantia da Qualidade, Medição e Melhoria 34
CMMI Duas perspectivas principais Contínua: mede a capacidade de processos individuais Estagiada: mede a maturidade da organização como um todo Modelo com 22 áreas de processo divididas em 5 níveis de maturidade Leonardo Murta Garantia da Qualidade, Medição e Melhoria 35
MPS.BR Modelo brasileiro semelhante ao CMMI Foco nas pequenas e médias empresas brasileiras Menor custo para implementação e avaliação Mais degraus intermediários, ajudando na melhoria progressiva Modelo com 19 processos e 9 atributos de processo divididos em 7 níveis de maturidade Mapeamento para o CMMI Nível 5 = A Nível 4 = B Nível 3 = C Nível 2 = F Leonardo Murta Garantia da Qualidade, Medição e Melhoria 36
MPS.BR Nível G Parcialmente Gerenciado Gerência de Projetos Gerência de Requisitos Atributo: O processo é executado Atributo: O processo é gerenciado Nível F Gerenciado Aquisição Gerência de Configuração Garantia de Qualidade Gerência de Portifólio de Projetos Medição Atributo: Os produtos de trabalho do processo são gerenciados Leonardo Murta Garantia da Qualidade, Medição e Melhoria 37
MPS.BR Nível E Parcialmente Definido Avaliação e Melhoria do Processo Organizacional Definição do Processo Organizacional Gerência de Recursos Humanos Gerência de Reutilização Atributo: O processo é definido Atributo: O processo está implementado Nível D Largamente Definido Desenvolvimento de Requisitos Integração do Produto Projeto e Construção do Produto Validação Verificação Leonardo Murta Garantia da Qualidade, Medição e Melhoria 38
MPS.BR Nível C Definido Desenvolvimento para Reutilização Gerência de Decisões Gerência de Riscos Nível B Gerenciado Quantitativamente Atributo: O processo é medido Atributo: O processo é controlado Nível A Em Otimização Atributo: O processo é objeto de melhorias e inovações Atributo: O processo é otimizado continuamente Leonardo Murta Garantia da Qualidade, Medição e Melhoria 39
Principais Referências Bibliográficas Anne Hass, 2003. Configuration Management Principles and Practices, Boston, MA, Pearson Education, Inc. Florac, W. A., Carleton, A. D., 1999. Measuting the Software Process. Addison Wesley Pressman, R. S., 2004. Software Engineering: A Practitioner s Approach. 6 ed. McGraw-Hill. SOFTEX, 2009. MPS.BR Melhoria de Processo do Software Brasileiro Guia Geral. http://www.softex.br/mpsbr Leonardo Murta Garantia da Qualidade, Medição e Melhoria 40
Garantia da Qualidade, Medição e Melhoria Leonardo Gresta Paulino Murta leomurta@ic.uff.br