SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
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
Mobile & Cloud Systems
Quem sou?
• Binhara@gmail.com
• 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:
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
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
Mobile & Cloud Systems
Como Você define XP ????
• Lançando a campanha !!!
• Pergunte ao Klaus!!!!
Mobile & Cloud Systems
Como eu definiria XP hoje?
• Atitude
• Garra para vencer
• Disciplinado
• Organizado
• Interativo
• Comprometido
• Rotineiro
• Comportamental
•
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
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
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.
VALORES DE XP
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.
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!!!”
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.
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
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
PRÁTICAS DE XP
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
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
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!!!
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
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.
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.
PADRÕES DE PROJETO
E FERRAMENTAS
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
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"
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.
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
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.
Mobile & Cloud Systems
Cobertura de Testes
Mobile & Cloud Systems
Git + GitHub
• Versionamento distribuído
• Trabalho com múltiplos branches.
• Grande aumento de produtividade.
Mobile & Cloud Systems
Redmine
• Plug-in para scrunm
Mobile & Cloud Systems
TeamCity
• Suporte Java, C#, Ruby
• Notificações por : Email, jaber, Windows Tray
Mobile & Cloud Systems
Build Server...
Mobile & Cloud Systems
Build Server...
Mobile & Cloud Systems
Commit , após teste!
Mobile & Cloud Systems
TeamCity
• Configuração do build
Mobile & Cloud Systems
Código duplicado
Mobile & Cloud Systems
Cobertura de Testes
Mobile & Cloud Systems
Histórico de Builds
Mobile & Cloud Systems
Integração com GIT
Mobile & Cloud Systems
Mobile & Cloud Systems
Duvidas???? Pergunte pro Klaus...
• Obrigado!!!
Mobile & Cloud Systems
Sorteio....

Más contenido relacionado

La actualidad más candente

XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
Rodrigo Branas
 
Scrum in a nutshell - business perspective
Scrum in a nutshell - business perspectiveScrum in a nutshell - business perspective
Scrum in a nutshell - business perspective
Marcos Alves
 

La actualidad más candente (20)

Palestra scrum
Palestra scrumPalestra scrum
Palestra scrum
 
[Webinar] Scrum - Você está fazendo do jeito certo?
[Webinar] Scrum - Você está fazendo do jeito certo?[Webinar] Scrum - Você está fazendo do jeito certo?
[Webinar] Scrum - Você está fazendo do jeito certo?
 
Gestão Ágil e Lean - Circuito de treinamentos AddTech
Gestão Ágil e Lean - Circuito de treinamentos AddTechGestão Ágil e Lean - Circuito de treinamentos AddTech
Gestão Ágil e Lean - Circuito de treinamentos AddTech
 
Kanban: Aplicando TDD à melhoria contínua do seu processo
Kanban: Aplicando TDD à melhoria contínua do seu processoKanban: Aplicando TDD à melhoria contínua do seu processo
Kanban: Aplicando TDD à melhoria contínua do seu processo
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Scrum na Prática
Scrum na PráticaScrum na Prática
Scrum na Prática
 
Quando os rótulos não atendem as suas necessidades
Quando os rótulos não atendem as suas necessidadesQuando os rótulos não atendem as suas necessidades
Quando os rótulos não atendem as suas necessidades
 
Tdc kanban em escala
Tdc kanban em escalaTdc kanban em escala
Tdc kanban em escala
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 
Gestao agil de projetos com Scrum
Gestao agil de projetos com ScrumGestao agil de projetos com Scrum
Gestao agil de projetos com Scrum
 
Metodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs AgileMetodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs Agile
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Scrum in a nutshell - business perspective
Scrum in a nutshell - business perspectiveScrum in a nutshell - business perspective
Scrum in a nutshell - business perspective
 
Lean, Kanban e Kaizen para sua área de Tecnologia
Lean, Kanban e Kaizen para sua área de TecnologiaLean, Kanban e Kaizen para sua área de Tecnologia
Lean, Kanban e Kaizen para sua área de Tecnologia
 
