You are on page 1of 31

Pontifca Universidade Catlica de Gois Especializao em Qualidade e Gesto de Software

Extreme Programming
Ablio Gama Neto Flvio Daher Llian Maranha Lorena Umbelino Luzia Dourado Ronier Queiroz

03/09/11

O que eXtreme Programming?


Extreme Programming (XP) uma metodologia de software criada nos Estados Unidos por Kent Beck/1997. Manifesto gil: Assinado em fevereiro/2001 por 17 desenvolvedores em Utah. Trata-se de uma metodologia gil para equipes pequenas e mdias desenvolvendo software com requisitos vagos e em constante mudana [BECK] A XP ideal para ser usada em projetos em que os stakeholders no sabem exatamente o que desejam e podem mudar muito de opinio durante o desenvolvimento do projeto.[SOARES] XP proporciona: sistemas de melhor qualidade; produzidos em menos tempo; de forma mais econmica; pode ser aplicado a projeto de alto risco e com requisitos dinmicos.

Valores e Prticas

Valores
Comunicao
A finalidade do princpio de comunicao manter o melhor relacionamento possvel entre clientes e desenvolvedores

Simplicidade
A simplicidade visa permitir a criao de cdigo simples que no deve possuir funes desnecessrias

Feedback
o processo de troca de informaes que ocorre entre cliente e a equipe de desenvolvimento durante a produo de um software.

Coragem
Esse valor est intrinsecamente ligado aos 3 valores anteriores

Prticas
Planejamento Pequenas verses Metfora Projeto Simples Testes Refatorao Programao em pares Propriedade coletiva Integrao contnua Semana de 40 horas Cliente presente Padronizao de cdigo

Prticas
Planejamento
Consiste em decidir o que necessrio ser feito e o que pode ser adiado no projeto. Decises sobre escopo, a composio das verses e as datas de entrega estimativas de prazo, o processo de desenvolvimento e o cronograma detalhado

Pequenas verses
As verses do sistema so entregues ao final de cada iterao ou release.

Metfora
Uma metfora uma descrio simples de como o sistema funciona, sem a utilizao de termos tcnicos

Projeto Simples
Satisfazer os requisitos atuais, sem a preocupao de requisitos futuros

Prticas
Testes
Validaes das funcionalidades implementadas

Refatorao
Reorganizar o cdigo fonte de um software sem prejudicar o desempenho e alterar seu comportamento externo

Programao em pares
Deteco de erros e a disseminao do conhecimento entre os pares

Propriedade coletiva
Qualquer um pode alterar qualquer cdigo em qualquer momento, o cdigo de propriedade coletiva.

Prticas
Integrao contnua
Interagir e construir o sistema de software vrias vezes por dia

Semana de 40 horas
Esta prtica procura confirmar o foco nas pessoas e no em processos e planejamentos

Cliente presente
fundamental a participao do cliente durante todo o desenvolvimento do projeto

Padronizao de cdigo
necessrio que se estabelea um padro de codificao para manter o sistema homogneo.

Descrio do processo

Projeto

Iterao

Desenvolvimento

Codificao

XP e Qualidade de Software
O principal objetivo da XP entregar um produto de qualidade em tempo hbil que satisfaa as exigncias e expectativas tanto do cliente como da equipe de desenvolvimento. Para isso essa metodologia se baseia rigorosamente nos seguinte fundamentos: Comunicao Feedback Simplicidade Coragem

XP e Qualidade de Software
A integrao e o teste contnuos tambm possibilitam a melhora na qualidade do software. Fatores de qualidade de software presentes na metodologia XP: Eficincia Integridade Reutilizao Facilidade de uso Manutenibilidade Testabilidade Flexibilidade Oportunidade Custo-eficcia

Desvantagens
centrado no desenvolvimento cdigo em vez de centrado no

Falta de documentao do projeto: Limita XP para sistemas pequenos e torna difcil aproveitar as oportunidades de reutilizao. Dificuldade em obteno de apoio da gesto: A maior dificuldade de qualquer mtodo novo a obteno de apoio da gesto. Com Xp no diferente.

Quando no devemos utilizar XP


Na pratica alguns fatores so fortes indicadores para no se utilizar XP Cultura: A organizao est inserida em uma cultura tradicional. Tamanho da equipe: Um projeto XP deve possuir uma equipe pequena (at 12 programadores) Tecnologia: no se deve usar XP quando uma tecnologia complicada para prever casos de teste, quando retorna feedback em tempo longo ou no incorpora mudanas facilmente Espao fsico: A organizao do espao fsico deve facilitar a comunicao e deixar todos prximos uns dos outros Cliente: O cliente no tem disponibilidade

