Extreme Programming e Qualidade de Software



Documentos relacionados
CMM Capability Maturity Model. Silvia Regina Vergilio

Extreme Programming e Qualidade de Software

No Relatório Técnico que apresenta o modelo CMM a apresentação das KPAs segue o formato visto Aqui, ênfase no nível 2

Unidade VI GOVERNANÇA DE TI. Profa. Gislaine Stachissini

GARANTIA DA QUALIDADE DE SOFTWARE

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL PEDROHOLI@GMAIL.COM CMM E CMMI

Qualidade de Software. Anderson Belgamo

Desenvolvimento Ágil de Software

Jonas de Souza H2W SYSTEMS

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

MODELO CMM MATURIDADE DE SOFTWARE

Análise de Pontos por Função

Capítulo 6: PSP. Capítulo 6: PSP Personal Software Process

QUALIDADE DE SOFTWARE AULA N.7

Capítulo 5: CMM, o Capability Maturity Model

Delfraro Rodrigues Douglas M Gandini José Luiz CMM. Capability Maturity Model

V Simpósio Internacional de Recife, PE - Brasil 3-5/11/2003. O Processo de Garantia da Qualidade CMM Nível 2: Da Implantação à Melhoria

Gerência de Projetos de Software Modelos de gerência. CMM: Capability Maturity Model ITIL: Information Technology Infrastructure Library MPS BR

Sistemas de Informação I

Padrões de Qualidade de Software

OS 14 PONTOS DA FILOSOFIA DE DEMING

Com metodologias de desenvolvimento

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp

Gerência de Projetos Prof. Dr. Sandro Ronaldo Bezerra Oliveira

Capítulo 1. Extreme Programming: visão geral

ENGENHARIA DE SOFTWARE I

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Engenharia de Software

Gerenciamento de Problemas

CMM - Capability Maturity Model

Gerência de Projetos

Qualidade de. Software. Definições. Qualidade do Produto ISO Processo de. Software. Modelo de Processo de. Software CMM SPICE ISO 12207

Políticas de Qualidade em TI

Aplicando práticas de extreme Programming(XP) em equipes SW-CMM nível 2

MASTER IN PROJECT MANAGEMENT

Qualidade na gestão de projeto de desenvolvimento de software

ISO/IEC 12207: Gerência de Configuração

CHECK - LIST - ISO 9001:2000

Implantação de um Processo de Medições de Software

Sistemas de Informação I

Universidade Paulista

Qualidade de Software

O que é CMMI? Base do CMMI. Melhorando o processo é possível melhorar-mos o software. Gerais. Processo. Produto

Gerência de Projetos CMMI & PMBOK

Padrões de Qualidade de Software e Métricas de Software

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