Desenvolvimento Ágil com Scrum e XP
Desenvolvimento Ágil com Scrum e XPDesenvolvimento Ágil com Scrum e XP
Desenvolvimento Ágil com Scrum e XP
 
Lean - Gestão e Princípios
Lean - Gestão e PrincípiosLean - Gestão e Princípios
Lean - Gestão e Princípios
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de Software
 
Lean TI - Especificação Funcional de Requisitos
Lean TI -  Especificação Funcional  de RequisitosLean TI -  Especificação Funcional  de Requisitos
Lean TI - Especificação Funcional de Requisitos
 
Não São Apenas Sapatos
Não São Apenas SapatosNão São Apenas Sapatos
Não São Apenas Sapatos
 
Metricas (e previsões) acionáveis de projeto
Metricas (e previsões) acionáveis de projetoMetricas (e previsões) acionáveis de projeto
Metricas (e previsões) acionáveis de projeto
 

Similar a Velozes e furiosos com extreme programming.

Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGModelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Neubio Ferreira
 
Como funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareComo funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de software
Elvis Lima
 
Gestão da Qualidade - Metodologia ágil
Gestão da Qualidade - Metodologia ágilGestão da Qualidade - Metodologia ágil
Gestão da Qualidade - Metodologia ágil
Sabrina Mariana
 
Gestão da qualidade metodologia ágil v01 (2)
Gestão da qualidade   metodologia ágil v01 (2)Gestão da qualidade   metodologia ágil v01 (2)
Gestão da qualidade metodologia ágil v01 (2)
Sabrina Mariana
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introdução
Achiles Camilo
 

Similar a Velozes e furiosos com extreme programming. (20)

Scrum em 1h.
Scrum em 1h.Scrum em 1h.
Scrum em 1h.
 
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGModelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
 
O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBM
 
Muita gestão e pouca engenharia, por onde anda o XP?
Muita gestão e pouca engenharia, por onde anda o XP?Muita gestão e pouca engenharia, por onde anda o XP?
Muita gestão e pouca engenharia, por onde anda o XP?
 
Minicurso: Uma Introdução ao Desenvolvimento de Software Lean
Minicurso: Uma Introdução ao Desenvolvimento de Software LeanMinicurso: Uma Introdução ao Desenvolvimento de Software Lean
Minicurso: Uma Introdução ao Desenvolvimento de Software Lean
 
Palestra sobre Fundamentos do Scrum e Kanban.
Palestra sobre Fundamentos do Scrum e Kanban.Palestra sobre Fundamentos do Scrum e Kanban.
Palestra sobre Fundamentos do Scrum e Kanban.
 
Desenvolvimento ágil com Scrum e TFS 11 - Microsoft TechDay Sorocaba 2012
Desenvolvimento ágil com Scrum e TFS 11 - Microsoft TechDay Sorocaba 2012Desenvolvimento ágil com Scrum e TFS 11 - Microsoft TechDay Sorocaba 2012
Desenvolvimento ágil com Scrum e TFS 11 - Microsoft TechDay Sorocaba 2012
 
Como funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareComo funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de software
 
Agile
AgileAgile
Agile
 
Gestão da Qualidade - Metodologia ágil
Gestão da Qualidade - Metodologia ágilGestão da Qualidade - Metodologia ágil
Gestão da Qualidade - Metodologia ágil
 
Gestão da qualidade metodologia ágil v01 (2)
Gestão da qualidade   metodologia ágil v01 (2)Gestão da qualidade   metodologia ágil v01 (2)
Gestão da qualidade metodologia ágil v01 (2)
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
Apresentação Executiva
Apresentação ExecutivaApresentação Executiva
Apresentação Executiva
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introdução
 
Treinamento Ágil / Scrum
Treinamento Ágil / ScrumTreinamento Ágil / Scrum
Treinamento Ágil / Scrum
 