Estudo de caso
Projeto da centers) Ancar(software de adm de shopping

Em 2004 surgiu o interesse por Extreme Programming (XP)*, em funo da


participao de membros da equipe no Grupo XP Rio**, culminando na contratao dos servios de mentoring em XP da Improve It(2006, Estudo de Caso da Ancar).

Projeto Angar2Go: O projeto utiliza todas as prticas originais doExtreme Programming desde o incio(2005).
Stand up meeting: reviso do trabalho do dia anterior, priorizao das atividades do dia e atualizao das informaes do quadro de acompanhamento dirio..

Estudo de caso
Conciliao de dois projetos: dedicao a dois projetos, sendo um na parte da manh(Ancar2Go) e outro(SGSC) na parte da tarde

Estudo de caso
Ambientes informativos: na Ancar um grande quadro de vidro usado para modelagem e a coleta de mtricas dirias e semanais.

Estudo de caso
Modelagem em quadros: permite que diversas pessoas modelem o software em conjunto, de forma simples e rpida

Estudo de caso
Ambiente informativo: retrospectivas o quadro tambm permite

Estudo de caso
Retrospectiva: Aps a concluso de cada iterao, a equipe faz uma retrospectiva, avaliando o que funcionou durante a semana, o que precisa ser melhorado e quais aes devem ser tomadas para a iterao seguinte. A retrospectiva utiliza ferramentas simples, tais como quadro branco, canetas e post its.

Estudo de caso
Ferramental: IDEA IntelliJ, Ant, CVS, Junit, EasyMock, Emma,Prevayler, Hibernate, Java Web Start, Java2D. IDEA IntelliJ: a IDE de desenvolvimento. Ant: automao de inmeras tarefas.. CVS: repositrio escolhido pelo projeto. Junit e EasyMock: apoio a prtica de desenvolvimento orientado a testes. Emma: anlise de cobertura dos testes. Prevayler: o mecanismo de persistncia usado pelo Ancar2Go. Hibernate: extrai informaes do banco de dados legado, as quais so transformadas em objetos que, por sua vez, se mantm persistentes com o uso do Prevayler. Java Web Start: mecanismo de distribuio da aplicao. Java2D: desenha plantas de shopping centers.

Estudo de caso
Integrao Contnua: sinalizador Bob Esponja.Para que um par possa integrar seu trabalho, ele deve tomar posse do Bob Esponja e apert-lo duas vezes, o que produz um som pitoresco, avisando aos demais que uma integrao ser iniciada. Durante a integrao o Bob Esponja mantido sobre o monitor do par e, ao final, os desenvolvedores o apertam uma nica vez, sinalizando o trmino do procedimento(2006,Estudo de Caso da Ancar).

Estudo de caso
Test Drive Development: O uso do desenvolvimento orientado a testes permite reduzir o tempo de depurao e aumentar a sade do software. Programao em Par: Todo cdigo escrito em par;um digita, enquanto o outro revisa,corrige e sugere; reduo drstica de bugs; disseminao de conhecimento; presso do par; simplicidade; velocidade

Estudo de caso
Melhorias: cobertura de testes, prticas do XP no SGSC

Futuro do XP
Futuramente possvel que as vrias metodologias geis unam-se, principalmente em torno da XP, por ser a mais aceita. Existe, por exemplo, um movimento para o uso conjunto da XP com a Scrum. A XP seria usada para a fase de desenvolvimento e a Scrum para o planejamento e gerenciamento do projeto. A integrao das duas metodologias seria relativamente simples, uma vez que elas compartilham algumas caractersticas, como a necessidade da presena do cliente, pequenas liberaes e o encorajamento em fazer as mudanas necessrias para atender requisitos reais dos stakeholders. Existe inclusive a proposta da metodologia hbrida XP@Scrum . Apesar de no existirem estudos empricos suficientes, alguns autores recomendam o uso em conjunto da Scrum e da XP para grandes projetos .

Bibliografia
Beck, K., Programao Extrema Explicada, Bookman, (1999) Soares, Michel dos Santos, Metodologias geis Extreme Programming e Scrum para o Desenvolvimento de Software Fernandes, Matheus Ramos, SCRUM E XP: Um comparativo no processo de desenvolvimento de software Jnior, Jos Gonalves Pinto, O Uso da Metodologia XP no Desenvolvimento de Software e os Impactos na Gesto de Riscos Extreme Programming na Ancar. Disponvel http://www.improveit.com.br/caseAncar.jsp What is Extreme Programming?. http://www.xprogramming.com Disponivel em em

Dvidas?
OBRIGADO!

Apresentao realizada em 03/09/2011

You might also like