Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Qualidade de Software | Processo e melhoria de processo

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.

Eduardo Miranda

April 15, 2015
Tweet

More Decks by Eduardo Miranda

Other Decks in Education

Transcript

  1. Qualidade de Software Pontifícia Universidade Católica de Minas Gerais Unidade

    Barreiro — 1º Semestre 2015 Prof. Eduardo Miranda [email protected] Processo e melhoria de processo
  2. Pesquisa do Standish Group 1994 2012 - Cascata 2012 -

    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)
  3. A Organização costuma ter problemas no cumprimento dos Prazos estabelecidos

    para os projetos Fonte: Estudo de Benchmarking em Gerenciamento de Projetos Brasil 2010, Project Management Institute – Chapters Brasileiros
  4. A Organização costuma ter problemas no cumprimento dos Custos estabelecidos

    para os projetos Fonte: Estudo de Benchmarking em Gerenciamento de Projetos Brasil 2010, Project Management Institute – Chapters Brasileiros
  5. A Organização costuma ter problemas de Qualidade em seus projetos

    Fonte: Estudo de Benchmarking em Gerenciamento de Projetos Brasil 2010, Project Management Institute – Chapters Brasileiros
  6. Problemas que ocorrem com mais freqüência nos projetos da Organização

    Fonte: Estudo de Benchmarking em Gerenciamento de Projetos Brasil 2010, Project Management Institute – Chapters Brasileiros
  7. "Conjunto de passos parcialmente ordenados que visam a obtenção de

    um objetivo" o que são processos? Apresentação original: Prof. Marcelo Werneck
  8. Um processo deve ter bem definido: • quem (papel) •

    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?
  9. um conjunto de atividades que são executadas para desenvolver produtos

    de software o que são processos? No contexto de engenharia de software, um processo compreende
  10. O conceito de um processo é aplicado não apenas para

    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?
  11. Um processo de desenvolvimento de software é composto por vários

    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?
  12. Características: • Processos são improvisados ou não são seguidos; •

    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
  13. Características: • Fortemente dependente dos profissionais; • Indisciplinado. Consequência: •

    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
  14. Características: • Processo conhecido por todos; • Auditagem da fidelidade

    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
  15. melhoria de processo Muitas pessoas acreditam que melhorar o processo

    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.
  16. melhoria de processo Em agosto de 1950 no Centro de

    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.
  17. leitura recomendada 14 princípios fundamentais para os gestores transformarem a

    eficácia do negócio. Deming, W. Edwards (1986). Out of the Crisis p. 23-24. MIT Press.
  18. melhoria de processo A qualidade de software não é influenciada

    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.
  19. melhoria de processo Para projetos grandes, que incluem subsistemas distintos,

    o principal fator é a: Principais problemas • Integração; • Gerenciamento de projetos e • Comunicações.
  20. melhoria de processo Para pequenos projetos a qualidade da equipe

    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.
  21. É eficaz seguir um processo por causa das seguintes vantagens:

    • 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
  22. É eficaz seguir um processo por causa das seguintes vantagens:

    • 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
  23. medição de processos As medições de processo podem ser utilizadas

    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.
  24. medição de processos Três tipos de métricas de processo podem

    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.
  25. O paradigma GQM é utilizado na melhoria de processos para

    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)
  26. Estas questões estão relacionadas com as abstrações (metas, questões e

    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)
  27. Estas questões estão relacionadas com as abstrações (metas, questões e

    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)
  28. Estas questões estão relacionadas com as abstrações (metas, questões e

    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)
  29. Estas questões estão relacionadas com as abstrações (metas, questões e

    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)
  30. maturidade dos processos A maturidade de uma organização mede seu

    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
  31. modelos de maturidade de processos O que é? • Coleção

    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
  32. modelos de maturidade de processos Oferecem: • Um ponto do

    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
  33. modelos de maturidade de processos Por que é importante –

    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
  34. Sommerville, Ian. Engenharia de software (9 Edição). Pearson (2012). Capítulo

    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