SlideShare uma empresa Scribd logo
Programação extrema - Wikipédia                                     http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema




         Programação extrema                                   · Programming

         Origem: Wikipédia, a enciclopédia livre.

         Programação Extrema (do inglês eXtreme Programming), ou simplesmente XP, é uma metodologia ágil para
         equipes pequenas e médias e que irão desenvolver software com requisitos vagos e em constante mudança. Para
         isso, adota a estratégia de constante acompanhamento e realização de vários pequenos ajustes durante o
         desenvolvimento de software.

         Os quatro valores fundamentais da metodologia XP são: comunicação, simplicidade, feedback e coragem. A
         partir desses valores, possui como princípios básicos: feedback rápido, presumir simplicidade, mudanças
         incrementais, abraçar mudanças e trabalho de qualidade.

         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.

         A XP incentiva o controle da qualidade como variável do projeto, pois o pequeno ganho de curto prazo na
         produtividade, ao diminuir qualidade, não é compensado por perdas (ou até impedimentos) a médio e longo
         prazo.



          Índice


         Valores
               Comunicação

               Simplicidade

               Feedback

               Coragem

               Respeito

         Princípios Básicos
               Feedback rápido
               Presumir simplicidade
               Mudanças incrementais
               Abraçar mudanças
               Trabalho de qualidade.

         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 sinergia entre elas, os pontos fracos de cada uma são superados pelos pontos
         fortes de outras.

