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

Post on 18-Dec-2014

522 views 2 download

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

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 XPSystem Metaphor

Metáfora de Sistema

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

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.

Muito obrigado pela presença !

Perguntas?Edgar Silva

esilva@argostecnologia.comhttp://www.argostecnologia.com