63
1

1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito ([email protected]) 06/10/2008 2

Embed Size (px)

Citation preview

Page 1: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

1

Page 2: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

Qualidade, Processos e Gestão de Software

XPXP eXtreme ProgrammingeXtreme Programming

Rebeka BritoRebeka Brito ([email protected])

06/10/2008

2

Page 3: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

Agenda

1. Metodologia Ágil

2. XP – eXtreme Programming

3. Quando o XP não deve ser utilizado

4. Conclusões

5. Referência Bibliográfica

3

Page 4: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

Metodologia Ágil

4

Desenvolvimento ágil de software (Agile Software Development) ou Método ágil.

É um conjunto de metodologias de desenvolvimento de software.

O desenvolvimento ágil, tal como qualquer metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de software.

Page 5: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

Metodologia Ágil

5

Processos Ágeis de DesenvolvimentoProcessos Ágeis de Desenvolvimento Compartilham a premissa de que o cliente

aprende sobre as suas necessidades, na medida em que é capaz de manipular o sistema que está sendo produzido.

Com base no feedback do sistema, ele reavalia as suas necessidades e prioridades, gerando mudanças que deverão ser incorporadas ao software.

O cliente direciona o desenvolvimento de modo que a equipe produza sempre aquilo que tem o maior valor para o seu negócio.

Page 6: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

Agenda

1. Metodologia Ágil

2. XP - eXtreme Programming

3. Quando o XP não deve ser utilizado

4. Conclusões

5. Referência Bibliográfica

6

Page 7: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

7

XP - eXtreme Programming

É um processo de desenvolvimento que busca assegurar que o cliente receba o máximo de valor de cada dia de trabalho da equipe de desenvolvimento.

Page 8: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

8

XP - eXtreme Programming

O XP é voltado para:

Projetos cujos requisitos são vagos e estão em constante mudança.

Equipes pequenas e médias (preferencialmente até 12 desenvolvedores).

Para isso, adota a estratégia de constante acompanhamento e realização de vários pequenos ajustes durante o desenvolvimento de software.

Page 9: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

9

XP - eXtreme Programming

Desenvolvimento de sistema orientados a objetos.

Desenvolvimento incremental (ou iterativo), onde o sistema começa a ser implementado logo no início do projeto e vai adquirindo novas funcionalidades ao longo do tempo.

Page 10: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

10

XP – eXtreme Programming

Dentre as variáveis de controle em projetos (custo, tempo, qualidade e escopo), há um foco explícito em escopo.

Para isso, recomenda-se a priorização de funcionalidades que representem maior valor possível para o negócio.

Desta forma, caso seja necessário a diminuição de escopo, as funcionalidades menos valiosas serão adiadas ou canceladas.

Page 11: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

11

O XP é organizado em torno de um conjunto de valores e práticas que atuam de forma harmônica e coesa para assegurar que o cliente sempre receba um alto retorno do investimento em software.

XP – Valores e Princípios

Page 12: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

12

XP – Valores e Princípios Os quatro valores fundamentais da metodologia XP são:

Feedback: Feedback: Quando o cliente aprende com o sistema que utiliza e reavalia as suas necessidades, ele gera um feedback para a equipe de desenvolvimento, realimentando a equipe com novas necessidades ou alterações. O cliente atua como Produtor e Consumidor, ou seja, ele produz uma nova idéia e rapidamente apresenta à equipe de desenvolvimento, que por sua vez, a consome, produz alterações no sistema e as apresenta (Forma-se, então, um ciclo repetido várias vezes devido a redução do tempo de feedback com o cliente).

Page 13: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

13

XP – Valores e Princípios Comunicação:Comunicação: A comunicação é um dos

valores crucial para manter aberta a interação com o cliente.

A forma como nos comunicamos influência entre o cliente e a equipe permite que todos os detalhes do projeto sejam tratados com atenção e agilidade.

A comunicação face a face é a mais eficaz, pois permite que o interlocutor possa interpretá-la levando em consideração a expressão facial, o tom de voz, os gestos, estimulando vários sentidos. É dinâmica e viabiliza questionamentos e respostas.