1 of 3                                                                                                           8/3/2008 04:07
Programação extrema - Wikipédia                                     http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema


             Jogo de Planejamento (Planning 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 Planejamento. 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 projeto. 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.

             Pequenas Versões (Small Releases): 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.

             Metáfora (Metaphor): 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 projeto.

             Projeto Simples (Simple Design): Simplicidade é um princípio da XP. Projeto simples significa dizer que
             caso o cliente tenha pedido que na primeira versão apenas o usuário quot;testequot; possa entrar no sistema com a
             senha quot;123quot; 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.
             Um erro comum ao adotar 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 projeto. Esse entendimento é fundamental para o bom andamento do XP. Código fácil deve ser
             identificado e substituído por código simples.

             Time Coeso (Whole Team): A equipe de desenvolvimento é formada pelo cliente e pela equipe de
             desenvolvimento.

             Testes de Aceitação (Customer Tests): São testes construídos pelo cliente e conjunto de analistas e
             testadores, para aceitar um determinado requisito do sistema.

             Ritmo Sustentável (Sustainable 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 projecto. Outra prática que se verifica neste processo é a prática de
             trabalho energizado, onde se busca trabalho motivado sempre. Para isto o ambiente de trabalho e a
             motivação da equipe devem estar sempre em harmonia.

             Reuniões em pé (Stand-up Meeting): 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.

             Posse Coletiva (Collective Ownership): O código fonte não tem 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.

             Programação em Pares (Pair Programming): é a programação em par/dupla num único computador.
             Geralmente a dupla é formada por um iniciante na liguagem 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.

             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


2 of 3                                                                                                           8/3/2008 04:07
Programação extrema - Wikipédia                                      http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema


              editado pela mesma pessoa, mesmo quando a equipa possui 10 ou 100 membros.

              Desenvolvimento Orientado a Testes (Test Driven Development): 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.

              Refatoração (Refactoring): É 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. Refabricar
              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;

              Integração Contínua (Continuous 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.

         Livros
              Extreme Programming Explained : Embrace Change (2nd Edition) (ISBN 0321278658)
              Planning Extreme Programming (ISBN 0201710919)
              Extreme Programming Installed (ISBN 0201708426)
              Agile Software Development, Principles, Patterns, and Practices (ISBN 0135974445)

         Ligações externas
              Apresentando XP. Encante seus clientes com Extreme Programming
              (http://www.javafree.org/content/view.jf?idContent=5)
              Entregue seu código com confiança utilizando desenvolvimento dirigido a testes
              (http://www.javafree.org/content/view.jf?idContent=16)
              Extreme Programming: A gentle introduction (http://www.extremeprogramming.org) (em inglês)
              eXtreme Programming (http://www.xp-rs.org) (Rio Grande do Sul)
              Introdução ao Extreme Programming (http://www.improveit.com.br/xp)
              XPRio - eXtreme Programming (http://xprio.blogspot.com) (Rio de Janeiro)
              Curso de Programação eXtrema no IME/USP (http://www.ime.usp.br/~xp)
              Agilcast (http://agilcoop.incubadora.fapesp.br/portal/agilcast) - podcast

         Obtido em quot;http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extremaquot;
         Categoria: Desenvolvimento de software

              Esta página foi modificada pela última vez a 10h05min, 2 de Março de 2008.
              O texto desta página está sob a GNU Free Documentation License.
              Os direitos autorais de todas as contribuições para a Wikipédia pertencem aos seus respectivos autores
              (mais informações em direitos autorais).




3 of 3                                                                                                            8/3/2008 04:07

Mais conteúdo relacionado

Mais procurados

Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
Ricardo Bánffy
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
Rennan Martini
 
Apresentando Extreme Programming
Apresentando Extreme ProgrammingApresentando Extreme Programming
Apresentando Extreme Programming
Milfont Consulting
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme Programming
Daniel Wildt
 
Extreme Programming XP
Extreme Programming XPExtreme Programming XP
Extreme Programming XP
Luis Claudio Silva Fernandes
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
gustavoferrazfontes
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
Rafael Souza
 
Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)
Claudia Melo
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme Programming
Denis L Presciliano
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
MarcosMaozinha
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
Concurseiro Área de TI
 
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Cris Fidelix
 
IPA Conhecendo XP
IPA Conhecendo XPIPA Conhecendo XP
IPA Conhecendo XP
Wildtech
 
Planning Onion
Planning OnionPlanning Onion
Planning Onion
Roger Ritter
 
Bate-papo com Especialista Terra XP
Bate-papo com Especialista Terra XPBate-papo com Especialista Terra XP
Bate-papo com Especialista Terra XP
Wildtech
 
Métodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de SoftwareMétodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de Software
alexandre_malaquias
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
Marcelo Láias
 
Metodologias ágeis de desenvolvimento trabalho
Metodologias ágeis de desenvolvimento   trabalhoMetodologias ágeis de desenvolvimento   trabalho
Metodologias ágeis de desenvolvimento trabalho
Ruan Pozzebon
 
Trabalho xp
Trabalho xpTrabalho xp
Trabalho xp
Gustavo Medeiros
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
Rafael Spínola
 

Mais procurados (20)

Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Apresentando Extreme Programming
Apresentando Extreme ProgrammingApresentando Extreme Programming
Apresentando Extreme Programming
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme Programming
 
Extreme Programming XP
Extreme Programming XPExtreme Programming XP
Extreme Programming XP
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme Programming
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
 
IPA Conhecendo XP
IPA Conhecendo XPIPA Conhecendo XP
IPA Conhecendo XP
 
Planning Onion
Planning OnionPlanning Onion
Planning Onion
 
Bate-papo com Especialista Terra XP
Bate-papo com Especialista Terra XPBate-papo com Especialista Terra XP
Bate-papo com Especialista Terra XP
 
Métodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de SoftwareMétodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de Software
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Metodologias ágeis de desenvolvimento trabalho
Metodologias ágeis de desenvolvimento   trabalhoMetodologias ágeis de desenvolvimento   trabalho
Metodologias ágeis de desenvolvimento trabalho
 
Trabalho xp
Trabalho xpTrabalho xp
Trabalho xp
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 

Destaque

20071208
2007120820071208
20071208
Mireia Buchaca
 
Edmonton
EdmontonEdmonton
Edmonton
HockeyGrinch
 
Leyenda de la Virgen de Dos Aguas
Leyenda de la Virgen de Dos AguasLeyenda de la Virgen de Dos Aguas
Leyenda de la Virgen de Dos Aguas
lolabielsa
 
ISO 10006
ISO 10006ISO 10006
OTRO CAPITULO DE EL MONTAÑES
OTRO CAPITULO DE EL MONTAÑESOTRO CAPITULO DE EL MONTAÑES
OTRO CAPITULO DE EL MONTAÑES
leetamargo
 
A Todos Y A Cada Uno
A Todos Y A Cada UnoA Todos Y A Cada Uno
A Todos Y A Cada Uno
Mireia Buchaca
 
Crees En Dios
Crees En  DiosCrees En  Dios
Alunos: João Pedro, Igor, Matheus e Stijn
Alunos: João Pedro, Igor, Matheus e StijnAlunos: João Pedro, Igor, Matheus e Stijn
Alunos: João Pedro, Igor, Matheus e Stijn
fabenhah
 
Habeaspinho
HabeaspinhoHabeaspinho
Habeaspinho
bluevelvet
 
Padreusera
PadreuseraPadreusera
Padreuseramontcubi
 
O Segredo Completo
O Segredo CompletoO Segredo Completo
O Segredo Completo
guest2e5528
 
O álbum de fotos no ambiente digital
O álbum de fotos no ambiente digitalO álbum de fotos no ambiente digital
O álbum de fotos no ambiente digital
bruno.alencastro
 
Presentación 2º ESO
Presentación  2º ESOPresentación  2º ESO
Presentación 2º ESO
atiega1
 
L E O N A R D O Fotos
L E O N A R D O FotosL E O N A R D O Fotos
L E O N A R D O FotosEscola
 
Perfeição
PerfeiçãoPerfeição
Perfeição
gui0363
 
Orientacao a Objetos
Orientacao a ObjetosOrientacao a Objetos
Orientacao a Objetos
Robson Silva Espig
 
Padreusera
PadreuseraPadreusera
Padreuseramontcubi
 
Desenvolvimento Iterativo e Incremental
Desenvolvimento Iterativo e IncrementalDesenvolvimento Iterativo e Incremental
Desenvolvimento Iterativo e Incremental
Robson Silva Espig
 

Destaque (20)

20071208
2007120820071208
20071208
 
Edmonton
EdmontonEdmonton
Edmonton
 
Leyenda de la Virgen de Dos Aguas
Leyenda de la Virgen de Dos AguasLeyenda de la Virgen de Dos Aguas
Leyenda de la Virgen de Dos Aguas
 
ISO 10006
ISO 10006ISO 10006
ISO 10006
 
About Sleeping
About SleepingAbout Sleeping
About Sleeping
 
Dscf1935
Dscf1935Dscf1935
Dscf1935
 
OTRO CAPITULO DE EL MONTAÑES
OTRO CAPITULO DE EL MONTAÑESOTRO CAPITULO DE EL MONTAÑES
OTRO CAPITULO DE EL MONTAÑES
 
A Todos Y A Cada Uno
A Todos Y A Cada UnoA Todos Y A Cada Uno
A Todos Y A Cada Uno
 
Crees En Dios
Crees En  DiosCrees En  Dios
Crees En Dios
 
Alunos: João Pedro, Igor, Matheus e Stijn
Alunos: João Pedro, Igor, Matheus e StijnAlunos: João Pedro, Igor, Matheus e Stijn
Alunos: João Pedro, Igor, Matheus e Stijn
 
Habeaspinho
HabeaspinhoHabeaspinho
Habeaspinho
 
Padreusera
PadreuseraPadreusera
Padreusera
 
O Segredo Completo
O Segredo CompletoO Segredo Completo
O Segredo Completo
 
O álbum de fotos no ambiente digital
O álbum de fotos no ambiente digitalO álbum de fotos no ambiente digital
O álbum de fotos no ambiente digital
 
Presentación 2º ESO
Presentación  2º ESOPresentación  2º ESO
Presentación 2º ESO
 
L E O N A R D O Fotos
L E O N A R D O FotosL E O N A R D O Fotos
L E O N A R D O Fotos
 
Perfeição
PerfeiçãoPerfeição
Perfeição
 
Orientacao a Objetos
Orientacao a ObjetosOrientacao a Objetos
Orientacao a Objetos
 
Padreusera
PadreuseraPadreusera
Padreusera
 
Desenvolvimento Iterativo e Incremental
Desenvolvimento Iterativo e IncrementalDesenvolvimento Iterativo e Incremental
Desenvolvimento Iterativo e Incremental
 

Semelhante a Programacao Extrema

Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
Rudson Kiyoshi Souza Carvalho
 
Desenvolvimento Ágil
Desenvolvimento ÁgilDesenvolvimento Ágil
Desenvolvimento Ágil
Gefferson Vivan
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Rebecca Betwel
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
Luciano Almeida
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
Emerson Henrique
 
O uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de softwareO uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de software
Everton vitor
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
André Dias
 
XP Programming
XP ProgrammingXP Programming
XP Programming
CJR, UnB
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
ceife
 
APS - RAD x Ágeis
APS - RAD x ÁgeisAPS - RAD x Ágeis
APS - RAD x Ágeis
Silvio Carréra
 
Artigo
ArtigoArtigo
Rejuvenescimento Software
Rejuvenescimento SoftwareRejuvenescimento Software
Rejuvenescimento Software
Marcus Oliveira
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
Rudson Kiyoshi Souza Carvalho
 
Artigo23
Artigo23Artigo23
Artigo23
mpaf00 mpaf00
 
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
Edgar Silva
 
Leds zeppellin infraestrutura de apoio ao desenvolvimento
Leds zeppellin   infraestrutura de apoio ao desenvolvimentoLeds zeppellin   infraestrutura de apoio ao desenvolvimento
Leds zeppellin infraestrutura de apoio ao desenvolvimento
ledsifes
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Adolfo Neto
 
Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2
GrupoAlves - professor
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
Adriano Bertucci
 
Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
mpaf00 mpaf00
 

Semelhante a Programacao Extrema (20)

Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Desenvolvimento Ágil
Desenvolvimento ÁgilDesenvolvimento Ágil
Desenvolvimento Ágil
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
O uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de softwareO uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de software
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
XP Programming
XP ProgrammingXP Programming
XP Programming
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
APS - RAD x Ágeis
APS - RAD x ÁgeisAPS - RAD x Ágeis
APS - RAD x Ágeis
 
Artigo
ArtigoArtigo
Artigo
 
Rejuvenescimento Software
Rejuvenescimento SoftwareRejuvenescimento Software
Rejuvenescimento Software
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Artigo23
Artigo23Artigo23
Artigo23
 
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
 
Leds zeppellin infraestrutura de apoio ao desenvolvimento
Leds zeppellin   infraestrutura de apoio ao desenvolvimentoLeds zeppellin   infraestrutura de apoio ao desenvolvimento
Leds zeppellin infraestrutura de apoio ao desenvolvimento
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
 
Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
 

Mais de Robson Silva Espig

Master Place - Convenção Bloco D
Master Place - Convenção Bloco DMaster Place - Convenção Bloco D
Master Place - Convenção Bloco D
Robson Silva Espig
 
Aquarelas Envelhecidas
Aquarelas EnvelhecidasAquarelas Envelhecidas
Aquarelas Envelhecidas
Robson Silva Espig
 
[ reference ] Processos - PMBOK
[ reference ] Processos - PMBOK[ reference ] Processos - PMBOK
[ reference ] Processos - PMBOK
Robson Silva Espig
 
[ ref ] Convergência - Mobilidade
[ ref ] Convergência - Mobilidade[ ref ] Convergência - Mobilidade
[ ref ] Convergência - Mobilidade
Robson Silva Espig
 
[ ref ] Normalizing a Data Model in SQL Server
[ ref ] Normalizing a Data Model in SQL Server[ ref ] Normalizing a Data Model in SQL Server
[ ref ] Normalizing a Data Model in SQL Server
Robson Silva Espig
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de Software
Robson Silva Espig
 
Como implementar uma plataforma de ILM com eficiência, reduzindo custos
Como implementar uma plataforma de ILM com eficiência, reduzindo custosComo implementar uma plataforma de ILM com eficiência, reduzindo custos
Como implementar uma plataforma de ILM com eficiência, reduzindo custos
Robson Silva Espig
 
Gestao Projetos - Aula 02
Gestao Projetos - Aula 02Gestao Projetos - Aula 02
Gestao Projetos - Aula 02
Robson Silva Espig
 
Gestao Projetos - Aula 01
Gestao Projetos - Aula 01Gestao Projetos - Aula 01
Gestao Projetos - Aula 01
Robson Silva Espig
 
Aula 01
Aula 01Aula 01
Aula 05
Aula 05Aula 05
Aula 04
Aula 04Aula 04
Aula 02
Aula 02Aula 02
Caso de Desenvolvimento
Caso de DesenvolvimentoCaso de Desenvolvimento
Caso de Desenvolvimento
Robson Silva Espig
 
SOA
SOASOA
Aula 03
Aula 03Aula 03
RAD
RADRAD
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de Software
Robson Silva Espig
 
Implantacao de Software
Implantacao de SoftwareImplantacao de Software
Implantacao de Software
Robson Silva Espig
 

Mais de Robson Silva Espig (20)

Master Place - Convenção Bloco D
Master Place - Convenção Bloco DMaster Place - Convenção Bloco D
Master Place - Convenção Bloco D
 
Aquarelas Envelhecidas
Aquarelas EnvelhecidasAquarelas Envelhecidas
Aquarelas Envelhecidas
 
[ reference ] Processos - PMBOK
[ reference ] Processos - PMBOK[ reference ] Processos - PMBOK
[ reference ] Processos - PMBOK
 
[ ref ] Convergência - Mobilidade
[ ref ] Convergência - Mobilidade[ ref ] Convergência - Mobilidade
[ ref ] Convergência - Mobilidade
 
[ ref ] Normalizing a Data Model in SQL Server
[ ref ] Normalizing a Data Model in SQL Server[ ref ] Normalizing a Data Model in SQL Server
[ ref ] Normalizing a Data Model in SQL Server
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de Software
 
Como implementar uma plataforma de ILM com eficiência, reduzindo custos
Como implementar uma plataforma de ILM com eficiência, reduzindo custosComo implementar uma plataforma de ILM com eficiência, reduzindo custos
Como implementar uma plataforma de ILM com eficiência, reduzindo custos
 
Gestao Projetos - Aula 02
Gestao Projetos - Aula 02Gestao Projetos - Aula 02
Gestao Projetos - Aula 02
 
Gestao Projetos - Aula 01
Gestao Projetos - Aula 01Gestao Projetos - Aula 01
Gestao Projetos - Aula 01
 
Aula 01
Aula 01Aula 01
Aula 01
 
Aula 05
Aula 05Aula 05
Aula 05
 
Aula 04
Aula 04Aula 04
Aula 04
 
Aula 02
Aula 02Aula 02
Aula 02
 
Caso de Desenvolvimento
Caso de DesenvolvimentoCaso de Desenvolvimento
Caso de Desenvolvimento
 
SOA
SOASOA
SOA
 
Aula 03
Aula 03Aula 03
Aula 03
 
Artigo Caso de Uso
Artigo Caso de UsoArtigo Caso de Uso
Artigo Caso de Uso
 
RAD
RADRAD
RAD
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de Software
 
Implantacao de Software
Implantacao de SoftwareImplantacao de Software
Implantacao de Software
 

Programacao Extrema

  • 1. Programação extrema - Wikipédia http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema Programação extrema · Programming Origem: Wikipédia, a enciclopédia livre. Programação Extrema (do inglês eXtreme Programming), ou simplesmente XP, é uma metodologia ágil para equipes pequenas e médias e que irão desenvolver software com requisitos vagos e em constante mudança. Para isso, adota a estratégia de constante acompanhamento e realização de vários pequenos ajustes durante o desenvolvimento de software. Os quatro valores fundamentais da metodologia XP são: comunicação, simplicidade, feedback e coragem. A partir desses valores, possui como princípios básicos: feedback rápido, presumir simplicidade, mudanças incrementais, abraçar mudanças e trabalho de qualidade. 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. A XP incentiva o controle da qualidade como variável do projeto, pois o pequeno ganho de curto prazo na produtividade, ao diminuir qualidade, não é compensado por perdas (ou até impedimentos) a médio e longo prazo. Índice Valores Comunicação Simplicidade Feedback Coragem Respeito Princípios Básicos Feedback rápido Presumir simplicidade Mudanças incrementais Abraçar mudanças Trabalho de qualidade. 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 sinergia entre elas, os pontos fracos de cada uma são superados pelos pontos fortes de outras. 1 of 3 8/3/2008 04:07
  • 2. Programação extrema - Wikipédia http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema Jogo de Planejamento (Planning 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 Planejamento. 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 projeto. 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. Pequenas Versões (Small Releases): 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. Metáfora (Metaphor): 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 projeto. Projeto Simples (Simple Design): Simplicidade é um princípio da XP. Projeto simples significa dizer que caso o cliente tenha pedido que na primeira versão apenas o usuário quot;testequot; possa entrar no sistema com a senha quot;123quot; 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. Um erro comum ao adotar 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 projeto. Esse entendimento é fundamental para o bom andamento do XP. Código fácil deve ser identificado e substituído por código simples. Time Coeso (Whole Team): A equipe de desenvolvimento é formada pelo cliente e pela equipe de desenvolvimento. Testes de Aceitação (Customer Tests): São testes construídos pelo cliente e conjunto de analistas e testadores, para aceitar um determinado requisito do sistema. Ritmo Sustentável (Sustainable 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 projecto. Outra prática que se verifica neste processo é a prática de trabalho energizado, onde se busca trabalho motivado sempre. Para isto o ambiente de trabalho e a motivação da equipe devem estar sempre em harmonia. Reuniões em pé (Stand-up Meeting): 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. Posse Coletiva (Collective Ownership): O código fonte não tem 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. Programação em Pares (Pair Programming): é a programação em par/dupla num único computador. Geralmente a dupla é formada por um iniciante na liguagem 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. 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 2 of 3 8/3/2008 04:07
  • 3. Programação extrema - Wikipédia http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema editado pela mesma pessoa, mesmo quando a equipa possui 10 ou 100 membros. Desenvolvimento Orientado a Testes (Test Driven Development): 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. Refatoração (Refactoring): É 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. Refabricar 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; Integração Contínua (Continuous 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. Livros Extreme Programming Explained : Embrace Change (2nd Edition) (ISBN 0321278658) Planning Extreme Programming (ISBN 0201710919) Extreme Programming Installed (ISBN 0201708426) Agile Software Development, Principles, Patterns, and Practices (ISBN 0135974445) Ligações externas Apresentando XP. Encante seus clientes com Extreme Programming (http://www.javafree.org/content/view.jf?idContent=5) Entregue seu código com confiança utilizando desenvolvimento dirigido a testes (http://www.javafree.org/content/view.jf?idContent=16) Extreme Programming: A gentle introduction (http://www.extremeprogramming.org) (em inglês) eXtreme Programming (http://www.xp-rs.org) (Rio Grande do Sul) Introdução ao Extreme Programming (http://www.improveit.com.br/xp) XPRio - eXtreme Programming (http://xprio.blogspot.com) (Rio de Janeiro) Curso de Programação eXtrema no IME/USP (http://www.ime.usp.br/~xp) Agilcast (http://agilcoop.incubadora.fapesp.br/portal/agilcast) - podcast Obtido em quot;http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extremaquot; Categoria: Desenvolvimento de software Esta página foi modificada pela última vez a 10h05min, 2 de Março de 2008. O texto desta página está sob a GNU Free Documentation License. Os direitos autorais de todas as contribuições para a Wikipédia pertencem aos seus respectivos autores (mais informações em direitos autorais). 3 of 3 8/3/2008 04:07