XP x CMMI
Programação Radical
Prof. Luiz Fernando Melgarejo
João de Amorim Junior
XP x CMMI
A relação entre Extreme
Programming e o Modelo de
Maturidade de CapacitaçãoIntegração
CMMI
- Década de 80: SEI - Carnegie Mellon,
Pennsylvania.
- Agosto de 1991: Primeira versão do SW-CMM.
- Agosto de 2002: Versão 1.1 do SW-CMMI.
- SW-CMMI: Adotado como modelo para a
capacidade organizacional de
desenvolvimento.
CMMI
- Certificado para empresas de desenvolvimento
de SW.
- Projetos grandes, de organizações de grande
porte.
- Framework de processo de desenvolvimento.
- Diz o que deve ser feito para se ter um projeto
organizado e de qualidade.
CMMI
- Tudo deve ser muito bem documentado.
- Áreas Chaves de Processo (KPA).
- Dividido em cinco níveis.
- Inicial, Repetível, Definido, Gerenciável e
Otimização.
- Nível 1: Pessoas competentes (e heróicas).
CMMI – Nível 2
- Repetível - Foca no processo de gerenciamento
do projeto.
- KPA 1 - Gerenciamento de requisitos.
- KPA 2 - Planejamento do projeto de software.
- KPA 3 - Monitoração e controle do projeto.
- KPA 4 - Prevenção de Gerenciamento de
contrato com o fornecedor (sub-contrato).
CMMI – Nível 2
- KPA 5 - Garantia de qualidade de software.
- KPA 6 - Gerenciamento de configuração de
software.
CMMI – Nível 3
- Definido - Foca na Engenharia de processo e
suporte organizacional.
- KPA 7 - Foco na organização do processo.
- KPA 8 - Definição da organização do processo.
- KPA 9 - Programa de treinamento.
- KPA 10 - Gerenciamento integrado de software.
CMMI – Nível 3
- KPA 11 - Engenharia de produto de software.
- KPA 12 - Coordenação inter-grupo.
- KPA 13 - Revisões assistidas (Inspeções).
CMMI – Nível 4
- Gerenciável (Quantitativamente) - Foca na
qualidade do produto e do processo.
- KPA 14 - Gerenciamento quantitativo do
processo.
- KPA 15 - Gerenciamento da qualidade de
software.
CMMI – Nível 5
- Otimização - Foca na melhoria contínua do
processo.
- KPA 16 - Prevenção de defeitos.
- KPA 17 - Gerenciamento da mudança de
tecnologia.
- KPA 18 - Gerenciamento da mudança de
processo.
Extreme Programming
- Método de desenvolvimento de software
desenvolvido por Kent Beck.
- Aquilo que se julga bom no desenvolvimento de
software é aplicado ao extremo.
- Equipes médias e pequenas, cujos requisitos
apresentem mudanças vagas ou rápidas.
- Equipes tipicamente co-localizadas com menos
de 10 membros.
Extreme Programming
- Código coletivo.
- Escrever teste antes do código.
- Programação em dupla.
- Testes rodando repetidamente.
- Desenvolvedores devem responder
rapidamente a mudanças nos requisitos. “O
cliente é quem manda”.
Extreme Programming
- Quatro princípios: Comunicação, Simplicidade,
Rapidez e Coragem.
- Fazer iterações extremamente pequenas –
segundos, minutos e horas ao invés de
semanas, meses e anos.
- Ciclo de vida incremental e evolucionário.
Quatro atividades básicas: codificação,
teste, fatoração e projeto.
XP e CMMI – Por que não
- CMMI exige que tudo seja muito bem
documentado.
- XP abomina documentação.
- XP: código não possui responsáveis.
- CMMI aumenta custo de desenvolvimento.
Exige gerentes do processo, como SQA,
CM, etc.
XP e CMMI – Por que não
- CMMI: “... XP é code-and-fix disfarçado ...”, “...
sem análise de requisitos e boa
documentação, um projeto não terá um
crescimento sustentável ...”.
- XP: “... análise de requisitos é balela ...”, “...
documentação atrasa desenvolvimento
...”.
- XP não é para projetos grandes. CMMI em
projetos pequenos é impraticável.
XP e CMMI
- Cerca de 90% das empresas de software nunca
chegaram a alcançar o nível 2.
- Certificação CMMI dá status à empresa em
negociações internacionais.
- Empresas estão adaptando XP.
Ex.: JPMorgan Chase, empresas chinesas,
etc.
XP e CMMI – Adaptação
- CMMI: O que deve ser feito.
- XP: Como deve ser feito.
- XP possui processos disciplinados e claramente
bem definidos.
XP e CMMI – Adaptação
- Nível 2:
- Gerenciamento de requisitos (KPA 1) ->
Metáfora e estórias de uso, cliente na
equipe, integração contínua.
- Planejamento do projeto de software (KPA 2)
-> “Planejamento do jogo”, entregas
pequenas.
XP e CMMI – Adaptação
- Nível 2:
- Monitoração e controle do projeto (KPA 3) ->
Entregas pequenas.
- Garantia de qualidade de software (KPA 5) > Programação em dupla.
- Gerenciamento de configuração de software
(KPA 6) -> Propriedade coletiva, entregas
pequenas, integração contínua.
XP e CMMI – Adaptação
- Nível 3:
- Foco na organização do processo (KPA 7) ->
Foco no time (equipe).
- Definição da organização do processo (KPA
8) -> Metáfora.
- Engenharia de produto de software (KPA 11)
-> Metáfora, projeto simples, testes,
fatoração e re-projeto, padrões de código.
XP e CMMI – Adaptação
- Nível 3:
- Coordenação inter-grupo (KPA 12) -> Cliente
na equipe, Programação em dupla.
- Revisões assistidas (Inspeções) (KPA 13) ->
Programação em dupla.
- Nível 5:
- Prevenção de defeitos (KPA 16) ->
Integração contínua.
XP x CMMI
- Adaptação de XP para ser utilizado com CMMI:
basicamente XP com documentação.
- É XP?
- Ou é CMMI?
Download

XP e CMMI – Adaptação