SlideShare una empresa de Scribd logo
1 de 35
http://netponto.org 2ª Reunião Presencial - 19/09/2009 Introdução ao eXtreme ProgrammingPaulo Correia
Paulo Correia 14 anos de experiência profissional em TI Vivi mais de 4 anos no Brasil, voltei há 4 anos Experiência em projectos desde e-commerce, portais de conteúdo, banca, etc.
Paulo Correia 14 anos de experiência profissional em TI Vivi mais de 4 anos no Brasil, voltei há 4 anos Experiência em projectos desde e-commerce, portais de conteúdo, banca, etc.
Agenda Introdução Valores do XP Práticas do XP Porque funciona? Benefícios Conclusão
Introdução / O que é? Processo de desenvolvimento de software Mais um?
Introdução / Tradicionalmente...
Introdução / Tradicionalmente...
Introdução / Tradicionalmente...
Introdução / Tradicionalmente...
Valores do XP Feedback Comunicação Simplicidade Coragem
Valores do XP Feedback Comunicação Simplicidade Coragem
Valores do XP Feedback Comunicação Simplicidade Coragem
Valores do XP Feedback Comunicação Simplicidade Coragem
Práticas do XP
Práticas do XP Planning Game
Práticas do XP Small Releases Projeto: 8 meses = 32 semanas 8 Sem. R1 R2 R3 R4
Práticas do XP Small Releases Projeto: 8 meses = 32 semanas 8 Sem. R1 R2 R3 R4 2 Sem. I2 I3 I4 I1
Práticas do XP Metáfora
Práticas do XP Simple Design
Práticas do XP Equipa coesa
Práticas do XP Acceptance tests
Práticas do XP Ritmo Sustentável
Práticas do XP Stand-up Meeting
Práticas do XP Collective Ownership
Práticas do XP Pair Programming
Práticas do XP Coding Standards
Práticas do XP Test Driven Development
Práticas do XP Refactoring Com Sem
Práticas do XP Continuous Integration
Porque funciona? Assente em disciplina sem burocracia Desenvolvimento como convenção O código é a documentação Melhor qualidade de vida XP dá pica 
Benefícios Equipa que desenvolve Requisitos e prioridades mais explícitos Bom desempenho Nada de horas extra Conhecimento de todas as partes do projecto Sentimento de concretização Cliente Obtém valor para o negócio logo desde o inicio Feedback preciso de como está a decorrer o projecto Toma decisões de negócio com bases concretas Pode mudar de ideias/requisitos
Conclusão ,[object Object]
Com requisitos mutáveis ou vagos
Pequenas equipas
XP funciona e é muito ágil

Más contenido relacionado

Similar a Introdução ao eXtreme Programming (XP) - Paulo Correia

A computacao e_voce_caminhos_para_seguir
A computacao e_voce_caminhos_para_seguirA computacao e_voce_caminhos_para_seguir
A computacao e_voce_caminhos_para_seguir
UFPA
 
Então você quer ser gerente de projetos? Conte-me mais sobre isso...
Então você quer ser gerente de projetos? Conte-me mais sobre isso...Então você quer ser gerente de projetos? Conte-me mais sobre isso...
Então você quer ser gerente de projetos? Conte-me mais sobre isso...
Fernando Ultremare
 

Similar a Introdução ao eXtreme Programming (XP) - Paulo Correia (20)

LIDERAR - Relatos e Paradigma de uma nova Líder
LIDERAR - Relatos e Paradigma de uma nova LíderLIDERAR - Relatos e Paradigma de uma nova Líder
LIDERAR - Relatos e Paradigma de uma nova Líder
 
O Estado do Plone - FISL 14
O Estado do Plone - FISL 14O Estado do Plone - FISL 14
O Estado do Plone - FISL 14
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
5 meses de python o que aprendi
5 meses de python  o que aprendi5 meses de python  o que aprendi
5 meses de python o que aprendi
 
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...
 
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
 
Slide de Divulgação do Curso Inteligência de Negócios (Business Intelligence)...
Slide de Divulgação do Curso Inteligência de Negócios (Business Intelligence)...Slide de Divulgação do Curso Inteligência de Negócios (Business Intelligence)...
Slide de Divulgação do Curso Inteligência de Negócios (Business Intelligence)...
 
Entrevista com empreendedor
Entrevista com empreendedorEntrevista com empreendedor
Entrevista com empreendedor
 
Webaula 47 - Apresentações de alto impacto para multiplicadores
Webaula 47 - Apresentações de alto impacto para multiplicadoresWebaula 47 - Apresentações de alto impacto para multiplicadores
Webaula 47 - Apresentações de alto impacto para multiplicadores
 
Criando empresas que as pessoas adoram: O papel da UX em uma startup
Criando empresas que as pessoas adoram: O papel da UX em uma startupCriando empresas que as pessoas adoram: O papel da UX em uma startup
Criando empresas que as pessoas adoram: O papel da UX em uma startup
 
Guião da visita executiva versão 1.0
Guião da visita executiva versão 1.0Guião da visita executiva versão 1.0
Guião da visita executiva versão 1.0
 