Page 14: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

14

XP – Valores e Princípios

O XP utiliza esse tipo de comunicação para evitar problemas na interpretação, diminuir as falhas na comunicação e evitar o re-trabalho.

Os documentos continuam sendo usados, porém exercem um papel diferente: são usados para registrar o trabalho que já foi executado e não, o que deverá ser realizado, pois essa informação é transmitida pessoalmente.

Page 15: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

15

XP – Valores e Princípios

ATENÇÃO!ATENÇÃO!

A falta de comunicação é uma inimiga grande de qualquer negócio principalmente no negócio onde o entendimento é crucial para o êxito do projeto. Muita informação técnica é envolvida no simples ato de “criar um projeto”. Aparentemente é simples, mas requer muita técnica e conhecimento para fazê-lo da forma que fique ideal tanto para o desenvolvedor quanto para o cliente.

Page 16: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

16

XP – Valores e Princípios

Simplicidade: Simplicidade: Quando um cliente solicita uma funcionalidade, esse valor sugere que essa funcionalidade seja desenvolvida da forma mais simples possível, para que o cliente tenha seu pedido atendido e possa validá-lo.

A equipe se preocupará com as atividades do presente e não especularão algo que poderia vir a ser necessário no futuro. A equipe é focada no “HOJE” e evita o re-trabalho, implementando algo genérico.

Page 17: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

XP – Valores e Princípios Coragem:Coragem: A equipe precisa ser corajosa para mudar, incrementar uma nova funcionalidade, não deixando que os riscos a impeçam de mudar.

Coragem para desenvolver o software de forma incremental;

Manter o sistema simples;

Permitir que o cliente priorize as funcionalidades;

Fazer os desenvolvedores trabalharem em par;

Investir tempo em refactoring;

Investir tempo em testes automatizados;

Page 18: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

XP – Valores e Princípios

Estimar as estórias na presença do cliente;

Expor o código a todos os membros da equipe;

Integrar o sistema diversas vezes do dia;

Integrar o sistema diversas vezes ao dia;

Adotar um ritmo sustentável;

Abrir mão de documentações que servem como defesa;

Propor contratos de escopo variável;

Propor a adoção de um processo novo.

Page 19: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

19

XP – Valores e Princípios

A partir destes valores, possui como princípios básicos:

feedback rápido, assumir simplicidade, mudanças incrementais, abraçar mudanças e trabalho de qualidade.

Page 20: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

20

XP – Práticas

Para aplicar os valores e princípios durante o desenvolvimento de software, XP propõe uma série de práticas.

Há uma confiança muito grande na harmonia entre elas, os pontos fracos de cada uma são superados pelos pontos fortes de outras.

Page 21: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

21

XP – Práticas Jogo de Planejamento (Jogo de Planejamento (Planning GamePlanning Game): ):

O desenvolvimento é feito em iterações semanais.

No início da semana, desenvolvedores e cliente reúnem-se para priorizar as funcionalidades.

Essa reunião recebe o nome de Jogo do Jogo do Planejamento,Planejamento, onde o cliente identifica prioridades e os desenvolvedores as estimam.

O cliente é essencial neste processo pois assim ele fica sabendo o que está acontecendo e o que vai acontecer no projeto.

Page 22: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

22

XP – Práticas

Como o escopo é reavaliado semanalmente, o projeto é regido por um contrato de escopo negociável, que difere significativamente das formas tradicionais de contratação de projetos de software.

Ao final de cada semana, o cliente recebe novas funcionalidades, completamente testadas e prontas para serem postas em produção.

Page 23: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

23

XP – Práticas Pequenas Versões (Pequenas Versões (Small ReleasesSmall Releases): ):

A liberação de pequenas versões funcionais do projeto auxilia muito no processo de aceitação por parte do cliente.

O cliente já pode testar uma parte do sistema que está comprando.

As versões chegam a ser ainda menores que as produzidas por outras metodologias incrementais, como o RUP.

Page 24: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

24

