+ All Categories
Home > Business > eXtreme Programming(Sepai2004) - Manoel Pimentel

eXtreme Programming(Sepai2004) - Manoel Pimentel

Date post: 18-Dec-2014
Category:
Upload: manoel-pimentel-medeiros
View: 1,149 times
Download: 1 times
Share this document with a friend
Description:
 
41
Manoel Pimentel Manoel Pimentel Extreme Programming [email protected] 1/49 eXtreme Programming Conceitos e Casos Práticos SEPAI 2004 I Beljungle
Transcript
Page 1: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

1/49

eXtreme Programming Conceitos e Casos Práticos

SEPAI 2004I Beljungle

Page 2: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

2/49

Manoel PimentelÉ Engenheiro de Software, com mais de 15 anos na área de TI, atualmente trabalha com projetos pela Rhealeza(SP). É Diretor Editorial da Revista Visão Ágil, Membro da Agile Alliance e foi um dos pioneiros na utilização e divulgação de métodos ágeis no Brasil. Já escreveu artigos para importantes revistas e portais especializados no Brasil e no exterior. Possui as certificações CSM e CSP da Scrum Alliance. Já participou do time de Desenvolvimento do NetBeans(Sun), foi criador do projeto BoxSQL, fundador do grupo XPNorte e do NUG-BR e frequentemente palestra em eventos sobre processos e tecnologias. Maiores informações em: http://manoelpimentel.blogspot.com

Page 3: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

3/49

INFORMAÇÕES:

br.groups.yahoo.com/group/xpnorte/www.xispe.com.brwww.xprogramming.com/

Page 4: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

4/49

Vamos usar XP? XP é um apelido carinhoso de uma metodologia de desenvolvimento designada Extreme Extreme ProgrammingProgramming,  com foco em agilidade de equipes e qualidade de projetos, apoiada em valores como simplicidade, comunicação, feedback e coragem…

Page 5: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

5/49

Vamos usar XP? (cont..)

Nos submete ao reconhecimento de que XP é uma metologia baseada em comportamentos e atitudesatitudes, proporcionando dessa forma, mecanismos para que o projeto seja executado com sucesso. dentro do prazoprazo e do orçamento, fazendo então com que o cliente fique satisfeito e a equipe de desenvolvimento não fique maluca por causa do projeto.

Page 6: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

6/49

O que é um projeto de sucesso?

É um projeto onde:

-É executado dentro do prazoprazo

-Dentro do orçamento,

-O cliente fica satisfeito

-E a equipe de desenvolvimento não fique maluca por causa do projeto.

Page 7: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

7/49

Valores do XP:

- Simplicidade;

- Comunicação;

- Feedback;

- Coragem;

Page 8: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

8/49

Valores do XP: (cont...)

simplicidade comunicação feedback coragem

PRÁTICAS XP

Relação entre valores e práticas

Page 9: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

9/49

Valores do XP: (cont...)

simplicidade

é necessária desde a forma como se levanta requisitos até a codificação e os testes da solução desenvolvida.

Page 10: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

10/49

Valores do XP: (cont...)

comunicação

é obrigatória para que não haja lacunas em processos e problemas entre equipe(cliente e fornecedor).

Page 11: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

11/49

Valores do XP: (cont...)

feedback

é a pratica fundamentada em retornar informações entre os membros da equipe e também na relação com o cliente, desde de responder e-mails, telefonemas bips e demais meios.

Page 12: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

12/49

Valores do XP: (cont...)

coragem

Saber dizer NÃONÃO quando necessário, ou então para dizer que o projeto vai demorar além do estimado pois os novos requisitos precisam ser codificados ou o código já em funcionamento precisa ser refatorado.

Page 13: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

13/49

Práticas de XP:

Extreme Programming é dinâmica e flexível, porém é necessário muita disciplina para usá-la em um projeto, para demostrar isso, em seguida temos um conjunto sugerido de "boas práticas" em projetos usando XP.

Page 14: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

14/49

Práticas de XP: (cont...)

>> O cliente sempre disponível(The Customer is Always Available) Constante disponilidade do cliente para colaborar em dúvidas, alterações, e prioridades em um escopo, ou seja dando um dinâmismo ativo ao projeto.

Page 15: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

15/49

