43
VELOZES E FURIOSOS COM EXTREME PROGRAMMING! Essa palestra é para empresas de pequeno e médio porte que querem aumentar a velocidade sem perder a qualidade! Entregando sempre o maior valor agregado ao seu clientes. Mobile & Cloud Systems

Velozes e furiosos com extreme programming

Embed Size (px)

DESCRIPTION

Essa palestra é para empresas de pequeno e médio porte que querem aumentar a velocidade sem perder a qualidade! Entregando sempre o maior valor agregado ao seu clientes. Serão apresentadas também ferramentas .NET para apoio as práticas de XP

Citation preview

Page 1: Velozes e furiosos com extreme programming

VELOZES E FURIOSOS

COM EXTREME

PROGRAMMING! Essa palestra é para empresas de pequeno e médio porte que querem aumentar a velocidade sem perder a qualidade! Entregando sempre o maior valor agregado ao seu clientes.

Mobile & Cloud Systems

Page 2: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Quem sou?

[email protected]

• Mestre em Tecnologia (UTFPR)

• Bacharel em Processamento de Dados

• Desenvolvedor a mais de 18 anos....

• Mono Hacker desde 2003

• Linguagens Fluente: C#, Java, PHP,

• Outras: C++, C , Pascal, Python, Ruby, Boo, etc..

• Mobile Xamarin Authorized Consulting Partner para o Brasil

• Atualmente atua como desenvolvedor/consultor/parceiro:

Page 3: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Foco da Palestra

• Como aumentar a velocidade com Qualidade ?

• Falar sobre alguns conceitos de XP

• Depoimentos sobre situações ocorridas na prática.

• O que se deve fazer .

• O que não devemos fazer.

• Falar de algumas Pérolas encontradas no caminho

Page 4: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Inicio do XP no Brasil

• Por volta de 2001 com o primeiro Evento XPBrasil

• Divisor de águas primeiro o Prevayler, XP, Sneer..

• O que vem depois???

• Criado pela A Lenda Brasileira:

• Klaus Wuestefeld

Page 5: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Como Você define XP ????

• Lançando a campanha !!!

• Pergunte ao Klaus!!!!

Page 6: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Como eu definiria XP hoje?

• Atitude

• Garra para vencer

• Disciplinado

• Organizado

• Interativo

• Comprometido

• Rotineiro

• Comportamental

Page 7: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Caso Vivenciado

• Decisões da empresa afetam direto o andamento do

projeto.

• Projeto novo:

• Duas equipes separadas em cidades diferentes

• Equipe técnica e cliente em uma cidade, equipe de

desenvolvimento em outra

• Equipe nova de 12 pessoas e crescendo

• Problemas de gestão

• Problemas de comunicação

• Problemas de especificação

Page 8: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Como aumentar a velocidade sem perder

qualidade

• Primeiros passos, escolha bem sua equipe:

• Cuidado com um time muito inexperiente.

• Cuidado com pessoas experientes e indisciplinadas.

• Cuidado com a formação de panelinhas.

• Não contrate grupos desertores.

• Polarização da equipe pode levar a Motim.

• Cuidado com as distorções das práticas e conceitos

• Cuidado com pessoas experientes mas com vícios

• Pessoas Resistencia a tecnologias

Page 9: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Como começar com XP ???

• XP é comportamental, é preciso começar a praticar .

• Iniciar com algumas práticas e manter a atitude no uso

das práticas.

• Evitar a estrutura comando e controle, buscar o

desenvolvimento de liderança.

• Parta do principio que ninguém conhece as práticas

• Valorize os rituais!!!

• Se não sabe por onde começar, comece pelo testes

automatizados.

• Vá agregando as práticas e medido os resultados.

Page 10: Velozes e furiosos com extreme programming

VALORES DE XP

Page 11: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Velozes e Furiosos com XP

• Como aumentar a velocidade sem perder qualidade?

• Reforçar diariamente os valores de XP

• Simplicidade

• Comunicação

• FeedBack

• Coragem

• Usando mais práticas de XP em conjunto fazendo com que uma

reforce a outra.

• Automatize tudo que você puder. E o que vocês não puder,

descubra como automatizar.

Page 12: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Simplicidade

• Não confunda simplicidade com “simplismos”, não

confunda liberdade com libertinagem.

• Pérola: “Não vamos usar interface por que XP diz que deve se

fazer simples!”

• Ser simples não quer dizer que será fácil ou que será

rápido.

• Pérola: “Não usar fabricas porque XP tem que ter o código

Simples!

• As tarefas simples irão naturalmente geral um sistema

complexo. Mas que no fundo é simples.

• Perola: “Para um problema complexo, temos que ter uma solução

complexa!!!”

Page 13: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Comunicação

• Comunicação do cliente com a equipe

• Descrição das histórias

• Testes de aceitação

• Integração as equipes remotas

• TV com Web Conferencia – Janela do Além

• Board de atividades eletrônico

• Falta de comunição e interação é um grande vilão na

geração dos problemas da equipe.

Page 14: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Coragem

• Para aceitar a orientação dos mais experientes

• Para assumir que os problemas existem

• Para continuar a escrever teste

• Pérola: “Não vai dar tempo de escrever o mocks, tira os mocks”

• Para trabalhar em parecer