XP – Práticas Metáfora (Metáfora (MetaphorMetaphor): ):

Procura facilitar a comunicação com o cliente, entendendo a realidade dele.

É uma linguagem comum estabelecida entre a equipe de desenvolvimento e o cliente, já que ela tem o poder de transmitir idéias complexas de forma simples.

É preciso traduzir as palavras do cliente para o

significado que ele espera dentro do projeto.

Page 25: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

25

XP – Práticas Projeto Simples (Projeto Simples (Simple DesignSimple Design): ):

Simplicidade é um princípio da XP. A equipe precisa ser ágil no desenvolvimento. Projeto simples significa dizer que caso o cliente

tenha pedido que na primeira versão apenas o usuário "teste" possa entrar no sistema com a senha "123" e assim ter acesso a todo o sistema, você vai fazer o código exato para que esta funcionalidade seja implementada, sem se preocupar com sistemas de autenticação e restrições de acesso. (atendendo por vez, a cada solicitação do cliente)

Page 26: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

26

XP – Práticas Time Coeso (Time Coeso (Whole TeamWhole Team): ):

A equipe de desenvolvimento é formada pelo cliente e pela equipe de desenvolvimento.

Testes de Aceitação (Testes de Aceitação (Customer TestsCustomer Tests):):

São testes construídos pelo cliente e conjunto de analistas e testadores, para aceitar um determinado requisito do sistema.

Ritmo Sustentável (Ritmo Sustentável (Sustainable PaceSustainable Pace): ): Trabalhar com qualidade, buscando ter ritmo de

trabalho saudável (40 horas/semana, 8 horas/dia), sem horas extras. Horas extras são permitidas quando trouxerem produtividade para a execução do projeto.

Page 27: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

27

XP – Práticas Reuniões em Pé (Reuniões em Pé (Stand-up MeetingStand-up Meeting):):

Reuniões em pé para que o foco nos assuntos não seja perdido, produzindo reuniões rápidas, apenas abordando tarefas realizadas e tarefas a realizar pela equipe.

Posse Coletiva (Posse Coletiva (Collective OwnershipCollective Ownership):): O código-fonte não possui dono e ninguém precisa

solicitar permissão para poder modificar o mesmo. O objetivo com isto é fazer a equipe conhecer todas as partes do sistema.

Page 28: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

28

XP – Práticas

O programador que está digitando é chamado de driver e o outro é o partner. O partner deve estar engajado, ajudando a todo minuto.

Dessa forma, o programa sempre é revisto por duas pessoas, evitando e diminuindo assim a possibilidade de erros (bugs).

Busca-se sempre a evolução da equipe, melhorando a qualidade do código fonte gerado.

Page 29: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

29

XP – Práticas

Padrões de Codificação (Coding Standards): Padrões de Codificação (Coding Standards): A equipe de desenvolvimento precisa estabelecer regras para programar e todos devem seguir estas regras. Desta forma parecerá que todo o código fonte foi editado pela mesma pessoa, mesmo quando a equipe possua 10 ou 100 membros. Busca-se sempre a evolução da equipe, melhorando a qualidade do código fonte gerado.

Page 30: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

30

XP – Práticas Desenvolvimento Orientado a Testes (Desenvolvimento Orientado a Testes (Test Test

Driven DevelopmentDriven Development): ):

Primeiro, cria-se os testes unitários (unit tests) e depois, o código para que os testes funcionem. Esses testes são essenciais para que a qualidade do projeto seja mantida.

Os desenvolvedores escrevem testes para cada funcionalidade antes de codificá-las.

Esta abordagem é complexa no início, pois vai contra o processo de desenvolvimento de muitos anos.

Page 31: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

31

XP – Práticas

Refatoração (Refatoração (RefactoringRefactoring): ):

É um processo que permite a melhoria continua da programação, com o mínimo de introdução de erros e mantendo a compatibilidade com o código já existente.

Refatorar melhora a clareza (leitura) do código, divide-o em módulos mais coesos e de maior reaproveitamento, evitando a duplicação de código-fonte;

Page 32: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

32

XP – Práticas

