Aplicando eXtreming Programing
ao cenário do Borland ALM
Edgar SilvaArgos Tecnologia
AgendaAgenda• Extreming Programing
• Entendendo Extreming Programing
• Observando seus papéis
• Relação entre XP e o Borland ALM
Kent Beck, criador da XP
Extreme Programming é uma Metodologia Ágil para
equipes pequenas e médias desenvolvendo software
com requisitos vagos e em constante mudança.
O que é XP ?O que é XP ?
eXtreming Programing
•Baseada em 4 princípios:• Simplicidade
• Comunicação
• Feedback
• Coragem
SimplicidadeSimplicidade
O coração de XP
SimplicidadeSimplicidade• Simplicidade do Início ao Fim do
Projeto
• Modelos Simples
• Codificação Simples
• Testes simplificados
Não tendo simplicidade ...Não tendo simplicidade ...
XP
SimplicidadeSimplicidade
Como garantir que as alterações não causem impacto em outras áreas?
Como não alterar códigos com bases nos requisitos alterados sem alterar custos?
Modelo e Códigos Simples
Códigos Simples == Refactoring Simples
ComunicaçãoComunicação
Item Imprescindível para o funcionamento de eXtreming Programing.
ComunicaçãoComunicação• Testes Unitários
• Código X Programador
• Pair Programing (Programação em Par) • Programador X Programador
• Cliente
Testes UnitáriosTestes Unitários• Com bases em códigos simples, os
testes serão simplificados e precisos.
• Oferecem o estado e comportamento da aplicação.
Pair ProgramingPair Programing
Um das maiores Preocupações
Das empresas antes de Adotarem
XP
Pair Programing Programação em ParesPair Programing Programação em Pares• Programadores trabalhando lado-a-lado,
colaborando o mesmo design, algoritimo, código ou teste. Um programador, o “piloto”, tem o controle do teclado e mouse , ativamente implementa o programa. O outro, o “observador” ou co-piloto, continuamente observa o trabalho do “piloto” para identificar defeitos táticos e também pensa na direção do trabalho. Periodicamente, o par é trocado, para promover maiores vantagens. -- Laurie Williams North Carolina State University Computer Science
Pair Programing Maiores Indagações GerenciaisPair Programing Maiores Indagações Gerenciais
• Por que pagar 2 para fazer o trabalho de 1 ?
• Como? Vou ter que contar com dois programadores? Assim o prazo será o dobro?
• Não tenho mesas suficientes...
Dados relevantes ao Pair ProgramingDados relevantes ao Pair Programing
Programador Solo
Programadores (Par)
Tarefa 1 – Estimativa de Tempo
57% - Mais velocidade com PP
Programador Solo
Programadores (Par)
Tarefa 1 – Erros encontrados
2 Vezes menos erros com PP
Dados relevantes ao Pair ProgramingDados relevantes ao Pair Programing
ComplexidadeDe
Códigos
Velocidade no Término da Solução
ProgramadorSolo
ProgramadoresEm Par
Término
E quando falamos de CustosE quando falamos de Custos
Desenvolver
Tarefa N - Programador Solo
Teste Ok
Foi o que sua empresa orçou e cobrou. Quem paga isso?
Início Entrega
Desenvolver
Tarefa N - Programadores em Par
TesteOk
Foi o que sua empresa orçou e cobrou.
Início Entrega
Desenvolvimento Testes Entrega
O que Pair Programing trás de benefíciosO que Pair Programing trás de benefícios• Menos Erros
• Velocidade em codificação
• Transferência de Conhecimento
• Conhecimento Global do Sistema
• Mais produtividade (Sem ICQ, Email, ou Bloqueamento do Proxy ;) )
• Integração global da Equipe
Pair ProgramingMoving People AroundPair ProgramingMoving People Around• Significa não deixar os
desenvolvedores em pares fixos ou em partes fixas do código.
• Código não fica dependente de um só programador.
• Todos os desenvolvedores tem noção de todo o código e de todas as funcionalidades do projeto.
• Treina desenvolvedores com menor skill em determinadas áreas.
Troca de DuplasTroca de Duplas
A B
08:00 – 10:00
A DA
EA
A P
10:00 – 12:00
13:00 – 15:00
15:00 – 17:00
Seu Pensamento deve ser:Seu Pensamento deve ser:
•Qualitativo
•Quantitativo
FeedbackFeedback
AprovarSeus
Passos,Para chegar
NoCaminho certo
É preciso!
FeedbackFeedback• Releases num espaço de tempo curto.
• Cliente aprova ou não estes releases.
• Com a aprovação ou não, você sempre sabe se seu projeto está caminhando pro sucesso ou falha
• Os Feedbacks pro programador são seus testes unitários.
CoragemCoragem
Em todas as áreas da vida...
Você precisa de coragem !
CoragemCoragem• Tomar decisões acertadas.
• Saber o que e como resolver os problemas do cliente.
• Saber pedir ajuda.
• Saber procurar auxílio.
• Assumir um erro e aprender com o mesmo.
Quando usar XP?Quando usar XP?• Grupos de 2 a 10 programadores
• Projetos de 1 a 36 meses (calendário)
• De 1000 a 250 000 linhas de código
• Requisitos são alterados em grande escala.
Práticas do XPPráticas do XPThe Customer is Always Available
O Cliente está sempre disponível.
Práticas do XPPráticas do XPSystem Metaphor
Metáfora de Sistema
Práticas do XPPráticas do XPPlanning Game
Jogo de Planejamento
Jogo de PlanejamentoJogo de Planejamento• Por que ter aquelas reuniões
maçantes para coletar 581717171 requisitos, se você pode fazer isto de forma divertida e funcional.
Objetivos do Jogo de PlanejamentoObjetivos do Jogo de Planejamento• Definir uma visão inicial do sistema.
Estimar o tempo de desenvolvimento do sistema .
• O que sai disso: Um conjunto de User Stories para usar no Release Planning.
• Cliente: Escreve User Stories definindo as funcionalidades do sistema.
• Programadores: Avaliam as User Stories em 1, 2 ou 3 semanas ideais
• Se a User Story é maior que 3 semanas, divida; se menor que 1 semana, junte com outras.
User StoriesUser Stories• Lembra UseCases
• Usadas para medir tempo no Planning Game.
• Pode substituir aqueles documentos gigantescos de requisitos.
• O Cliente escreve na forma como ele preferir.
• Os programadores definem junto com o cliente a prioridade.
Práticas do XPPráticas do XPSmall Releases
Pequenos Releases
Práticas do XPPráticas do XPSmall Releases
Pequenos Releases
Práticas do XPPráticas do XPContinuous Integration
Integração Contínua
Práticas do XPPráticas do XPForty Hour Week
Semana de 40 Horas
Práticas do XPPráticas do XPForty Hour Week
Semana de 40 Horas
Práticas do XPPráticas do XPCoding Standards
Padrão de Codificação
Testes UnitáriosTestes Unitários• Os testes unitários garantem
qualidade.
• E cumprimento de prazos.
• Crie os testes e depois o design
• AcceptanceTest
RefactoringRefactoring• Alterar e propagar as alterações de
forma contínua prevenindo erros.
Código
Código com Alterações
O mesmo funcionamento
Garantido
Papéis no XPPapéis no XP• GoldOwner (Cliente)
• GoalDonor (Cliente)
• Manager (Técnico)
• Acceptance Tester (Técnico)
• Programmer (Técnico)
• Tracker (Técnico)
• Coach (Técnico)
GoldOwner – Dono do OuroGoldOwner – Dono do Ouro
• Quem paga pelo projeto.
GoalDonor GoalDonor • Define os requisitos do software.
• É geralmente um usuário.
ManagerManager• É o escudo da equipe em relação ao
problemas externos ao projeto.
Acceptance TesterAcceptance Tester• Definir com o Xp Goal Donor os critérios
de aceitação do projeto.
• Escrever os Acceptance Tests.
• Executar os testes pelo menos uma vez por dia e publicar os resultados para a equipe.
ProgrammerProgrammer
•Responsável pela produção do projeto.
• Implementação
•Testes Contínuos
TrackerTracker• Coleta possíveis problemas no projeto.
• Responsável em executar métricas e repassar para a equipe.
• Ter coragem de tomar decisões e informar que algo possa não estar sendo executado corretamente.
CoachCoach
•Garantir que o Projeto seja XP sempre.
Algumas empresas do BrasilAlgumas empresas do BrasilSEFA-SP - (São Paulo)
Brasil Telecom - (Brasília)
Qualiti – Recife
Objective Solutions – (SP e Curitiba)
Argos Tecnologia – (Belém)
Embrapa Informática Agropecuária –(Campinas)
Fonte: Vinicius Magalhães Teles (site XisPe)
Algumas empresa nos EUAAlgumas empresa nos EUA• Symantec, Inc. Beaverton, OR
• Motorola, Inc. Arling. Heights, IL
• IONA Technologies Waltham, MA
• BoldTech Systems Denver, CO
Fonte: Vinicius Magalhães Teles (site XisPe)
Usando o Borland ALM em conjunto de XPUsando o Borland ALM em conjunto de XP• A Borland está presente em todas as
plataformas:• Java
• Linux
• .net
• Você pode usar XP mais claramente em Java e .net
Borland ALM no XPBorland ALM no XP• Ajuda Definição de UserStories
• Definição de Comunicação
• FeedBack
• Acompanhamento e Gerenciamento
Borland ALM no XPBorland ALM no XP• Seu Código é Seu Modelo
• Seu Modelo é Sua Documentação
• Auditorias e Métricas de Código
• Refactoring
Borland ALM no XPBorland ALM no XP• Integração Contínua
• Java• Ant
• http://ant.apache.org/
• .net• nAnt
• http://nant.sourceforge.net/
Teste UnitárioTeste Unitário• JUnit (http://www.junit.org/)
• Cactus (http://jakarta.apache.org/cactus/)
• Nunit (http://www.nunit.org/)
• NUnitAsp (http://nunitasp.sourceforge.net/)
Borland ALM no XPBorland ALM no XP• JBuilder conta com:
• ANT
• JUnit
• Cactus
• Operações de Refactoring
• Além de toda a integração do ALM
Borland ALM no XPBorland ALM no XP• Testes de Aceitação
• Qualidade
Borland ALM + XP == SucessoBorland ALM + XP == Sucesso
Borland ALMEscolha Ideal seja onde for!
ReferênciasReferênciasInternet
• http://www.xispe.com.br• http://www.extremingprograming.org
• http://www.xprograming.com
• http://www.pairprograming.com
• http://www.c2.org
• http://www.agilemanifesto.org/
ReferênciasReferênciasLivros
Somente eXtreming Programing•Planning Extreme Programmingby Kent Beck, Martin Fowler
•Extreme Programming Explained: Embrace Changeby Kent Beck
Voltados a Java
• Java Extreming Programing CookbookErik Burke e Brian Coyner
Livros Imagens de ReferênciaLivros Imagens de Referência
ConclusõesConclusões• “Supere o medo”
• por (Klaus Wustefeld)
• O XP como a Era Punk da década de 80. =)
• Hoje em dia mais flexível.
• Aceite as mudanças.