230 likes | 414 Views
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. CMMI. - Década de 80: SEI - Carnegie Mellon, Pennsylvania.
E N D
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
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?