MODELO SPICE Software Improvement and Capacibilty Determination Avalia o software com foco na melhoria de seus processos (identifica pontos fracos e

C.M.M. Capability Maturity Model Modelo de Maturidade da Capacidade

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro

CMMI Conceitos básicos. CMMI Representações contínua e por estágios. Professor Gledson Pompeu (gledson.pompeu@gmail.com)

A Evolução de XP segundo Kent Beck Parte 2

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Profa. Dra. Ana Paula Gonçalves Serra

Modelo de Qualidade CMMI

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO

Gerenciamento de Níveis de Serviço

Processos de Desenvolvimento de Software

Jonas de Souza H2W SYSTEMS

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

A Disciplina Gerência de Projetos

Exame de Fundamentos da ITIL

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Projeto 2.47 QUALIDADE DE SOFTWARE WEB

Requisitos para Gestão de Requisitos no Desenvolvimento de Software que Utilizam Prática Ágeis

Programação Extrema. Luis Fernando Machado. Engenharia de Software

O Processo Unificado

Módulo5. Módulo 5. Planejamento e realização de projeto de mapeamento e modelagem de processos, Responsabilidades, Atividades-chaves, Exercício

Ciência da Computação ENGENHARIA DE SOFTWARE. Planejamento e Gerenciamento

Redução no custo e prazo de desenvolvimento de novos produtos; Aumento no tempo de vida dos novos produtos; Aumento de vendas e receita; Aumento do

Simulações em Aplicativos

Porque estudar Gestão de Projetos?

Gerência e Planejamento de Projeto. SCE Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002

Desenvolvendo Software Livre com Programação extrema

Política Organizacional para Desenvolvimento de Software no CTIC

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Mapeamento entre PMBOK, CMM e RUP

Gerenciamento de Projetos Modulo VIII Riscos

Introdução a CMMI. Paulo Ricardo Motta Gomes Renato Miceli Costa Ribeiro

Introdução a Computação

Engenharia de Requisitos

Desenvolvimento Ágil de Software em Larga Escala

QUALIDADE DE SOFTWARE

F.1 Gerenciamento da integração do projeto

CobiT 4.1 Plan and Organize Manage Projects PO10

CAPABILITY MATURITY MODEL FOR SOFTWARE. Eduardo Mayer Fagundes

Gerência de Projetos de Software CMM & PMBOK

Por que sua organização deve implementar a ABR - Auditoria Baseada em Riscos

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Fundamentos de Teste de Software

Engenharia de Software

ALESSANDRO PEREIRA DOS REIS PAULO CESAR CASTRO DE ALMEIDA ENGENHARIA DE SOFTWARE - CAPABILITY MATURITY MODEL INTEGRATION (CMMI)

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Transcrição:

Extreme Programming e Qualidade de Software Antonio Sergio Ferreira Bonato Departamento de Sistemas Digitais Escola Politécnica da USP

Objetivo (I) mostrar que o uso de um processo de desenvolvimento de software é fundamental para a qualidade do software; mostrar que o CMM é um modelo de qualidade de processo que pode ser adotado por todos, desde que se use o bom senso; Antonio Sergio Ferreira Bonato - XP e Qualidade 2

Objetivo (II) mostrar, através do CMM, que a Extreme Programming é um processo de desenvolvimento de qualidade, e portanto, produz software de qualidade; mostrar que o uso da XP por pequenas empresas em pequenos projetos propicia o desenvolvimento de software de qualidade. Antonio Sergio Ferreira Bonato - XP e Qualidade 3

Qualidade de Software Conjunto de características a serem satisfeitas em um determinado grau de modo que o software atenda às necessidades do usuário. As características são definidas na norma ISO 9126 Antonio Sergio Ferreira Bonato - XP e Qualidade 4

Total Quality Management Gerência da Qualidade Total um processo de produção de qualidade geralmente produz um produto de qualidade; A Engenharia de Software tem 2 focos: qualidade do processo; qualidade do produto. Antonio Sergio Ferreira Bonato - XP e Qualidade 5

Modelos de Qualidade de Processo CMM ISO 9000-3 SPICE Bootstrap Trillium Antonio Sergio Ferreira Bonato - XP e Qualidade 6

Pequenas Organizações e Pequenos Projetos 1. Os modelos de Qualidade de Processo são adequados para pequenas empresas e pequenas organizações? 2. O CMM é adequado? 3. O CMM é eficaz no desenvolvimento de software orientado à negócios? Antonio Sergio Ferreira Bonato - XP e Qualidade 7

Respostas 1. Sim 2. Sim 3. Sim Desde que os modelos sejam interpretados com bom senso! Antonio Sergio Ferreira Bonato - XP e Qualidade 8

Importância das Pequenas Organizações Segundo pesquisa feita com 699 empresas filiadas ao núcleo SOFTEX em 2001, o porte das organizações é: 36% - micro - até 10 funcionários 42% - pequeno - 11 a 49 funcionários Quer dizer, 78% são pequenas organizações. Antonio Sergio Ferreira Bonato - XP e Qualidade 9

O que elas fazem? Ainda segundo a mesma pesquisa: 88,8% desenvolvem software; A maioria desenvolve software orientado a negócios. Alguns exemplos: administração de serviços (31,3%); automação comercial (30,0%); e-business (26,5%) web pages (29,4%) Antonio Sergio Ferreira Bonato - XP e Qualidade 10

Grau de sucesso nos projetos Segundo o CHAOS Report de 2000: 28% dos projetos de desenvolvimento de software tiveram sucesso; 23% falharam totalmente; 49% terminaram fora do prazo, acima do orçamento e com menos funcionalidades do que o previamente combinado. Dados dos Estados Unidos Antonio Sergio Ferreira Bonato - XP e Qualidade 11

Motivos de Falha Falta de um processo de desenvolvimento bem definido e conhecido por todos: requisitos incompletos; falta de envolvimento do usuário; falta de recursos; expectativas irreais; falta de planejamento. Antonio Sergio Ferreira Bonato - XP e Qualidade 12

Pequeno Pequenos Projetos 3 a 5 pessoas durante 6 meses Muito pequeno 2 a 3 pessoas durante 4 meses Minúsculo 1 a 2 pessoas durante 2 meses Individual 1 pessoa durante 1 semana Antonio Sergio Ferreira Bonato - XP e Qualidade 13

Solução? Pequenas organizações que conduzem pequenos projetos de desenvolvimento de software devem usar um processo de desenvolvimento de qualidade; Este processo pode ser a Extreme Programming? Antonio Sergio Ferreira Bonato - XP e Qualidade 14

Extreme Programming criada a partir de um projeto piloto na DaimlerChrysler em 1996 por Kent Back; conjunto de práticas e valores que permitem ao desenvolvedor fazer o que ele faz melhor: escrever código; levar as melhores práticas ao extremo; combinar estas práticas de modo que o todo seja maior que a soma das partes; Antonio Sergio Ferreira Bonato - XP e Qualidade 15

Os 4 valores fundamentais comunicação simplicidade feedback coragem Antonio Sergio Ferreira Bonato - XP e Qualidade 16

12 práticas o jogo do planejamento programação aos pares testes refactoring design simples propriedade coletiva do código integração contínua cliente no local pequenos releases semana de 40 horas padrões de codificação metáfora do sistema Antonio Sergio Ferreira Bonato - XP e Qualidade 17

O Jogo do Planejamento (I) você não sabe tudo logo no começo; a idéia é: fazer um plano aproximado no princípio e refiná-lo conforme as coisas se tornam mais claras; o planejamento ocorre com freqüência; artefatos: uma pilha de cartões com as estórias dos clientes - dirigirão as iterações do projeto um plano aproximado do próximo release; Antonio Sergio Ferreira Bonato - XP e Qualidade 18

O Jogo do Planejamento (II) Os desenvolvedores tomas as decisões técnicas: estimam o tempo para desenvolver uma estória; custos do uso de várias opções tecnológicas; organização da equipe; o risco de cada estória; a ordem do desenvolvimento de cada estória dentro de cada iteração. Antonio Sergio Ferreira Bonato - XP e Qualidade 19

O Jogo do Planejamento (III) Os clientes tomam as decisões de negócio: escopo (as estórias para um release e as estórias de cada iteração); datas dos releases; prioridades (quais as funcionalidades devem ser desenvolvidas antes, baseados em valor para o negócio) Antonio Sergio Ferreira Bonato - XP e Qualidade 20

Programação aos Pares pares de desenvolvedores escrevem todo o código; improdutivo? Fowler diz: Seria, se a tarefa mais demorada fosse a digitação todas as decisões envolvem 2 cérebros; pelo menos duas pessoas conhecem cada parte do sistema; menos chances de duas pessoas serem negligentes; o código é revisto por pelo menos uma pessoa. Antonio Sergio Ferreira Bonato - XP e Qualidade 21

Testes (I) teste de unidade escrito pelo desenvolvedor antes de escrever o código; escrever código que passe no teste; não pode integrar código antes de passar no teste; deve ser automatizado. Antonio Sergio Ferreira Bonato - XP e Qualidade 22

teste de aceitação Testes (II) escrito pelo cliente logo após escrever a estória; diz se o sistema tem as funcionalidades que deveria ter; deve ser executado freqüentemente, para ver se nenhuma funcionalidade foi perdida na integração; deve ser automatizado. Antonio Sergio Ferreira Bonato - XP e Qualidade 23

Refactoring atividade de melhorar o código sem mudar a funcionalidade; tentar simplificar o código; tentar implementar funcionalidades de maneira mais fácil; pode ser feito antes ou depois de implementar uma funcionalidade; leva em consideração o fato de que você aprende durante o desenvolvimento. Antonio Sergio Ferreira Bonato - XP e Qualidade 24

Design Simples Sempre usar o design mais simples que funcione: rode todos os testes; não tenha código duplicado; comunique as intenções dos programadores claramente; contenha o menor número possível de classes e métodos. Nunca incluir funcionalidades extras. Antonio Sergio Ferreira Bonato - XP e Qualidade 25

Propriedade Coletiva do Código todos podem mudar o código para melhorá-lo; todos são responsáveis pelo código; quem quebra alguma coisa deve consertá-la; requer extrema disciplina. Antonio Sergio Ferreira Bonato - XP e Qualidade 26

Integração Contínua evita os pesadelos da integração; integrar várias vezes ao dia - passou no teste de unidade, integra; facilita os teste: se parou de funcionar, então o que eu acabei de integrar deve ser o culpado; Antonio Sergio Ferreira Bonato - XP e Qualidade 27

Cliente no Local um cliente deve sempre estar disponível para esclarecer estórias e tomar decisões de negócio; as estórias nunca contam tudo; comunicação face-a-face; Antonio Sergio Ferreira Bonato - XP e Qualidade 28

Pequenos Releases os releases devem ser os menores possíveis, e mesmo assim terem valor para o negócio; liberar um release o mais cedo possível; pequenos releases fornecem feedback concreto do cliente mais rápido. Antonio Sergio Ferreira Bonato - XP e Qualidade 29

Semana de 40 horas o exato número de horas não é importante; programadores cansados cometem mais erros; horas extras não são uma resposta a um problema no projeto; são apenas um sintoma de um problema maior. Antonio Sergio Ferreira Bonato - XP e Qualidade 30

Padrões de codificação sem padrão de codificação é difícil: fazer refactoring; trocar os pares de programadores; ir rápido. serve para facilitar a comunicação; não dever ser extenso, mas apenas uma série de guidelines. Antonio Sergio Ferreira Bonato - XP e Qualidade 31

Metáfora do Sistema é para XP o que muitas metodologias chamam de arquitetura; mostra o modo como o sistema trabalha, onde cada parte se encaixa e qual a forma que devem ter; deve ser entendida por todos; Antonio Sergio Ferreira Bonato - XP e Qualidade 32

Quando usar XP melhor do que code and fix; projetos pequenos; equipes pequenas - não funcionam bem com equipes grandes; uso de orientação a objetos; desenvolvedores responsáveis e motivados; clientes compreensivos e envolvidos. Antonio Sergio Ferreira Bonato - XP e Qualidade 33

Capability Maturity Model um modelo de cinco níveis que prescreve prioridades de melhoria de processo para organizações que produzem software; testado em diversas organizações, de diversos tamanhos, pelo mundo afora; aceito pela comunidade de software como padrão de processos capazes de produzir software confiável e de qualidade. Antonio Sergio Ferreira Bonato - XP e Qualidade 34

Críticas ao CMM muito grande (aproximadamente 500 páginas); feito para grandes organizações e grandes projetos; rígido e burocrático; mas, se interpretado com bom senso, pode ser usado por pequenas empresas com agilidade. Antonio Sergio Ferreira Bonato - XP e Qualidade 35

OS 5 níveis do CMM nível 1 - inicial: nenhum processo; nível 2 - repetível: foco em gerenciamento de projeto; nível 3 - definido: foco em processos de engenharia e no suporte organizacional; nível 4 - gerenciado: foco na qualidade dos processos e do produto; nível 5 - otimizado: foco na melhoria contínua do processo. Antonio Sergio Ferreira Bonato - XP e Qualidade 36

Estrutura do CMM 18 processos chave (KPAs), distribuídos pelos 4 níveis superiores; nível 2: RM, SPP, SPTO, SSM, SQA, SCM nível 3: OPF, OPD, TP, ISM, SPE, IC, PR nível 4: QPM, SQM nível 5: DP, TCM, PCM 52 objetivos divididos nas 18 KPAs; Antonio Sergio Ferreira Bonato - XP e Qualidade 37

RM - Requirements Management Os objetivos da Gerência de Requisitos são: Objetivo 1: Os requisitos de software são controlados para estabelecer uma baseline que será usada como base tanto para o desenvolvimento quanto para atividades de gerência. Objetivo 2: Os planos de desenvolvimento, os produtos e todas as atividades são mantidos em consistência com os requisitos de software. Antonio Sergio Ferreira Bonato - XP e Qualidade 38

RM com bom senso Documentar os requisitos e os compromissos assumidos, mesmo que seja em apenas uma folha de papel. Antonio Sergio Ferreira Bonato - XP e Qualidade 39

RM e XP estórias cliente no local integração contínua Antonio Sergio Ferreira Bonato - XP e Qualidade 40

SPP - Software Project Planning Os objetivos da KPA Planejamento de Projeto de Software são: Objetivo 1: As estimativas de software são documentadas para uso no planejamento e acompanhamento do projeto. Objetivo 2: O projeto de software tem as suas atividades e compromissos associados planejados e documentados. Objetivo 3: Os grupos e indivíduos que tenham alguma relação com o desenvolvimento do software conhecem os compromissos assumidos e concordam com eles. Antonio Sergio Ferreira Bonato - XP e Qualidade 41

SPP com bom senso Fazer um plano básico que contenha as principais atividades a serem realizadas, bem como os produtos gerados por cada uma delas. Revisar o plano conforme o projeto estiver em andamento. Estabelecer pontos de verificação. Antonio Sergio Ferreira Bonato - XP e Qualidade 42

SPP e XP jogo do planejamento pequenos releases Antonio Sergio Ferreira Bonato - XP e Qualidade 43

SPTO - Software Project Tracking & Oversight Os objetivos da KPA Acompanhamento e Supervisão de Projeto de Software são: Objetivo 1: É feito um acompanhamento do realizado com relação ao que foi planejado. Objetivo 2: Quando o andamento do projeto desvia de maneira significativa do que foi planejado ações corretivas são executadas e gerenciadas até a sua conclusão efetiva. Objetivo 3: Eventuais mudanças de compromissos de quaisquer natureza são negociadas e concordadas por todos os grupos afetados. Antonio Sergio Ferreira Bonato - XP e Qualidade 44

SPTO com bom senso Comparar o que foi feito com o que foi planejado. Atualizar o plano de maneira simples. As tarefas devem ser pacotes binários: ou terminadas ou não terminadas. Uma tarefa 87% pronta é sinal de chute. Se o projeto estiver saindo da linha, parar e replanejar. Antonio Sergio Ferreira Bonato - XP e Qualidade 45

SPTO e XP o grande gráfico visual (the big visual chart); velocidade do projeto; estórias (compromissos); pequenos releases; Antonio Sergio Ferreira Bonato - XP e Qualidade 46

SSM - Software Subcontract Management Os objetivos da Gerência de Subcontratação de Software são: Objetivo 1: O contratante seleciona subcontratados qualificados. Objetivo 2: O contratante e o subcontratado concordam quanto aos compromissos assumidos mutuamente. Objetivo 3: O contratante e o subcontratado mantém comunicação permanente. Antonio Sergio Ferreira Bonato - XP e Qualidade 47

SSM com bom senso Pequenas organizações geralmente não subcontratam. Se subcontratarem, escolher organizações competentes e gerenciar seu trabalho. Antonio Sergio Ferreira Bonato - XP e Qualidade 48

XP e SSM a XP não trata subcontratação. Antonio Sergio Ferreira Bonato - XP e Qualidade 49

SQA - Software Quality Assurance Os objetivos da Garantia de Qualidade de Software são: Objetivo 1: As atividades de SQA são planejadas. Objetivo 2: Os produtos e atividades em uso atendem a todos os padrões, normas e requisitos aplicáveis. Objetivo 3: Todos os grupos afetados são informados das atividades do grupo de SQA e dos seus relatórios. Objetivo 4: Não conformidades encontradas e não resolvidas no contexto do projeto são tratadas pela gerência superior. Antonio Sergio Ferreira Bonato - XP e Qualidade 50

SQA com bom senso Verificar se os requisitos e os padrões estão sendo atendidos. Utilizar-se de checklists para isso. Antonio Sergio Ferreira Bonato - XP e Qualidade 51

SQA e XP pair programming (parcialmente); Antonio Sergio Ferreira Bonato - XP e Qualidade 52

SCM - Software Configuration Management Os objetivos da Gerência de Configuração de Software são: Objetivo 1: As atividades de SCM são planejadas. Objetivo 2: Produtos de trabalho selecionados, os itens de configuração, são identificados, controlados e tornados disponíveis. Objetivo 3: As mudanças dos itens de configuração são controladas. Objetivo 4: Os grupos afetados e indivíduos são mantidos informados da situação e conteúdo do baseline de software. Antonio Sergio Ferreira Bonato - XP e Qualidade 53

SCM com bom senso Estabelecer baselines e controlar sua mudança. Antonio Sergio Ferreira Bonato - XP e Qualidade 54

SCM e XP propriedade coletiva do código (parcialmente); pequenos releases (parcialmente); integração contínua (parcialmente); Antonio Sergio Ferreira Bonato - XP e Qualidade 55

OPF - Organization Process Focus Os objetivos da KPA Foco no Processo Organizacional são: Objetivo 1: Atividades de desenvolvimento e melhoria do processo de software são coordenadas através da organização. Objetivo 2: Os pontos fortes e fracos dos processos de software utilizados são identificados com relação a um processo padrão. Objetivo 3: Atividades de desenvolvimento e melhoria do processo de software em nível organizacional são planejadas. Antonio Sergio Ferreira Bonato - XP e Qualidade 56

OPF com bom senso Atribuir a responsabilidade de melhoria e manutenção do processo de desenvolvimento para alguém. Antonio Sergio Ferreira Bonato - XP e Qualidade 57

OPF e XP OPF é tratada pela XP no nível de equipe, e não no nível organizacional; a filosofia de adoção de uma prática da XP por vez implica em questões de processo organizacional. Antonio Sergio Ferreira Bonato - XP e Qualidade 58

OPD - Organization Process Definition Os objetivos da KPA Definição do Processo Organizacional são: Objetivo 1: Um processo de software padrão para a organização é desenvolvido e mantido. Objetivo 2: Informações relacionadas ao uso do processo de software padrão da organização pelos projetos de software são coletadas, revistas e tornadas disponíveis. Antonio Sergio Ferreira Bonato - XP e Qualidade 59

OPD com bom senso Documentar o processo de desenvolvimento de software, em alto nível e de maneira e objetiva. Mantenha o processo simples. Antonio Sergio Ferreira Bonato - XP e Qualidade 60

OPD e XP a XP pode ser adotada como processo padrão, mas isso está fora do escopo da XP; Antonio Sergio Ferreira Bonato - XP e Qualidade 61

TP - Training Program Os objetivos do Programa de Treinamento são: Objetivo 1: As atividades de treinamento são planejadas. Objetivo 2: Treinamento para desenvolver as habilidades e o conhecimento necessários para realização de tarefas técnicas e de gerência de projeto é fornecido. Objetivo 3: Indivíduos do grupo de engenharia de software e grupos relacionados ao software recebem o treinamento necessário para desempenharem suas tarefas. Antonio Sergio Ferreira Bonato - XP e Qualidade 62

TP com bom senso Os desenvolvedores tem que dominar as técnicas que utilizam. O treinamento não precisa ser em sala de aula. Atividades de mentoring muitas vezes são mais eficientes. Antonio Sergio Ferreira Bonato - XP e Qualidade 63

TP e XP TP e XP: parcialmente tratado devido a grande quantidade de livros, sites, artigos e cursos sobre XP. Antonio Sergio Ferreira Bonato - XP e Qualidade 64

ISM - Integrated Software Management Os objetivos da Gerência Integrada de Software são: Objetivo 1: O processo de software definido para um determinado projeto é uma versão adaptada do processo de software padrão da organização. Objetivo 2: O projeto é planejado e gerenciado conforme o processo de software definido para o projeto. Antonio Sergio Ferreira Bonato - XP e Qualidade 65

ISM com bom senso Nem todos os projetos exigem o uso do mesmo processo. Por isso, o processo original da organização tem que poder ser adaptado para as necessidades do projeto. Antonio Sergio Ferreira Bonato - XP e Qualidade 66

ISM e XP não tratado pela XP. Antonio Sergio Ferreira Bonato - XP e Qualidade 67

SPE - Software Product Engineering Os objetivos da Engenharia de Produto de Software são: Objetivo 1: As tarefas de engenharia de software são definidas, integradas e realizadas consistentemente para produzir software. Objetivo 2: Produtos de trabalho de software são mantidos consistentes uns com os outros. Antonio Sergio Ferreira Bonato - XP e Qualidade 68

SPE com bom senso Use sempre um processo de desenvolvimento consistente, mesmo para pequenos projetos. Não queime fases. Considere este processo quando for fazer o planejamento. Sempre gaste mais tempo com análise de requisitos, design e planejamento dos testes. Antonio Sergio Ferreira Bonato - XP e Qualidade 69

SPE e XP SPE é amplamente tratada pela XP: metáfora; design simples; refactoring; turnê da naftalina (mothball tour); padrões de codificação; testes de unidade; testes de aceitação; Antonio Sergio Ferreira Bonato - XP e Qualidade 70

IC - Intergroup Coordination Os objetivos da KPA Cordenação Entre Grupos são: Objetivo 1: Todos os grupos afetados concordam com os requisitos do cliente. Objetivo 2: Todos os grupos afetados concordam com os compromissos entre os grupos de engenharia. Objetivo 3: Os grupos de engenharia identificam, acompanham e resolvem questões intergrupos. Antonio Sergio Ferreira Bonato - XP e Qualidade 71

IC com bom senso Comunique-se com seu cliente. Registre compromissos. Resolva conflitos. Antonio Sergio Ferreira Bonato - XP e Qualidade 72

IC e XP cliente no local; programação por pares; Antonio Sergio Ferreira Bonato - XP e Qualidade 73

PR - Peer Reviews Os objetivos das Revisões por Pares são: Objetivo 1: As atividades de revisão por pares são planejadas. Objetivo 2: Os defeitos dos artefatos de software são identificados e removidos. Antonio Sergio Ferreira Bonato - XP e Qualidade 74

PR com bom senso Submeta sempre todo trabalho a alguma espécie de revisão. Inspeções geralmente são o modo mais adequado. Antonio Sergio Ferreira Bonato - XP e Qualidade 75

PR e XP programação por pares. Antonio Sergio Ferreira Bonato - XP e Qualidade 76

QPM - Quantitative Process Management Os objetivos da Gerência Quantitativa do Processo são: Objetivo 1: As atividades de gerenciamento quantitativo de processo são planejadas. Objetivo 2: A performance do processo definido para um projeto é controlada quantitativamente. Objetivo 3: A capacitação do processo de software padrão da organização é conhecida em termos quantitativos. Antonio Sergio Ferreira Bonato - XP e Qualidade 77

QPM com bom senso Definir poucas métricas simples e coerentes. Coletá-las com disciplina. Comparar os resultados atingidos. Antonio Sergio Ferreira Bonato - XP e Qualidade 78

QPM e XP não tratada pela XP. Antonio Sergio Ferreira Bonato - XP e Qualidade 79

SQM - Software Quality Management Os objetivos da Gerência de Qualidade de Software são: Objetivo 1: As atividades de gerenciamento de qualidade de software são planejadas. Objetivo 2: Metas mensuráveis para a qualidade do software e suas prioridades são definidas. Objetivo 3: O progresso verdadeiro em direção ao atingimento das metas de qualidade para os produtos de software é quantificado e gerenciado. Antonio Sergio Ferreira Bonato - XP e Qualidade 80

SQM com bom senso Usando-se as metas coletadas na KPA QPM, definir metas de qualidade a atingir. Monitorar o atingimento destas metas. Antonio Sergio Ferreira Bonato - XP e Qualidade 81

SQM e XP não tratada pela XP. Antonio Sergio Ferreira Bonato - XP e Qualidade 82

DP - Defect Prevention Os objetivos da Prevenção de Defeitos são: Objetivo 1: As atividades de prevenção de defeitos são planejadas. Objetivo 2: As causas comuns dos defeitos são procuradas e identificadas. Objetivo 3: As causas comuns dos defeitos são priorizadas e sistematicamente eliminadas. Antonio Sergio Ferreira Bonato - XP e Qualidade 83

DP com bom senso Identificar as causas dos defeitos e prevenir que ocorram novamente. Antonio Sergio Ferreira Bonato - XP e Qualidade 84

DP e XP pequenos releases (parcialmente) Antonio Sergio Ferreira Bonato - XP e Qualidade 85

TCM - Technology Change Management Os objetivos da KPA Gerência de Mudança Tecnológica são: Objetivo 1: A incorporação de mudanças tecnológicas é planejada. Objetivo 2: Novas tecnologias são avaliadas para se determinar seus efeitos em termos de qualidade e produtividade. Objetivo 3: Novas tecnologias apropriadas são transferidas para as práticas normais da organização. Antonio Sergio Ferreira Bonato - XP e Qualidade 86

TCM com bom senso Identificar novas tecnologias e introduzí-las na organização de maneira ordenada. Antonio Sergio Ferreira Bonato - XP e Qualidade 87

TCM e XP Fazer sempre projetos piloto. Coletar as métricas padrão da organização. Medir o impacto do uso da nova tecnologias nestas métricas. Avaliar o custo/benefício. Antonio Sergio Ferreira Bonato - XP e Qualidade 88

PCM - Process Change Management Os objetivos da Gerência de Mudança no Processo são: Objetivo 1: A melhoria contínua do processo é planejada. Objetivo 2: Toda a organização participa das atividades de melhoria de processo de software. Objetivo 3: O processo de software padrão da organização e os processos de software adaptados para os projetos são melhorados continuamente. Antonio Sergio Ferreira Bonato - XP e Qualidade 89

PCM com bom senso Manter um programa de sugestões. Avaliar o uso de novas práticas em projetos piloto. Antonio Sergio Ferreira Bonato - XP e Qualidade 90

PCM e XP não tratado pela XP. Antonio Sergio Ferreira Bonato - XP e Qualidade 91

Resumo KPAs KPAs KPAs nível 2 satisfação nível 3 satisfação nível 4/5 satisfação RM XX OPF X QPM --- SPP XX O PD X SQ M --- SPTO XX TP -- SSM -- ISM -- DP X SQA X SPE XX TCM --- SCM X IC XX PCM --- PR XX X: parcialmente; XX: amplamente; ---: não tratado Antonio Sergio Ferreira Bonato - XP e Qualidade 92

Conclusão XP tem foco nos aspectos técnicos, enquanto CMM tem foco nos aspectos gerenciais; no ambiente apropriado, XP trata muitas KPAs do nível 2 e 3; uso questionável para sistemas críticos ou de alta confiabilidade; XP é um processo disciplinado; XP e CMM podem ser considerados complementares - CMM diz o quê; XP diz como. é possível ter qualidade com XP. Antonio Sergio Ferreira Bonato - XP e Qualidade 93

Bibliografia (I) Fowler, Martin - The New Methodology - Software Development Magazine - Dezembro/2000 Beck, Kent - Extreme Programming Explained - Addison Wesley - 2000 Miller, Roy W.; Collins, Christopher T. - XP Distilled - IBM DeveloperWorks - Março/2001 Paulk, Mark C. - Extreme Programming from a CMM Perspective - IEEE Software - Novembro/Dezembro 2001 Paulk, Mark C. - Using the Software CMM With Good Judgment - ASQ Software Quality Professional - Junho de 1999 Antonio Sergio Ferreira Bonato - XP e Qualidade 94

Bibliografia (II) CMU/SEI - The Capability Maturity Model: guidelines for improving the software process - Addison Wesley - 1994 MINISTÉRIO DA CIÊNCIA E TECNOLOGIA. Secretaria de Política de Informática. Sociedade SOFTEX. Levantamento do Universo das Associadas SOFTEX. Brasilia. Ago 2001 The Standish Group International. The CHAOS Report. Dennis, MA, 2000. Antonio Sergio Ferreira Bonato - XP e Qualidade 95