A computacao e_voce_caminhos_para_seguir
A computacao e_voce_caminhos_para_seguirA computacao e_voce_caminhos_para_seguir
A computacao e_voce_caminhos_para_seguir
 
2011.04.14 live@edu fatec sp
2011.04.14 live@edu fatec sp2011.04.14 live@edu fatec sp
2011.04.14 live@edu fatec sp
 
Palestrar.dev - Disseminando seu conhecimento em desenvolvimento
Palestrar.dev - Disseminando seu conhecimento em desenvolvimentoPalestrar.dev - Disseminando seu conhecimento em desenvolvimento
Palestrar.dev - Disseminando seu conhecimento em desenvolvimento
 
Então você quer ser gerente de projetos? Conte-me mais sobre isso...
Então você quer ser gerente de projetos? Conte-me mais sobre isso...Então você quer ser gerente de projetos? Conte-me mais sobre isso...
Então você quer ser gerente de projetos? Conte-me mais sobre isso...
 
O Futuro do Plone (RuPy-Br)
O Futuro do Plone (RuPy-Br)O Futuro do Plone (RuPy-Br)
O Futuro do Plone (RuPy-Br)
 
Uso de Analytics Desk vs Mobile vs App, novas ferramentas, tecnologias e caso...
Uso de Analytics Desk vs Mobile vs App, novas ferramentas, tecnologias e caso...Uso de Analytics Desk vs Mobile vs App, novas ferramentas, tecnologias e caso...
Uso de Analytics Desk vs Mobile vs App, novas ferramentas, tecnologias e caso...
 
Desenvolvedor de Software - Como construir uma carreira
Desenvolvedor de Software - Como construir uma carreiraDesenvolvedor de Software - Como construir uma carreira
Desenvolvedor de Software - Como construir uma carreira
 
Palestra IFG - Desenvolvimento Front-end
Palestra IFG - Desenvolvimento Front-endPalestra IFG - Desenvolvimento Front-end
Palestra IFG - Desenvolvimento Front-end
 
Carreira Profissional e Certificação de um Analista de BI Pentaho
Carreira Profissional e Certificação de um Analista de BI PentahoCarreira Profissional e Certificação de um Analista de BI Pentaho
Carreira Profissional e Certificação de um Analista de BI Pentaho
 

Más de Comunidade NetPonto

Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Comunidade NetPonto
 
Case studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsCase studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store Apps
Comunidade NetPonto
 
Aspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharpAspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharp
Comunidade NetPonto
 

Más de Comunidade NetPonto (20)

Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
 
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
 
MVVM Light e Cimbalino Toolkits - Sara Silva
MVVM Light e Cimbalino Toolkits - Sara SilvaMVVM Light e Cimbalino Toolkits - Sara Silva
MVVM Light e Cimbalino Toolkits - Sara Silva
 
Deep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo CostaDeep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo Costa
 
The power of templating.... with NVelocity - Nuno Cancelo
The power of templating.... with NVelocity - Nuno CanceloThe power of templating.... with NVelocity - Nuno Cancelo
The power of templating.... with NVelocity - Nuno Cancelo
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
ASP.NET Signal R - Glauco Godoi
ASP.NET Signal R - Glauco GodoiASP.NET Signal R - Glauco Godoi
ASP.NET Signal R - Glauco Godoi
 
NoSQL em Windows Azure Table Storage - Vitor Tomaz
NoSQL em Windows Azure Table Storage - Vitor TomazNoSQL em Windows Azure Table Storage - Vitor Tomaz
NoSQL em Windows Azure Table Storage - Vitor Tomaz
 
HTML5 - Pedro Rosa
HTML5 - Pedro RosaHTML5 - Pedro Rosa
HTML5 - Pedro Rosa
 
De Zero a Produção - João Jesus
De Zero a Produção - João JesusDe Zero a Produção - João Jesus
De Zero a Produção - João Jesus
 
OData – Super Cola W3
OData – Super Cola W3OData – Super Cola W3
OData – Super Cola W3
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
 
Case studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsCase studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store Apps
 
Aspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharpAspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharp
 
Utilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosUtilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes Unitários
 
Dinâmica e Motivacao de Equipas de Projecto
Dinâmica e Motivacao de Equipas de ProjectoDinâmica e Motivacao de Equipas de Projecto
Dinâmica e Motivacao de Equipas de Projecto
 
KnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realKnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida real
 
Como ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noiteComo ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noite
 
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteWindows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 

Último

Último (9)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Introdução ao eXtreme Programming (XP) - Paulo Correia