Scrum
ScrumScrum
Scrum
 
Scrum
ScrumScrum
Scrum
 
Introdução ao desenvolvimento ágil com Scrum
Introdução ao desenvolvimento ágil com ScrumIntrodução ao desenvolvimento ágil com Scrum
Introdução ao desenvolvimento ágil com Scrum
 
Scrum
ScrumScrum
Scrum
 

Más de Alessandro Binhara

Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Alessandro Binhara
 
BigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenhariaBigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenharia
Alessandro Binhara
 
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
Alessandro Binhara
 

Más de Alessandro Binhara (20)

Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
 
BigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenhariaBigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenharia
 
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnósticaCase RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
 
2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtual2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtual
 
Realidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinowareRealidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinoware
 
Realidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de DadosRealidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de Dados
 
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
 
Curso de Férias - Robótica
Curso de Férias -  Robótica Curso de Férias -  Robótica
Curso de Férias - Robótica
 
BIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  AplicaçõesBIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  Aplicações
 
Introduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação WebIntroduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação Web
 
Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 
Xamarin plataform
Xamarin plataformXamarin plataform
Xamarin plataform
 
Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.
 
Games imersivos
Games imersivosGames imersivos
Games imersivos
 
Abertura - interopmix2014
Abertura - interopmix2014Abertura - interopmix2014
Abertura - interopmix2014
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto Basico
 
Treinamento csharp mono
Treinamento csharp monoTreinamento csharp mono
Treinamento csharp mono
 
Int305 projeto mono-final
Int305 projeto mono-finalInt305 projeto mono-final
Int305 projeto mono-final
 
Apresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasicApresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasic
 

Último

Último (9)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 

Velozes e furiosos com extreme programming.

  • 1. 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
  • 2. Mobile & Cloud Systems Quem sou? • Binhara@gmail.com • 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:
  • 3. 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
  • 4. 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
  • 5. Mobile & Cloud Systems Como Você define XP ???? • Lançando a campanha !!! • Pergunte ao Klaus!!!!
  • 6. Mobile & Cloud Systems Como eu definiria XP hoje? • Atitude • Garra para vencer • Disciplinado • Organizado • Interativo • Comprometido • Rotineiro • Comportamental •
  • 7. 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
  • 8. 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
  • 9. 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.
  • 11. 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.
  • 12. 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!!!”
  • 13. 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.
  • 14. 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
  • 15. 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
  • 17. 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
  • 18. 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
  • 19. 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!!!
  • 20. 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
  • 21. 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.
  • 22. 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.
  • 23. PADRÕES DE PROJETO E FERRAMENTAS
  • 24. 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
  • 25. 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"
  • 26. 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.
  • 27. 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
  • 28. 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.
  • 29. Mobile & Cloud Systems Cobertura de Testes
  • 30. Mobile & Cloud Systems Git + GitHub • Versionamento distribuído • Trabalho com múltiplos branches. • Grande aumento de produtividade.
  • 31. Mobile & Cloud Systems Redmine • Plug-in para scrunm
  • 32. Mobile & Cloud Systems TeamCity • Suporte Java, C#, Ruby • Notificações por : Email, jaber, Windows Tray
  • 33. Mobile & Cloud Systems Build Server...
  • 34. Mobile & Cloud Systems Build Server...
  • 35. Mobile & Cloud Systems Commit , após teste!
  • 36. Mobile & Cloud Systems TeamCity • Configuração do build
  • 37. Mobile & Cloud Systems Código duplicado
  • 38. Mobile & Cloud Systems Cobertura de Testes
  • 39. Mobile & Cloud Systems Histórico de Builds
  • 40. Mobile & Cloud Systems Integração com GIT
  • 41. Mobile & Cloud Systems
  • 42. Mobile & Cloud Systems Duvidas???? Pergunte pro Klaus... • Obrigado!!!
  • 43. Mobile & Cloud Systems Sorteio....