Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003

63
Aplicando eXtreming Programing ao cenário do Borland ALM Edgar Silva Argos Tecnologia

description

Esta é uma apresentação que resgatei do BorCon(Borland Conference) em 2003, nesta época XP, Métodos Ágeis estavam começando a ganhar notoriedade ainda no Brasil. Neste evento, lembro que pude mostrar e quebrar alguns paradigmas de uma platéia cética a respeito do assunto, mas que no final, depois de várias perguntas e dúvidas, acredito ter conseguido fazer com que algumas pessoas desde essa época começarem a olhar para Práticas Ágeis de forma melhor. Não! Eu não quero voltar a ser um "Profanador" em prol de métodos Ágeis, hoje em dia já existem pessoas, muito mais capacitadas, atualizadas e engajadas do que eu. Uma apresentação do tunel do tempo, de uma época muito feliz na minha vida, quando pude passar algum tempo com minha família e amigos, além de ter sido sócio de uma empresa que também quebrou padrões em Belém: Argos Tecnologia, que teve também como sócio Alexandre Magno (hoje Diretor da Adaptworks). Se estes slides ainda forem atuais, por favor, comentem, critiquem, fiquem a vontade :)

Transcript of Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003

Page 1: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Aplicando eXtreming Programing

ao cenário do Borland ALM

Edgar SilvaArgos Tecnologia

Page 2: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

AgendaAgenda• Extreming Programing

• Entendendo Extreming Programing

• Observando seus papéis

• Relação entre XP e o Borland ALM

Page 3: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 4: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

O que é XP ?O que é XP ?

eXtreming Programing

•Baseada em 4 princípios:• Simplicidade

• Comunicação

• Feedback

• Coragem

Page 5: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

SimplicidadeSimplicidade

O coração de XP

Page 6: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

SimplicidadeSimplicidade• Simplicidade do Início ao Fim do

Projeto

• Modelos Simples

• Codificação Simples

• Testes simplificados

Page 7: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Não tendo simplicidade ...Não tendo simplicidade ...

XP

Page 8: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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

Page 9: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

ComunicaçãoComunicação

Item Imprescindível para o funcionamento de eXtreming Programing.

Page 10: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

ComunicaçãoComunicação• Testes Unitários

• Código X Programador

• Pair Programing (Programação em Par) • Programador X Programador

• Cliente

Page 11: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 12: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Pair ProgramingPair Programing

Um das maiores Preocupações

Das empresas antes de Adotarem

XP

Page 13: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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

Page 14: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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...

Page 15: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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

Page 16: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Dados relevantes ao Pair ProgramingDados relevantes ao Pair Programing

ComplexidadeDe

Códigos

Velocidade no Término da Solução

ProgramadorSolo

ProgramadoresEm Par

Término

Page 17: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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

Page 18: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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

Page 19: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 20: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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

Page 21: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Seu Pensamento deve ser:Seu Pensamento deve ser:

•Qualitativo

•Quantitativo

Page 22: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

FeedbackFeedback

AprovarSeus

Passos,Para chegar

NoCaminho certo

É preciso!

Page 23: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 24: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

CoragemCoragem

Em todas as áreas da vida...

Você precisa de coragem !

Page 25: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 26: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 28: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Práticas do XPPráticas do XPSystem Metaphor

Metáfora de Sistema

Page 30: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 31: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 32: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 33: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Práticas do XPPráticas do XPSmall Releases

Pequenos Releases

Page 34: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Práticas do XPPráticas do XPSmall Releases

Pequenos Releases

Page 35: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Práticas do XPPráticas do XPContinuous Integration

Integração Contínua

Page 36: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Práticas do XPPráticas do XPForty Hour Week

Semana de 40 Horas

Page 37: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Práticas do XPPráticas do XPForty Hour Week

Semana de 40 Horas

Page 38: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Práticas do XPPráticas do XPCoding Standards

Padrão de Codificação

Page 39: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Testes UnitáriosTestes Unitários• Os testes unitários garantem

qualidade.

• E cumprimento de prazos.

• Crie os testes e depois o design

• AcceptanceTest

Page 40: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

RefactoringRefactoring• Alterar e propagar as alterações de

forma contínua prevenindo erros.

Código

Código com Alterações

O mesmo funcionamento

Garantido

Page 42: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

GoldOwner – Dono do OuroGoldOwner – Dono do Ouro

• Quem paga pelo projeto.

Page 43: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

GoalDonor GoalDonor • Define os requisitos do software.

• É geralmente um usuário.

Page 44: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

ManagerManager• É o escudo da equipe em relação ao

problemas externos ao projeto.

Page 45: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 46: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

ProgrammerProgrammer

•Responsável pela produção do projeto.

• Implementação

•Testes Contínuos

Page 47: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 48: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

CoachCoach

•Garantir que o Projeto seja XP sempre.

Page 49: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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)    

Page 50: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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)    

Page 51: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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

Page 52: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Borland ALM no XPBorland ALM no XP• Ajuda Definição de UserStories

• Definição de Comunicação

• FeedBack

• Acompanhamento e Gerenciamento

Page 53: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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

Page 54: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Borland ALM no XPBorland ALM no XP• Integração Contínua

• Java• Ant

• http://ant.apache.org/

• .net• nAnt

• http://nant.sourceforge.net/

Page 55: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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/)

Page 56: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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

Page 57: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Borland ALM no XPBorland ALM no XP• Testes de Aceitação

• Qualidade

Page 58: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Borland ALM + XP == SucessoBorland ALM + XP == Sucesso

Borland ALMEscolha Ideal seja onde for!

Page 59: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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/

Page 60: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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

Page 61: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Livros Imagens de ReferênciaLivros Imagens de Referência

Page 62: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

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.

Page 63: Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003

Muito obrigado pela presença !

Perguntas?Edgar Silva

[email protected]://www.argostecnologia.com