Share
Embed
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
Transcript
42 slides
-
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 -
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) -
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 -
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 -
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 -
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 -
"Conjunto de passos parcialmente ordenados que visam a obtenção de
um objetivo" o que são processos? Apresentação original: Prof. Marcelo Werneck -
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? -
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 -
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? -
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? -
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 -
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 -
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 -
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. -
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. -
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. -
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. -
melhoria de processo Existem 4 importantes fatores que afetam a
qualidade de um produto: -
melhoria de processo Para projetos grandes, que incluem subsistemas distintos,
o principal fator é a: -
melhoria de processo Para projetos grandes, que incluem subsistemas distintos,
o principal fator é a: Principais problemas • Integração; • Gerenciamento de projetos e • Comunicações. -
melhoria de processo Para pequenos projetos a qualidade da equipe
de desenvolvimento é mais importante. -
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. -
É 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 -
É 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 -
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. -
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. -
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) -
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) -
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) -
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) -
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) -
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 -
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 -
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 -
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 -
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