Práticas de XP: (cont...)

>> Metáforas no projeto(Metaphor)

Visando facilitar a comunição da equipe, caso seja possível, é estabelecido o uso de metáforas em pontos chaves ao projeto, como por exemplo a definição de um nome que seja comum à equipe e simbolize algo de fácil assimilação.

Page 16: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

16/49

Práticas de XP: (cont...)

>> Planejando o jogo(Planning Game )

São estimuladas reuniões usando quadros brancos, com o objetivo de captar e definir as "user stories"( estórias), para poder estimar o tempo ideal das interaçoes, o projeto como um todo, elaborar estratégias e tentar prever as contigências para projeto.

Page 17: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

17/49

Práticas de XP: (cont...)

>> Planejando o jogo (cont …)

Estórias(user stories)

são textos claros ou diagramas com notação UML com as especificações de regras de negócios inerentes ao sistema, levantadas juntos aos clientes, que servirão como base para os requisitos.

Page 18: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

18/49

Práticas de XP: (cont...)

>> Planejando o jogo (cont …)

EstóriasNOTAÇÂO UML

(classes, caso de uso, etc.)

Critérios de aceitação

Interações

Testes Unitários

CODIFICAÇÃO

Relação das estórias com o projeto

Page 19: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

19/49

R1 R2 R3 R4

I1

8 Sem.

I2 I3 I4

2 Sem.

Estórias, Interações e Releases

S 1

1 Sem.

S 2

1 Sem.

Práticas de XP: (cont...)>> Planejando o jogo (cont …)

LEGENDAS:RR – ReleasesI I – Interação

SS - Estória

Page 20: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

20/49

Práticas de XP: (cont...)

>> Pequenas versões(Small Releases )

Conforme as interações são concluídas, o cliente recebe pequenas versões/releases do sistema, visando com que seja colocado em prática e validado aquilo que está sendo implementado, ou mais cedo possam ser detectadas necessidades de alterações de requisitos no software.

Page 21: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

21/49

Práticas de XP: (cont...)

>> Pequenas versões (cont …)Esquema de aplicação:

Validação pelo

clienteRelease 1

Teste unitário/Critérios de aceitação

Aprovado?

Aceitação e avanço p/próximas interações

SIM

Necessidade derefatoração

NÃONovos requisitos

Interação1

Interação2

Page 22: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

22/49

Práticas de XP: (cont...)

>> Testes de Aceitação (Acceptance Tests)

São definidos pelo usuário na fase inicial do projeto e são os critérios de aceitação do software conforme a estratégia de entrega, representa exatamente a métrica de aderência do software desenvolvido/implantado ao universo do cliente.

Page 23: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

23/49

Práticas de XP: (cont...)

>> Primeiro os testes (Test First Design)

Aplicados apartir de testes unitários do código produzido, além de serem definidos utilizando os critérios de aceitação definidos previamente pelo cliente, garante também a redução de erros de programação e aumenta a fidelidade do código produzido ao padrão estabelecido para o projeto.

Page 24: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

24/49

Práticas de XP: (cont...)

>> Primeiro os testes (cont ...)

Através da prática de testes unitários, definimos antes da codificação os testes dos métodos críticos do software ou métodos simples que podem apresentar alguma exceção de processamento.

Page 25: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

25/49

Práticas de XP: (cont...)

>> Integração Contínua(Continuous Integration)

Os diversos módulos do software são integrados diversas vezes por dia e todos os testes unitários são executados. O código não passa até obter sucesso em 100% dos testes unitários, facilitando então dessa forma o trabalho de implementação da solução.

Page 26: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

26/49

Práticas de XP: (cont...)

>> Integração ContínuaEsquema de aplicação:

FuncionáriosInserir()Excluir()Bloquear()Demitir()Férias()

Envelope

NovoEvento()Calcular()Alterar()LiberarPgto()

ProcessaPgto

MétPrincipal()ProvisãoFin()ProvisãoCTB()

<<integração>>

Teste unitário

Teste unitário

1:1

1:N

1:1

1:N

Teste unitário

Page 27: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

27/49

Práticas de XP: (cont...)

>> Simplicidade de Design(Simple Design)

O código está, a qualquer momento, na forma mais simples e mais clara, conforme os padrões definidos pela equipe, facilitando a compreensão e possível continuidade por qualquer membro da equipe de desenvolvimento.