Integração Contínua (Integração Contínua (Continuous IntegrationContinuous Integration): ):

Sempre que produzir uma nova funcionalidade, nunca esperar uma semana para integrar à versão atual do sistema.

Isto só aumenta a possibilidade de conflitos e a possibilidade de erros no código fonte.

Integrar de forma contínua permite saber o status real da programação.

Page 33: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

33

XP - Equipe

Uma equipe que utiliza o XP normalmente é composta por pessoas que representam os seguintes papéis:

Gerente de Projeto; Coach; Analista de Testes; Redator Técnico; Desenvolvedor.

Page 34: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

34

XP - Equipe Gerente de ProjetoGerente de Projeto

É responsável pelos assuntos administrativos do projeto.

Libera a equipe de questões que não estejam diretamente ligadas à atividade diária de desenvolvimento.

Administra o relacionamento com o cliente, assegurando que o mesmo participe ativamente do desenvolvimento e forneça informações essenciais para que a equipe possa implementar o sistema desejado.

Page 35: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

35

XP - Equipe CoachCoach

É o responsável técnico do projeto

O XP recomenda que um profissional tecnicamente preparado seja destacado para orientar a equipe de modo que ele siga as boas práticas recomendadas pelo XP.

Pode atuar na implementação do sistema.

A principal tarefa é assegurar o bom funcionamento do processo e buscar formas de melhorá-lo continuamente.

Page 36: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

36

XP - Equipe Analista de TestesAnalista de Testes

É responsável por ajudar o cliente a escrever os testes de aceitação.

Deve fazer com que os testes sejam executados diversas vezes ao longo das iterações do projeto quando os testes não são automatizados.

Faz com que eventuais defeitos do sistema sejam identificados logo, fornecendo feedback para a equipe rapidamente, de modo que ela possa fazer as correções com rapidez para evitar que os problemas se propaguem.

Page 37: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

37

XP - Equipe Redator TécnicoRedator Técnico

Ajuda a equipe de desenvolvimento a documentar o sistema.

A sua presença permite que os desenvolvedores se concentrem prioritariamente na implementação do software.

Embora eles possam continuar fazendo algumas documentações, o redator técnico é quem faz maior parte do trabalho de documentação.

Page 38: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

38

XP - Equipe DesenvolvedorDesenvolvedor

É a pessoa que analisa, projeta e codifica o sistema.

É a pessoa que constrói o software.

Dentro do XP, não existem divisões entre analistas, projetistas, programador etc. Cada desenvolvedor exerce estes diferentes papéis em diversos momentos do projeto.

Page 39: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

39

XP – Documentação

Muitas pessoas acreditam que não exista documentação nos projetos que utilizam o XP pelo fato do XP não ter como objetivo principal do projeto documentar.

O tempo que se gasta documentando, o XP defende que é um tempo que poderia estar sendo usado para codificar.

A equipe deve esta atenta para não cometer excesso nem omissões. Precisa documentar apenas o suficiente para que outros desenvolvedores, no futuro, possam dar manutenção no código.

Page 40: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

40

XP – Documentação

As práticas do XP como refactoring, código coletivo e programação em par, que fazem o código gerado ser mais simples e mais limpo que o normal, levam uma menor necessidade de documentação.

Mas isso não elimina a necessidade de documentar, apenas reduz o esforço, sugerindo que a documentação seja adequada, simples e suficiente e que seja produzida de forma eficaz.

Page 41: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

41

XP – Documentação

A princípio não existe um conjunto de documentos que atendam às necessidades de todos os projetos, pois cada projeto possui características diferentes e pode precisar de mais ou menos documentos.

Page 42: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

42

XP – Documentação A seguir, um conjunto reduzido de documentos que podem ser criados com o uso do XP:

Estória Testes de Aceitação Testes de Unidade Javadoc Modelo de Classes Modelo de Dados Processos de Negócios Manual do Usuário Acompanhamento Diário Acompanhamento do Projeto Fotos

Page 43: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

43

XP – Documentação EstóriaEstória

