xp x cmmi programação radical prof. luiz fernando melgarejo joão de amorim junior

23
XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

Upload: internet

Post on 17-Apr-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

XP x CMMI

Programação Radical

Prof. Luiz Fernando Melgarejo

João de Amorim Junior

Page 2: 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ção-

Integração

Page 3: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 4: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 5: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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).

Page 6: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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).

Page 7: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

CMMI – Nível 2

- KPA 5 - Garantia de qualidade de software.

- KPA 6 - Gerenciamento de configuração de software.

Page 8: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 9: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

CMMI – Nível 3

- KPA 11 - Engenharia de produto de software.

- KPA 12 - Coordenação inter-grupo.

- KPA 13 - Revisões assistidas (Inspeções).

Page 10: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 11: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 12: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 13: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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”.

Page 14: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 15: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 16: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 17: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 18: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

XP e CMMI – Adaptação

- CMMI: O que deve ser feito.

- XP: Como deve ser feito.

- XP possui processos disciplinados e claramente bem definidos.

Page 19: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 20: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 21: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 22: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

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.

Page 23: XP x CMMI Programação Radical Prof. Luiz Fernando Melgarejo João de Amorim Junior

XP x CMMI

- Adaptação de XP para ser utilizado com CMMI: basicamente XP com documentação.

- É XP?

- Ou é CMMI?