• Para manter a rotina diária

Page 15: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

FeedBack

• O retorno do cliente é chave para aumentar o ânimo da

equipe e fazer o projeto avançar.

• Falta de tempo por parte do cliente em dar feedback

atrapalha e muito o andamento correto do projeto.

• Quando mais rápido o feedback é melhor.

• Quando mais próximo cliente melhor

• Feedback rapido com o clientes

Page 16: Velozes e furiosos com extreme programming

PRÁTICAS DE XP

Page 17: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Planning Game

• É o planejamento do jogo

• Planejamento das Interações

• Planejamento das StartUP Meeting

• Medição da velocidade da equipe

• Formação dos pares

• Distribuição das Tarefas

• Cuidado com as abordagens do passado

• Modelo de Dados, Documentação hostensiva

Page 18: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Testes Automatizados

• Teste tudo que for possível.

• TDD, Teste de unidade,

• Realizar testes em camadas

• Testar Rotas das aplicações web

• Testar chamadas dos controles ao Model

• Testar o Model e regras de negócio

• Fazer teste de Integração

• Fazer testes unitários

• Teste de Interface (Ex: Selenium)

• Meta para cobertura de testes

Page 19: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Pair Programing

• Difícil de implementar

• Puxa outras práticas

• Propriedade coletiva de código

• Aumenta foco e concentração

• Menos bugs

• Cuidado com PairSleep!!!

Page 20: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Move People Around

• Mover as pessoas nas equipes

• Torne o ambiente divertido

• Ajudas as pessoa a manter o foco

• Socializar o conhecimento da equipe

• Cuidado com a disposição do ambiente

• Não perde tempo ao trocar as pessoas

• A propriedade coletiva também se aplica as cadeiras

Page 21: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Small Release

• São planejado pequenos releases.

• Este são disponibilizados ao clientes

• Recolhido um FeedBack Rápido

• O cliente tem a opção de priorizar, remover ou adicionar

funcionalidades

• O cliente pode a mudar de idéia.

Page 22: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Cliente mais perto possível

• Se possível sendo um membro da equipe.

• Busque feed back o mais breve possível.

• E quando o cliente é o dono da empresa que desenvolve

o software?

• Ter cliente próximo significa que ele também tem que

trabalhar!!!!

• Dono da empresa de software quer os resultados mas

nem sempre está interessado em seguir as práticas de

XP.

Page 23: Velozes e furiosos com extreme programming

PADRÕES DE PROJETO

E FERRAMENTAS

Page 24: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Padrões de Projetos

• Boas praticas podem facilitar deixar a aplicação mais

flexível e aumentar a produtividade e aumetar a

qualidade do código.

• IoC – Inversão de Controle

• DI - Injeção de Dependências

• Factory

• Mocks

Page 25: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Padrão IoC

• "Devemos delegar a tarefa de criação de um objeto (classe Pedido) a uma outra entidade como uma outra classe, interface, componente, etc. de forma a termos um baixo acoplamento e minimizar a dependências entre os objetos.“

• SRP - Single Responsability Principle que diz o seguinte:

• "Deve existir um e somente UM MOTIVO para que uma classe mude"

Page 26: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Padrão IoC

• Uma classe deve ser implementada tendo apenas um

único objetivo.(uma única responsabilidade)

• Quando uma classe possui mais que um motivo para ser alterada

é por que provavelmente ela esta fazendo mais coisas do que

devia, ou seja, ela esta tendo mais de um objetivo.

• inverter o controle na classe Cliente e em vez de deixar a

responsabilidade da criação da classe Pedido para a

classe Cliente vamos dar a ela esta dependência.

• Inverter o controle utilizando a injeção de

dependência.

Page 27: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Mocks

• São objetos que simulam o comportamento de objetos

reais de forma controlada.

• São Objetos Fake, criados para testar um pedaço de

código. Objeto

Real

MOCK

Page 28: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Numa equipe XP

• 2 duplas estão iniciando 2 novas atividades.

• Mas a atividade 2, depende da atividade 1.

• O que fazer nesse caso?

• 1) A equipe A trabalha e equipe B sai de folga .

• 2) A equipe A trabalha e equipe B documenta a atividade 2

• 3) Equipe B pega uma outra atividade que não dependa da

atividade 1

• 4) Chama o gerente por que ele priorizou errado as tarefas

• 5) Não sei. Pergunta pro Klaus.

Page 29: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Cobertura de Testes

Page 30: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Git + GitHub

• Versionamento distribuído

• Trabalho com múltiplos branches.

• Grande aumento de produtividade.

Page 31: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Redmine

• Plug-in para scrunm

Page 32: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

TeamCity

• Suporte Java, C#, Ruby

• Notificações por : Email, jaber, Windows Tray

Page 33: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Build Server...

Page 34: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Build Server...

Page 35: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Commit , após teste!

Page 36: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

TeamCity

• Configuração do build

Page 37: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Código duplicado

Page 38: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Cobertura de Testes

Page 39: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Histórico de Builds

Page 40: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Integração com GIT

Page 41: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Page 42: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Duvidas???? Pergunte pro Klaus...

• Obrigado!!!

Page 43: Velozes e furiosos com extreme programming

Mobile & Cloud Systems

Sorteio....