Qualidade de Software | Processo e melhoria de processo
Slides utilizados em aula na disciplina Qualidade de Software do Instituto de Ciências Exatas e Informática - Sistemas de Informação. Pontifícia Universidade Católica de Minas Gerais - Unidade Barreiro, 1º Semestre 2015.
Método Ágil O projeto falhou ou foi abandonado O projeto foi entregue no tempo, com o custo planejado e funcionalidades solicitadas Algum desvio. Ou foi entregue após o prazo, ou custo acima do planejado ou funcionalidade faltando Índices de sucesso e falhas de acordo com uma pesquisa na indústria feita pelo Standish Group (1994; 2012)
faz o quê (produto) • quando (passos, tempo) e • como (procedimentos, insumos) • para obter um objetivo. Apresentação original: Prof. Marcelo Werneck o que são processos?
desenvolver o código-fonte, mas para outros produtos relacionados com: • Um plano de projeto; • Documentação dos requisitos; • Documentação da arquitetura do sistema; • Manual do usuário, etc. o que são processos?
processos diferentes. Por exemplo: • Fazer a análise dos requisitos de um sistema; • Construir uma especificação funcional de um sistema; • Projetar o sistema; • Desenvolver o sistema; • Testar o sistema; • Dar manutenção no sistema, etc. o que são processos?
O trabalho é feito em regime de emergência (apagar incêndio); • Compromissos de prazo e custo não são cumpridos; • O planejamento não é feito com base em estimativas realistas; • Como os processos não são bem definidos todas as iniciativas de melhoria não se sustentam e não se perpetuam; • Quando o projeto é pressionado por prazo, a qualidade e a funcionalidade são sacrificadas; • Frequentemente novas tecnologias são adotadas como solução milagrosa. • O sucesso de um projeto depende de especialistas (“gurus”) para resolver grandes problemas; empresas imaturas Apresentação original: http://www.ic.unicamp.br/~cortes/mc726/cap5a.pdf
Pouca produtividade; • Qualidade de difícil previsão; • Alto custo de manutenção; • Risco na adoção de novas tecnologias. processos imaturos Apresentação original: Prof. Marcelo Werneck
ao processo; • Medidas do produto e do processo; • Adoção disciplinada de tecnologias. Consequência: • Papéis e responsabilidades claramente definidos; • Acompanhamento da qualidade do produto e da satisfação do cliente; • Expectativas para custos, cronograma, funcionalidades e qualidade do produto são normalmente alcançadas. processos maduros Apresentação original: Prof. Marcelo Werneck
de desenvolvimento de software acarreta melhorias na qualidade de software. Essa noção de melhoria de processos ficou famosa através do Prof. William Edwards Deming que trabalhou com a indústria japonesa após a II Guera Mundial.
Convenções Hakone em Tóquio, Deming fez um discurso sobre o que ele chamou de Statistical Product Quality Administration ( Administração Estatística de Qualidade do Produto). Muitos no Japão apontam Deming como a inspiração para o que se tornou conhecido como o milagre econômico do pós-guerra japonês, de 1950 a 1960, quando o Japão se ergueu das cinzas da guerra para se tornar a segunda economia mais poderosa do mundo em menos de uma década.
pelo seu processo de manufatura, mas sim pelo seu processo de projeto, no qual as habilidades e a experiência das pessoas são significativas. Em alguns casos, o processo usado pode ser o determinante mais significativo da qualidade do produto. No entanto, para aplicações inovadoras, as pessoas envolvidas no processo têm mais influência sobra a qualidade do que o processo usado.
de desenvolvimento é mais importante. Se a equipe tem um elevado nível de capacidade e experiência, provavelmente a qualidade do produto será alta. Se a equipe for inexperiente e não qualificada, um bom processo pode limitar os danos, mas, por si só, ele não vai garantir software de alta qualidade.
• O processo pode ser repetido em projetos subsequentes. • O processo pode ser avaliado usando uma variedade de indicadores, tais como custo, qualidade e tempo para entregar um produto. • Ações podem ser tomadas para melhorar o processo para alcançar melhores resultados. benefícios da melhoria de processos
• Processos permitem que se entenda o que se passa. • As pessoas desenvolvem seus potenciais mais completamente e são mais eficientes na organização. • Ao definir, medir e controlar o processo, melhorias são mais bem sucedidas e sustentadas. • A probabilidade de se introduzir tecnologias, técnicas e ferramentas apropriadas aumenta. benefícios da melhoria de processos Apresentação original: Prof. Marcelo Werneck
para avaliar a melhoria da eficiência de um processo. Por exemplo: • O esforço e o tempo dedicado aos testes podem ser monitorados. • Melhorias eficazes no processo de teste devem reduzir o esforço e/ou tempo de teste. No entanto, as medições de processo por si não podem ser usadas para determinar se a qualidade do produto melhorou.
ser coletadas: 1. O tempo necessário para um processo específico ser concluído; 2. Os recursos necessários para um determinado processo; ◦ Total empenho pessoas/dias; ◦ Custos de viagens, etc. 3. O número de ocorrências de um determinado evento; ◦ O número de defeitos descobertos durante a inspeção de código; ◦ O número de mudanças de requisitos solicitados; ◦ O número médio de linhas de código modificadas em resposta a uma mudança de requisitos.
ajudar a responder três questões críticas: 1. Por que estamos introduzindo melhorias de processos? 2. De quais informações precisamos para ajudar a identificar e avaliar as melhorias? 3. Quais medições de processo e produto são necessárias para fornecer essas informações? Meta-Questão-Métrica Goal-Question-Metrics (GQM)
métricas) do paradigma GQM. • Metas: Uma meta é algo que a organização está tentando atingir; ◦ Menor tempo de desenvolvimento de produto; ◦ Aumento de confiabilidade de produto. Meta-Questão-Métrica Goal-Question-Metrics (GQM)
métricas) do paradigma GQM. • Metas: Uma meta é algo que a organização está tentando atingir; ◦ Menor tempo de desenvolvimento de produto; ◦ Aumento de confiabilidade de produto. Meta-Questão-Métrica Goal-Question-Metrics (GQM)
métricas) do paradigma GQM. • Metas: Uma meta é algo que a organização está tentando atingir; ◦ Menor tempo de desenvolvimento de produto; ◦ Aumento de confiabilidade de produto. Questões: São refinamentos das metas. Onde estão os gargalos do processo atual; Como podemos reduzir o tempo necessário para finalizar os requisitos do produto; Quantos dos nossos testes são eficazes na descoberta de defeitos de produto; Meta-Questão-Métrica Goal-Question-Metrics (GQM)
métricas) do paradigma GQM. • Metas: Uma meta é algo que a organização está tentando atingir; ◦ Menor tempo de desenvolvimento de produto; ◦ Aumento de confiabilidade de produto. Questões: São refinamentos das metas. Onde estão os gargalos do processo atual; Como podemos reduzir o tempo necessário para finalizar os requisitos do produto; Quantos dos nossos testes são eficazes na descoberta de defeitos de produto; • Métricas: São as medidas que precisam ser coletadas para ajudar a responder as questões e para confirmar se as melhorias de processo alcançam a meta desejada; ◦ O tempo levado para concluir cada atividade do processo; ◦ O número de comunicações formais entre os clientes e desenvolvedores para cada mudança de requisitos; ◦ O número de defeitos descobertos através dos testes. Meta-Questão-Métrica Goal-Question-Metrics (GQM)
grau de competência técnica e gerencial, para produzir software de boa qualidade, dentro do prazo e custos razoáveis e previsíveis. Sintomas de imaturidade: • Falta de clareza nos projetos e confusão com manutenção; • Falta de treinamento adequado; • Ferramentas inadequadas; • Procedimentos e padrões burocráticos. Apresentação original: Prof. Marcelo Werneck
de práticas estruturadas que descrevem as características de um processo efetivo. Para que serve e em que ajuda? • Definir objetivos de melhoria e prioridades; • Assegurar processos estáveis, capazes e maduros; • Guiar os projetos de melhoria e processos organizacionais; • Diagnosticar juntamente com um método de avaliação o estado das práticas correntes de uma organização. Apresentação original: Prof. Marcelo Werneck
partida; • Um framework priorizando ações; • Um caminho para definir o que as melhorias significam para a sua organização; • Uma linguagem comum e compartilhada a todos; • Pode ser usado como um benchmark, comparando diversas organizações. Apresentação original: Prof. Marcelo Werneck
o que ele provê? • Um ponto de partida para a melhoria; • Benefícios de experiências passadas de uma comunidade; • Uma linguagem comum e uma visão compartilhada; • Uma estrutura para priorizar ações; • Uma forma de definir o que “melhoria” significa para uma organização. Apresentação original: Prof. Marcelo Werneck
26: Melhoria de Processos. p. 493-510. Estudo de Benchmarking em Gerenciamento de Projetos Brasil 2010, Project Management Institute – Chapters Brasileiros. http: //www.mp.go.gov.br/portalweb/hp/33/docs/benchmarking_gp_2010_geral.pdf Slides do Prof. Marcelo Werneck. Slides do Prof. Mario L. Côrtes. Modelos de Qualidade de SW. http://www.ic.unicamp.br/~cortes/mc726/cap5a.pdf Koscianski, André, and Michel dos Santos Soares. Qualidade de software (2 Edição). Novatec (2007). Capítulos 6: Melhoria de processos e de equipes. p. 116-140. referências