Toda funcionalidade começa com uma estória. Ela é escrita pelo cliente em um cartão e a equipe escreve a estimativa da estória indicando a quantidade de pontos que acredita ser necessária para implementá-la.

Serve como um lembrete da necessidade da equipe dialogar com o cliente no momento de desenvolver a funcionalidade.

A lista de estórias servem de roteiro para as funcionalidades que compõe o sistema.

Page 44: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

44

XP – Documentação Testes de AceitaçãoTestes de Aceitação

Toda estória é associada a um conjunto de testes de aceitação.

Definem respostas que a funcionalidade deve fornecer de acordo com cada utilização por parte do usuário.

Se materializam na forma de roteiros que indicam os resultados esperados bem como os resultados que não pode ser fornecidos pelo sistema (bugs).

Page 45: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

45

XP – Documentação Testes de UnidadeTestes de Unidade

Atende aos objetivos de documentar e validar o funcionamento do sistema.

É o teste em uma ou mais classes de cada funcionalidade do sistema.

Além de testar cada classe para assegurar que o funcionamento das mesmas esteja dentro do esperado, também serve como uma documentação que informa ao seu leitor qual o funcionamento esperado para os métodos das classes.

Page 46: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

46

XP – Documentação JavadocJavadoc

É utilizado para gerar automaticamente uma documentação das classes que compõe o sistema.

Outras linguagens, tais como C++, por exemplo, também contam com ferramentas para geração de documentação automática.

Page 47: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

47

XP – Documentação

Modelo de ClassesModelo de Classes

Pode ser feito de forma manual ou automática.

Pode automatizar o processo com o uso de ferramentas que fazem a engenharia reversa no código.

Se não puder automatizar, opte por uma documentação mais leve, modelando apenas as classes e seus relacionamentos,sem atributos e métodos na ferramenta que estiver a sua disposição.

Os desenvolvedores podem buscar informações dos atributos e métodos no javadoc ou no código.

Page 48: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

48

XP – Documentação Modelo de DadosModelo de Dados

Faz a engenharia reversa das tabelas que compõe o banco de dados.

Quando cliente exigir que o modelo seja alterado antes das alterações no banco sejam efetuadas, faz-se a engenharia reversa do que já foi feito e atualiza aquele documento com o que é novo.

Processo de NegóciosProcesso de Negócios

Descreve os processos de negócios que são implementados pelo sistema.

Representa uma visão conceitual destes processos que tem por objetivo orientar as áreas de negócios da empresa que irá utilizar o sistema.

Page 49: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

49

XP – Documentação

Manual do UsuárioManual do Usuário

É uma extensão dos processos de negócios.

Mostra como os processos de negócios foram mapeados para dentro do sistema indicando todos os passos que o usuário deve seguir para efetuar as operações no software.

Descreve os processos de negócios através de telas do sistema e das ações que o usuário deve fazer em cada uma delas.

Page 50: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

50

XP – Documentação Acompanhamento DiárioAcompanhamento Diário

É um documento gerencial que pode ser adotado pelo gerente para acompanhar as pendências do projeto e cobre dos responsáveis o cumprimento dos compromissos.

Acompanhamento do ProjetoAcompanhamento do Projeto Também é um documento gerencial, atualizado semanalmente

e serve para reportar ao cliente a situação do projeto a cada semana.

Indica as estórias que fazem parte da iteração corrente, as que foram concluídas, os problemas que foram encontrados, o motivos de eventuais atrasos, os riscos, entre outros.

É utilizado para que os gestores possam monitorar e rever as prioridades do projeto.

Page 51: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

51

XP – Documentação FotosFotos

São fotos digitais tiradas dos quadros que a equipe de desenvolvimento usa para diversas atividades. Ex: Todo processo de modelagem.

As fotos dos quadros são tiradas porque o que foi documentado neles nas discussões pode ser perdido, pois é preciso apagar para dar lugar a novos itens de novas discussões.

Page 52: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

Agenda

1. Metodologia Ágil

2. XP – eXtreme Programming

3. Quando o XP não deve ser utilizado

4. Conclusões

5. Referência Bibliográfica