Notas del editor

  1. Assumir a mudança (de requisitos) como parte do processo e não uma excepçãoObjectivo de gerar o máximo valor para o cliente com:Alta qualidadeAgilidadeFlexibilidadeCusto reduzidoPrimeiro projecto em 6 Março 1996
  2. O desenvolvimento é feito em iterações semanais. No início da semana, desenvolvedores e cliente reúnem-se para estabelecer as prioridades das funcionalidades/user stories. Essa reunião recebe o nome de Jogo do Planeamento.Nela, o cliente identifica prioridades e os desenvolvedores as estimam. O cliente é essencial neste processo e assim ele fica sabendo o que está acontecendo e o que vai acontecer no projecto. Como o escopo é reavaliado semanalmente, o projecto é regido por um contrato de escopo negociável, que difere significativamente das formas tradicionais de contratação de projectos de software. Ao final de cada semana, o cliente recebe novas funcionalidades, completamente testadas e prontas para serem postas em produção.
  3. A liberação de pequenas versões funcionais do projecto auxilia muito no processo de aceitação por parte do cliente, que 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.No início do projeto, deve-se determinar o número máximo de estórias e estimá-las. A estimativa é sempre feita pelos programadores.Ao mostrar os releases, dizer que no início de cada um se faz o planejamento do release. Nele, o cliente indica as estórias que devem ser feitas. Estas estórias podem mudar ao longo do release, de acordo com as priridades do cliente.No início de cada iteração, ocorre o planejamento da iteração. O cliente decide o que será feito na iteração. Ao contrário do planejamento do release, o cliente não pode alterar as estórias que serão executadas em uma iteração. Elas ficam completamente congeladas.No início de cada semana, a equipe planeja as tarefas que serão executadas ao longo da semana.No início de cada manhã, a equipe faz um stand up meeting e prioriza as atividades do dia que se inicia.
  4. A liberação de pequenas versões funcionais do projecto auxilia muito no processo de aceitação por parte do cliente, que 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.No início do projeto, deve-se determinar o número máximo de estórias e estimá-las. A estimativa é sempre feita pelos programadores.Ao mostrar os releases, dizer que no início de cada um se faz o planejamento do release. Nele, o cliente indica as estórias que devem ser feitas. Estas estórias podem mudar ao longo do release, de acordo com as priridades do cliente.No início de cada iteração, ocorre o planejamento da iteração. O cliente decide o que será feito na iteração. Ao contrário do planejamento do release, o cliente não pode alterar as estórias que serão executadas em uma iteração. Elas ficam completamente congeladas.No início de cada semana, a equipe planeja as tarefas que serão executadas ao longo da semana.No início de cada manhã, a equipe faz um stand up meeting e prioriza as atividades do dia que se inicia.
  5. Procura facilitar a comunicação com o cliente, entendendo a realidade dele. O conceito de rápido para um cliente de um sistema jurídico é diferente para um programador experiente em controlar comunicação em sistemas em tempo real, como controle de tráfego aéreo. É preciso traduzir as palavras do cliente para o significado que ele espera dentro do projecto.
  6. Simplicidade é um princípio da XP. Projecto 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 exacto para que esta funcionalidade seja implementada, sem se preocupar com sistemas de autenticação e restrições de acesso. Um erro comum ao adoptar essa prática é a confusão por parte dos programadores de código simples e código fácil. Nem sempre o código mais fácil de ser desenvolvido levará a solução mais simples por parte de projecto. Esse entendimento é fundamental para o bom andamento do XP. Código fácil deve ser identificado e substituído por código simples.
  7. A equipe de desenvolvimento é formada pelo cliente e pela equipa de desenvolvimento.
  8. São testes construídos pelo cliente e conjunto de analistas e testers, para aceitar um determinado requisito do sistema.
  9. 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 projecto. Outra prática que se verifica neste processo é a prática de trabalho motivado sempre. Para isto o ambiente de trabalho e a motivação da equipe devem estar sempre em harmonia.
  10. Reuniões em pé para não se perder o foco nos assuntos, produzindo reuniões rápidas, apenas abordando tarefas realizadas e tarefas a realizar pela equipe.
  11. O código fonte não tem dono e ninguém precisa solicitar permissão para poder modificar o mesmo. O objectivo com isto é fazer a equipe conhecer todas as partes do sistema.
  12. é a programação em par/dupla num único computador. Geralmente a dupla é formada por um iniciante na linguagem e outra pessoa funcionando como um instrutor. Como é apenas um computador, o novato é que fica à frente fazendo a codificação, e o instrutor acompanha ajudando a desenvolver suas habilidades. Desta forma o programa sempre é revisto por duas pessoas, evitando e diminuindo assim a possibilidade de erros (bugs). Com isto busca-se sempre a evolução da equipe, melhorando a qualidade do código fonte gerado.
  13. 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 possui 10 ou 100 membros.
  14. Primeiro crie os testes unitários (unit tests) e depois crie o código para que os testes funcionem. Esta abordagem é complexa no início, pois vai contra o processo de desenvolvimento de muitos anos. Só que os testes unitários são essenciais para que a qualidade do projecto seja mantida.
  15. É 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. Reconstruirmelhora a clareza (leitura) do código, divide-o em módulos mais coesos e de maior reaproveitamento, evitando a duplicação de códigofonte;
  16.  Sempre que produzir uma nova funcionalidade, nunca esperar uma semana para integrar à versão actual 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.