Professional Documents
Culture Documents
Extreme Programming
Ablio Gama Neto Flvio Daher Llian Maranha Lorena Umbelino Luzia Dourado Ronier Queiroz
03/09/11
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.
Estudo de caso
Projeto da centers) Ancar(software de adm de shopping
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!