Page 28: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

28/49

Práticas de XP: (cont...)

>> Refatoração - melhoria constante (Refactoring)

A cada nova funcionalidade adicionada, é trabalhado o design do código até ficar na sua forma mais simples, mesmo que isso implique em "mexer" em um código que esteja em funcionamento.

Page 29: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

29/49

Práticas de XP: (cont...)

>> Refatoração - melhoria constante (cont ...)

Claro que a prática de refatoração nem sempre é aceita, pois envolve questões como prazo e custo, e essa prática em si pode ser minimizada caso o projeto esteja usando 100% de orientação a objeto, onde podemos criar códigos os mais genéricos e reutilizáveis possíveis, diminuindo o trabalho em caso de uma possível refatoração.

Page 30: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

30/49

Práticas de XP: (cont...)

>> Programação em dupla(Pair Programming)

Todo código em produção é desenvolvido por duas pessoas trabalhando com o mesmo teclado, o mesmo mouse e o mesmo monitor, somando forças para a implementação do código.

Page 31: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

31/49

Práticas de XP: (cont...)

>> Programação em dupla

pontos positvos : - Compartilhamento de conhecimento acerca das regras de negócio do projeto por todos da equipe de desenvolvimento; - Fortalece a prática de Propriedade Coletiva do Código; - Nivelação de conhecimento técnico; - Elevação dos níveis de atenção ao código

Page 32: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

32/49

Práticas de XP: (cont...)

>> Rodízio de pessoas (Move People Around)

As duplas de programação são revezadas periodicamente, com o objetivo de uniformizar os códigos produzidos, deixar todos os módulos do sistema com mesmo padrão de código/pensamento, e compartilhar o código com todos da equipe.

Page 33: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

33/49

Práticas de XP: (cont...)

>> Rodízio de pessoas (cont ...)Esquema de aplicação:(1° Momento )

Código 1

Programador X Programador Y

Equipe Verde

Código 2

Programador W Programador Z

Equipe Vermelho

Page 34: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

34/49

Práticas de XP: (cont...)

>> Rodízio de pessoas (cont ...)Esquema de aplicação:(2° Momento )

Código 1

Programador X Programador Y

Equipe Verde

Código 2

Programador WProgramador Z

Equipe Vermelho

Page 35: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

35/49

Práticas de XP: (cont...)

>> Rodízio de pessoas (cont ...)Esquema de aplicação:(3° Momento )

Código 1

Programador X Programador Y

Equipe Verde

Código 2

Programador W Programador Z

Equipe Vermelho

Page 36: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

36/49

Práticas de XP: (cont...)

>> Propriedade coletivaCollective (Code Ownership )

Uma vez aplicado a Programação em Dupla e Rodízio de Pessoas a equipe como um todo é responsável por cada arquivo de código. Não é preciso pedir autorização para alterar qualquer arquivo, mantendo claro, um padrão prático de comunicação da equipe.

Page 37: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

37/49

Práticas de XP: (cont...)

>> Padronização do código (Coding Standards )

Todo código é desenvolvido seguindo um padrão, qualquer que seja, mas toda equipe deve seguir o mesmo padrão, dessa forma todos da equipe terão a mesma visão do código.

Page 38: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

38/49

Práticas de XP: (cont...)

>> Otimizando a jornadas de trabalho (40 Hour Week )

Trabalhar por longos períodos é contraproducente, portanto sempre que possível evitar a sobrecarga de trabalho de todos da equipe, criando condições favoráveis ao uso da carga normal de trabalho.

Page 39: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

39/49

Práticas de XP: (cont...)

>> Otimizando a jornadas de trabalho(cont...) (40 Hour Week )

deixando a equipe livre para relaxar, brincar, ou fazer o quem bem entender para equilibrar o trabalho mental e físico, existe até uma frase que diz : trabalhe a 100% durante as 40 horas e descanse a 100% no resto, se algum deles não for feito com 100%, um afetatá o outro.

Page 40: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

40/49

DÚVIDAS?

Page 41: eXtreme Programming(Sepai2004) -  Manoel Pimentel

Manoel PimentelManoel PimentelExtremeProgramming [email protected]

41/49

FIM


Recommended