52

Page 53: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

53

Quando o XP não deve ser utilizado Existe um consenso na Comunidade de Desenvolvimento Ágil de que questões culturais impedem a adoção do XP.

Tecnicamente, o XP está preparado para atender a grande maioria dos projetos de software, desde que seja respeitado o tamanho máximo de 12 desenvolvedores na equipe

Page 54: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

54

Quando o XP não deve ser utilizado Algumas questões culturais:

Sistema de premiação Baseia-se fortemente no trabalho da equipe. No XP é difícil identificar desempenhos individuais isoladamente, pois tudo é organizado para que o trabalho da equipe tenha destaque.

O XP baseia-se em cooperação e não existe espaço para competição, desta forma, não utiliza premiações baseadas no desempenho individual.

Contrato de escopo fechado Tendem a dificultar as mudanças impondo uma barreira que prejudica tanto a equipe de desenvolvimento quanto o cliente.

Muitos projetos XP são regidos por contratos de escopo fechado, embora o ideal seja a utilização de contratos de escopo variável.

Page 55: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

55

Quando o XP não deve ser utilizado

Clientes que fazem questão de um grande número de artefatos Alguns clientes exigem a produção de uma grande quantidade de documentos e artefatos ao longo do desenvolvimento.

Se tal exigência não for flexibilizada, isso pode inviabilizar o uso do XP, não sendo possível obter os benefícios do XP.

O processo necessita de agilidade, leveza e flexibilidade.

Page 56: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

56

Quando o XP não deve ser utilizado Escritório

O XP é extremamente dependente do ambiente de trabalho.

É fundamental que as pessoas da equipe possam trabalhar próximas umas das outras, possuam quadros para disponibilizar as discussões, mesas que permitam que os desenvolvedores pratiquem a programação em par.

Muitos projetos XP são regidos por contratos de escopo fechado, embora o ideal seja a utilização de contratos de escopo variável.

Mudanças É um processo de desenvolvimento que muda fortemente a maneira como as pessoas estão habitadas a desenvolver software.

As mudanças e efeitos não devem ser subestimados. A equipe precisa ser “preparada” para a mudança.

Page 57: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

57

Quando o XP não deve ser utilizado Apoio

Existe apoio para a adoção do XP no projeto ou na organização?

Se não existir apoio interno, dificilmente a adoção será bem sucedida.

Avaliação da cultura organizacional Deve ser realizada antes da adoção do XP. Tão importante quanto saber usá-lo é saber quando não utilizá-lo.

Page 58: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

Agenda

1. Metodologia Ágil

2. XP – eXtreme Programming

3. Quando o XP não deve ser usado

4. Conclusões

5. Referência Bibliográfica

58

Page 59: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

59

Conclusões

O XP é um processo de desenvolvimento flexível que se adapta facilmente às mudanças nos projetos de desenvolvimento;

As mudanças devem ser gradativas de modo que não cause um grande impacto na equipe/organização;

O acompanhamento em um projeto é realizado em curtos intervalos de tempo;

Reuniões curtas ocorrem diariamente;

Page 60: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

Agenda

1. Metodologia Ágil

2. XP – eXtreme Programming

3. Conclusões

4. Referência Bibliográfica

60

Page 61: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

61

Referência Bibliográfica

Livro: Livro:

Extreme Programming : Extreme Programming : Aprenda como encantar seus Aprenda como encantar seus usuários desenvolvendo software com agilidade e alta usuários desenvolvendo software com agilidade e alta qualidade.qualidade.

Autor: Vinícius Manhães Teles -Novatec EditoraAutor: Vinícius Manhães Teles -Novatec Editora

Page 62: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

Qualidade, Processos e Gestão de Software

XPXP eXtreme ProgrammingeXtreme Programming

Rebeka BritoRebeka Brito

06/10/2008

62

Obrigada!

Page 63: 1. Qualidade, Processos e Gestão de Software XP eXtreme Programming eXtreme Programming Rebeka Brito Rebeka Brito (rsb2@cin.ufpe.br) 06/10/2008 2

63