GESTÃO DA QUALIDADE DE SOFTWARE
Fernando L. F. Almeida
[email protected]
Gestão da Qualidade de Software
Principais Modelos
Capability Maturity Model Integration (CMMI)
Team Software Process and Personal Software
Process (TSP/PSP)
Project Management Book of Knowledge
(PMBOK)
IT Service Management (ITIL)
Expreme Programming e Métodos Ágeis (SCRUM
e XP)
Gestão da Qualidade de Software
Paradoxo da Produtividade
“é para jogar o computador no lixo?”
(Exame Negócios, pag. 56, 04/04/01)
Na década de 80, economistas norte-americanos como o Prêmio Nobel
Robert Solow verificaram que, apesar de gastarem cada vez mais com
computadores, as empresas e a economia como um todo não obtinham
ganhos significativos de produtividade.
Tal constatação ficou conhecida como
paradoxo de Solow ou paradoxo da produtividade !
Gestão da Qualidade de Software
Problemas dos Processos e Software
“Prefiro deixar como está e atender ao
prazo. Nós podemos corrigir o problema
depois.”
A agenda é primordial. As minhas
promoções e aumentos são baseados
unicamente em encontros agendados.
“The botton line is schedule. My promotions and raises are based on meeting schedule first and
foremost.”
Gestão da Qualidade de Software
Problemas dos Processos e Software
Perda do foco no objetivo (compromisso)
Ausência de visibilidade durante o processo
Surpresas constantes
Problemas na qualidade
Entrega fora do prazo
Problemas de última hora
Alteração de custos durante o processo
Retrabalho
Os requisitos do cliente não foram implementados correctamente
Pedidos adicionais pós entrega
Insatisfação
Frustração
Quem é o responsável?
Gestão da Qualidade de Software
CMMI – Visão Geral
O SW-CMM (Capability Maturity Model for Software) é um modelo de
capacitação de processos de software, desenvolvido pelo SEI (Software
Engineering Institute) e patrocinado pelo Departamento de Defesa
Americano (DoD), para a avaliação da capacidade dos fornecedores de
software deste último.
Em 1999, foi publicado o esboço (draft), versão 0.2: CMMI-SE/SW
(Capability Maturity Model -Integrated – System / Software Engineering).
Objetivo Principal: guiar organizações a conhecerem e melhorarem
seus processos de software.
Identifica práticas para um processo de software maduro, definindo as
características de um processo de software efetivo.
Gestão da Qualidade de Software
CMMI – Objectivos
Além da integração dos modelos e redução dos custos
com melhorias de processo, os seguintes objetivos
também fazem parte do projeto CMMI:
Aumento do foco das atividades
Integração dos processos existentes
Eliminar inconsistências
Reduzir duplicações
Fornecer terminologia comum
Assegurar consistência com a norma ISO 15504 e ISO
9001
Flexibilidade e extensão para outras disciplinas
Gestão da Qualidade de Software
CMMI – Representação
Há duas formas de representar modelos CMMI
Por etapas
Contínuo
Uma representação adequada permite que a
organização siga caminhos diferentes no
processo de melhoria
A organização e a apresentação dos dados são
diferentes em cada representação. Porém, o
conteúdo é o mesmo.
Gestão da Qualidade de Software
CMMI – Representação
Gestão da Qualidade de Software
CMMI – Representação
Gestão da Qualidade de Software
CMMI – Capability Levels
Um Capability Level é um nível de evolução bem definido
que descreve a capacidade da organização em relação a
uma determinada area do processo
Há seis níveis de evolução (Capability Levels)
Cada nível é uma camada de fundamentos para o
processo contínuo de melhoria
Logo, os Capability Levels são acumulativos (i.e., a higher
capability level includes the attributes of the lower levels)
Gestão da Qualidade de Software
CMMI – Capability Levels
Gestão da Qualidade de Software
CMMI – Nível 1 (inicial)
O processo de software é caracterizado como sendo
imprevisível e ocasionalmente caótico.
Poucos processos são definidos e o sucesso depende de
esforços individuais e, muitas vezes, heróicos.
O processo de software é uma caixa preta, de forma que
somente as entradas e os produtos finais podem ser
vistos com clareza.
Gestão da Qualidade de Software
CMMI – Nível 1 (inicial)
Organizações no nível 1 apresentam deficiências de planeamento e
enfrentam dificuldades ao realizarem previsões.
Cronogramas e planos são irrealistas.
Como não há credibilidade no planeamento, mesmo aquilo que foi
planeado não é seguido.
Não há controle de requisitos e o cliente só os avalia na entrega do
produto.
É comum passar diretamente dos requisitos à codificação.
A documentação é encarada como algo inútil.
São comuns reações intransigentes à recolha de dados e ao uso de
padrões, documentação e ferramentas.
Gestão da Qualidade de Software
CMMI – Nível 2 (Repetível)
Processos básicos de gestão de projetos são
estabelecidos para controle de custos, prazos e escopo.
É possível repetir sucessos de projetos anteriores em
aplicações similares.
Ao invés do processo ser uma única caixa preta, ele
passa a ser uma sequência de caixas pretas que
asseguram a visibilidade em determinados pontos, os
marcos do projeto.
Gestão da Qualidade de Software
CMMI – Nível 2 (Repetível)
Neste nível, organizações têm maior probabilidade de cumprir
compromissos de requisitos, prazos e custos, mas desde que sejam
semelhantes a outros realizados anteriormente.
A organização é disciplinada, mas não está bem preparada para
mudanças.
Há preocupação com a gestão do projeto. Os gestores acompanham
custos, cronogramas e funcionalidades de cada um dos projetos.
Porém, a gestão ainda não é pró-ativa, tomando ações normalmente
quando se está diante de uma crise.
Controla-se a evolução dos requisitos, permitindo avaliações ao final
de cada marco do projeto, e controla-se, também, a evolução das
configurações do software.
Gestão da Qualidade de Software
CMMI – Nível 3 (Definido)
Um processo de software, composto por atividades de gestão e
engenharia, é documentado, padronizado e integrado em um
processo de software padrão da organização.
Todos os projetos utilizam uma versão aprovada e adaptada do
processo organizacional para desenvolvimento e manutenção de
software.
A organização interna das tarefas está definida e visível
Gestão da Qualidade de Software
CMMI – Nível 3 (Definido)
Processos utilizados são estabelecidos e padronizados em toda a
organização.
Os processos pertencem à organização e não aos projetos.
Apesar da padronização, é possível adaptar os processos para as
necessidades particulares de um projeto.
Processos de engenharia de software são considerados ao lado dos
processos de gestão.
A organização consegue se manter dentro do processo mesmo em períodos
de crise.
Como o processo é bem definido, caso um programador abandone o
projeto antes de seu término, o impacto é relativamente menor que nos
níveis anteriores.
Passagem do nível 2 para o 3: a padronização já realizada garante a
oportunidade de escolher as melhores práticas existentes na organização.
Gestão da Qualidade de Software
CMMI – Nível 4 (Gerenciado)
Métricas detalhadas do processo de software e
da qualidade do produto são recolhidas.
Tanto o processo como o produto de software
são quantitativamente compreendidos e
controlados.
Gestão da Qualidade de Software
CMMI – Nível 4 (Gerenciado)
A organização estabelece metas quantitativas de qualidade e
produtividade para as atividades do processo e para os produtos
produzidos.
Medidas de qualidade e produtividade são recolhidas em todos os
projetos como parte de um processo organizacional de medição e
estabelecem uma base quantitativa para que os gestores possam
avaliar o progresso do desenvolvimento e a ocorrência de
problemas.
Os projetos melhoram o seu controle sobre os produtos e processos
e a variância das medidas é diminuída.
É estabelecido o controle estatístico de processos.
Uma organização no nível 4 passa a ter uma gestão feita com bases
quantitativas.
Gestão da Qualidade de Software
CMMI – Nível 5 (Otimizado)
A melhoria contínua do processo é estabelecida
por meio de sua avaliação quantitativa, e da
implantação planeada e controlada de
tecnologias e ideias inovadoras.
Gestão da Qualidade de Software
CMMI – Nível 5 (Otimizado)
A organização está compormetida na melhoria contínua de seus
processos, possuindo meios para identificar fraquezas e fortalecer o
processo de forma pró-ativa, prevenindo defeitos.
O entendimento do processo ultrapassa os processos praticados,
possibilitando compreender os efeitos de alterações potenciais no
processo.
Melhorias em processos e tecnologias são planeados e executados
como parte das atividades de rotina.
Mudanças mais significativas de processos ou de tecnologias são
feitas a partir de análises de custo / benefício com base em dados
quantitativos cuja recolha iniciou-se no nível 4.
Gestão da Qualidade de Software
CMMI – Visão geral
Níveis de Maturidade
5
Otimizado
Foco na melhoria do
processo
Gerenciado
4
Processo medido e
controlado
Definido
3
Processo pró-ativo e
caracterizado para a
organização
Repetível
2
Processo caracterizado
para projetos e
frequentemente reativo
1
Processo imprevisível,
pouco controlado
Inicial
Gestão da Qualidade de Software
CMMI – Utilização Prática
1.
2.
3.
4.
5.
6.
7.
8.
Melhoria do planeamento do projecto
Ciclo de gestão do tempo melhorado
Produtividade agregada
Qualidade melhorada
Satisfação do cliente agregada
Satisfação da equipa agregada
Retorno do investimento (ROI) melhorado
Custo de qualidade reduzido
Gestão da Qualidade de Software
CMMI – Utilização Prática
Gestão da Qualidade de Software
PSP – Personal Software Process
Introduz técnicas para o estimativa de
tamanho do software e esforço (PROBE)
Planeamento de tarefas e cronograma
Relatório para registro dos dados de
teste
Gestão da Qualidade de Software
PSP – Personal Software Process
Planning
Direct
Feedback
2
3
4
5
6
7
8
9 10
Defects/KLOC
Pro je c t Numbe r
10
9
8
7
6
5
4
3
2
1
0
y
vit
10
20
30
40
50
Productivity Trend
40
LOC/Hour
Project
Data
30
20
10
0
-10
-20
-30
1
2
3
4
5
6
7
8
Project Number
9 10
60
Percent Early Defect Removal
Time Estimating Accuracy
% Estimate Error
Analysis
Synthesis
200
180
160
140
120
100
80
60
40
20
0
1
ti
uc
Data
Best of Practices
Lessons Learned
Practice
Product
Development
Process
Quality
od
Pr
Experience
process
o
Pr
ty
ali
u
Q
ct
du
Project Number
Product
Defects Tracking
45
40
35
30
25
20
15
10
5
0
1
2
3
4
5
6
7
8
Project Number
9 10
70
Gestão da Qualidade de Software
PSP – Estrutura
Gestão da Qualidade de Software
PSP – Exemplo
Gestão da Qualidade de Software
PSP – Exemplo
Gestão da Qualidade de Software
PSP – Será completo?
Gestão da Qualidade de Software
PSP – Será completo?
Pessoas trabalham em grupo
Integração e planeamento de etapas de
desenvolvimento
Necessidade de estimativas compostas
Gestão da Qualidade de Software
TSP – Visão Geral
TSP é um framework para produção de software
processo
produto
trabalho em equipe
planeamento e gestão do projeto.
Métodos prontos para otimizar a duração e
gestão do projeto
Voltado para a formação de equipas de
desenvolvimento de alta produtividade
Focado em métricas e inspeções
Gestão da Qualidade de Software
TSP – Visão Geral
PSP
Habilidade
Individual
Metricas individuais
Disciplina
Estimativa e Planeamento
Gestão da Qualidade
Acompanhamento
Disciplina
Individual
TSP
Formação da
Equipe
(Team Launch)
TSP
Gestão
Objetivos do Projeto
Comunicacao
Planos de Qualidades
Análise de Riscos
Relatório final
Disciplina da
Equipe
Equipe Integrada
Gestão
Das Actividades
Gestão da Qualidade de Software
TSP – Visão Geral
Gestão da Qualidade de Software
TSP – Pontos fortes
Formação de uma equipe coesa, que busca
um objetivo comum
Suas práticas melhoram a gestão do
projeto
Completamente alinhado com o SW-CMM,
funcionando como “catalisador”
Gestão da Qualidade de Software
TSP – Pontos fracos
Requer formação prévia em Personal
Software Process (PSP)
Não possui modelos de documentos
Não entra em detalhes sobre a execução
das atividades
Download

Gestão da Qualidade de Software (CMMI,PSP