SlideShare uma empresa Scribd logo
1 de 239
Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br




     Extreme Programming
@rodrigobranas
   rodrigo.branas@gmail.com

Formação Acadêmica
Ciências da Computação – UFSC
Gerenciamento de Projetos - FGV

Certificações

SCJA, SCJP, SCJD, SCWCD, SCBCD, PMP, MCP e CSM
Rodrigo Branas – rodrigo.branas@gmail.com
10 anos de experiência na plataforma Java
1000 horas em sala de aula
Mais de 50 palestras em eventos

Líder da área de desenvolvimento na Gennera
Autor da revista Java Magazine
Palestrante
Instrutor da Academia Java e Agile da Globalcode
Criador dos treinamentos de Clean Code, Selenium e
Maven da Agile Code

Trabalhou com as empresas:
EDS, HP, GM, Citibank, OnCast, Globalcode, V.Office, Dígitr
o, Softplan, Unimed, Suntech, Vale do Rio
1995 – Projeto C3
Chrysler Comprehensive Compensation
Payroll System
Migrar a base de código legada
escrita em COBOL e integrar com
         outros sistemas
Com a complexidade, a situação
ficou caótica e o software instável
Kent Beck
 (Criador do Extreme
    Programming)

É chamado para ajudar
   a salvar o projeto!
Parando de cavar...
Praticamente todo o código
foi jogado fora!
Reescrever tudo em menos
    tempo e com metade
da equipe trabalhando de forma
          diferente!
O conjunto de práticas
    propostas por Kent para
escrever o código deram origem
   ao Extreme Programming
Entre as principais práticas
     utilizadas estão:

Pair Programming
Entre as principais práticas
     utilizadas estão:

Pair Programming
TDD
Entre as principais práticas
     utilizadas estão:

Pair Programming
TDD
Refactoring
Entre as principais práticas
     utilizadas estão:

Pair Programming
TDD
Refactoring
Build automatizado
Entre as principais práticas
     utilizadas estão:

Pair Programming
TDD
Refactoring
Build automatizado
Integração contínua
Em 1997 o Projeto C3 foi para
produção! Mais de 10.000
funcionários foram pagos por
meio do novo software!
Extreme Programming
é uma mudança social!
Abandonar velhos hábitos
Foco em técnicas de
programação
Na comunicação aberta e direta!
Muito trabalho em equipe!
Buscando a excelência em
desenvolvimento de software
Como fica o Extreme Programming
no contexto da agilidade em geral?
Valores do Extreme Programming
Comunicação
Face-a-face
Simplicidade
YAGNI
(You Ain’t Gonna Need It)
YAGNI (You Ain’t Gonna Need It)

Tempo gasto adicionando, testando e
corrigindo novas funcionalidades.
Tempo gasto adicionando novas
 funcionalidades são apenas a
       ponta do iceberg!
YAGNI (You Ain’t Gonna Need It)

Tempo gasto adicionando, testando e
corrigindo novas funcionalidades.
Novas funcionalidades precisam ser
debugadas, documentadas e suportadas.
YAGNI (You Ain’t Gonna Need It)

Tempo gasto adicionando, testando e
corrigindo novas funcionalidades.
Novas funcionalidades precisam ser
debugadas, documentadas e suportadas.
Seu código ocupa espaço e aumenta a
complexidade do software como um todo.
YAGNI (You Ain’t Gonna Need It)

Tempo gasto adicionando, testando e
corrigindo novas funcionalidades.
Novas funcionalidades precisam ser
debugadas, documentadas e suportadas.
Seu código ocupa espaço e aumenta a
complexidade do software como um todo.
Novas funcionalidades geram novas
necessidades e o Snowball Effect.
Cuidado com o Snowball Effect
O caso da Agenda
    Telefônica
Feedback
Fail Fast
Perdendo as chaves...
Coragem
Assumir responsabilidades
Trabalhar de formas diferentes
Se adaptar as mudanças
Reconhecer as falhas
“Não importa o quão longe você
 andou na direção errada, volte
       imediatamente.”

       (Provérbio turco)
Primary Practices
Sit Together
Desenvolver software envolve o
         aprendizado
Compartilhar o conhecimento
Barreiras na comunicação
Times distribuidos podem ser ágeis?
Whole Team
Que tipo de profissionais são
        necessários?
Problemas na comunicação entre
       diferentes setores
Teoria das restrições
Equipes multi-disciplinares!
Diferença entre equipes e pessoas
        multi-disciplinares
Informative Workspace
Irradiadores de informação
Ferramentas Eletrônicas x Físicas
Energized Work
Desenvolvimento envolve estimular
a criatividade, idéias e o raciocínio
Condições ideais de trabalho
Produtividade x Carga Horária
Horário fixo para entrar e sair
Baixa motivação com o trabalho
Ficou doente?
Pair Programming
Piloto + Copiloto
Será que a velocidade do projeto
         será reduzida?
Era uma vez um cliente: “Sem pair
programming por favor!”
Onde está o gargalo no
desenvolvimento de software?
O caso dos digitadores
Vantagens do Pair Programming:

 Código de melhor qualidade
Vantagens do Pair Programming:

 Código de melhor qualidade
 Aumento do foco
Vantagens do Pair Programming:

 Código de melhor qualidade
 Aumento do foco
 Disseminação de conhecimento
 na equipe
Vantagens do Pair Programming:

 Código de melhor qualidade
 Aumento do foco
 Disseminação de conhecimento
 na equipe
 Melhora na produtividade
É obrigatório trabalhar em par
     durante todo o dia?
Técnica do Pomodoro!
Escolha a tarefa
Acerte o seu Pomodoro para 25
           minutos
Trabalhe até o fim do Pomodoro
Faça um intervalo de 5 minutos
A cada 4 Pomodoros faça um
intervalo longo de 15 a 20 minutos
A importância da rotação dos
           pares
Dica: Não se apaixone pelo seu par!
Slack
“Aliviar a tensão”

   (Babylon)
Problemas com o overcommitment
Frustração por não atingir a meta!
Atolado?
É necessário finalizar todas as user
  stories para atingir uma meta?
Decompor as user stories deixando
 os detalhes menos importantes
           para o final
Incluir tarefas técnicas importantes
  mas que possam ser canceladas
Reservar um tempo livre caso seja
       necessário utilizá-lo
Ten-Minute Build
Ainda existe build manual?
Tarefas mecânicas e repetitivas
     são desperdício puro!
Desperdício Puro


Desperdício Incidental




          Valor
Gestão de dependências
Ao baixar o código do repositório
  pela primeira vez, funciona?
Por que realizar o build em no
máximo “10 minutos”?
Se demorar demais o build
 começará a ser evitado
Perda da oportunidade de feedback
Exercício: Quanto tempo dura o
build em seu ambiente atual? O que
  pode ser feito para melhorá-lo?
Estratégias para reduzir a demora
       no processo de build:

  Modularizar o build
Estratégias para reduzir a demora
       no processo de build:

  Modularizar o build
  Distribuir ou delegar a execução
  do build (CI)
Estratégias para reduzir a demora
       no processo de build:

  Modularizar o build
  Distribuir ou delegar a execução
  do build (CI)
  Otimizar os testes
Estratégias para reduzir a demora
       no processo de build:

  Modularizar o build
  Distribuir ou delegar a execução
  do build (CI)
  Otimizar os testes
  Utilizar a base se possível em
  memória
Continuous Integration
Feedback integrado e
    instantâneo!
Desenvolvendo uma cultura
     “Stop-the-line”
Por que eu não realizo esse
processo apenas na minha própria
           maquina?
Evitando a síndrome do...
Última versão
sempre pronta
para o cliente!
Ferramentas para integração
         contínua
Test-First Programming
Qual é a vantagem de escrever o
          teste antes?
Escopo limitado evita escrever
  código além do necessário
Acoplamento e coesão
Confiança no código
Ganhando ritmo
Teste, Código e Refactoring
Métricas
Como é a cobertura de testes dos
softwares em que vocês trabalham
           atualmente?
Incremental Design
Investir apenas o necessário para
 implementar as funcionalidades
Como evitar que o projeto da
aplicação vire uma bagunça?
Refactoring
As práticas primárias são
    responsáveis pela base da
comunicação e feedback. Os times
 podem usá-las para aumentar a
 confiança e a competência para
construir relacionamentos dentro e
            fora do time.
Corollary Practices
O que aconteceria se você
 começasse a realizar o Daily
Deployment tendo uma taxa de
     defeitos ainda alta?

As práticas a seguir devem ser
utilizadas quando a confiança
      estiver consolidada.
Real customer involvement
Metáfora do Alfaiate
O que são clientes reais?
Agile Anti-Pattern: Customer Proxy
Fábrica de salsichas
Beta testers
Incremental Deployment
Antecipar o ROI
Guiar o desenvolvimento do
produto com base em feedbacks
Mitigar riscos na hora de virar a
              chave
Definindo uma versão mínima para
       colocar em produção
Cuidado com o resultado caso o
   produto esteja muito crú
Sistemas legados
Vai doer!
Team Continuity
“Value in software is created not
 only just by people know and do
but also by their relationships and
 what they accomplish together.”
            (Kent Beck)
Problemas nas empresas grandes
Move people around!
Shrinking Teams
Qual é o tamanho ideal de uma
           equipe?
Manter a capacidade produtiva
reduzindo o tamanho da equipe
Root-Cause Analysis
Eliminar a causa raiz do defeito
Escreva um teste que evidencie o
            defeito
Corrija o defeito
Descubra porque o defeito foi
inserido chegando a sua causa raiz
Trabalhe na causa raiz previnindo a
ocorrência de defeito semelhantes
Shared Code
De quem é a responsabilidade pelo
       código produzido?
Ao encontrar um defeito, corrija!
Quais são os problemas
relacionados a falta de compartilhar
 a responsabilidade sobre o código
          fonte? (10 min.)
Code and Tests
Os únicos artefatos criados são
       código e testes
Toda documentação precisa ser
          gerada
Single Code Base
Por que utilizar um SCM
(Source Code Management)?

   CVS, SVN, SourceSafe, ...
Apenas medo de perder os
        dados?
Quando e como são realizados
    commits de código?
A importância do versionamento a
          cada commit
Baby Steps
Always shippable code!
Estratégias de branching
Nunca criar branches
Prós:

Fácil de seguir
Prós:

Fácil de seguir
Menos barreiras para novos
desenvolvedores
Prós:

Fácil de seguir
Menos barreiras para novos
desenvolvedores
Ninguém precisa saber criar
branches
Contras:

Baseline pode se tornar instável
a qualquer momento
Contras:

Baseline pode se tornar instável
a qualquer momento
Desenvolvimento caótico
Sempre criar branches
Prós:

Baseline sempre estável
Prós:

Baseline sempre estável
Nenhum desenvolvedor precisa
manter código em suas
maquinas por muito tempo
Contras:

Desenvolvedores isolados
Contras:

Desenvolvedores isolados
Criação de muitos conflitos
Contras:

Desenvolvedores isolados
Criação de muitos conflitos
Muito tempo gasto com merges
Estratégia híbrida
(também conhecida como bom senso)
Regras:

1. O código do baseline deve
   sempre passar nos testes
Regras:

1. O código do baseline deve
   sempre passar nos testes
2. Uma operação de commit
   não pode ser muito grande
   ao ponto de desestimular a
   revisão de um colega
Daily Deployment
Quanto maior a distância entre o
  que está em produção e em
desenvolvimento maior é o risco!
Quais são as maiores dificuldades
  para viabilizar essa prática?
Riscos:

Baixo número de defeitos
Riscos:

Baixo número de defeitos
Ambiente totalmente
automatizado
Riscos:

Baixo número de defeitos
Ambiente totalmente
automatizado
Estratégias de recovery
Ambiente de Stagging
Negotiated Scope Contract
A maioria dos projetos fracassam!
                    (Standish Chaos Report – 2009)
24% são simplesmente cancelados!
                   (Standish Chaos Report – 2009)
44% fora do prazo, custo ou escopo!
                     (Standish Chaos Report – 2009)
Apenas 32% tem sucesso!
              (Standish Chaos Report – 2009)
Sucesso?
Quantos % do Microsoft Word você
        realmente utiliza?
A maioria das funcionalidades não
          são utilizadas!
Por que?
Necessidade de segurança!
Quanto custa?
Quando fica pronto?
Tentando prever o futuro!
Fechar o escopo para tentar
responder a essas perguntas!
Qual é o maior risco de um projeto
          de software?
Não era nada disso que eu queria!
O que toda essa segurança
        garante?
A quantidade de dinheiro que
poderá ser jogada fora no final do
             projeto!
Tipos de Contrato
Contrato de Tempo e Material
Alto risco para o cliente
Fornecedor não tem incentivo
   para finalizar o escopo
Custos fora de controle
Desentendimentos constantes
entre o cliente e o fornecedor
Contrato de Preço Fixo
Alto custo para montar o contrato
Risco por conta do fornecedor
Engessado
Qualidade pode ser negligenciada
       em caso de atrasos
Contratos Híbridos
Custos parcialmente fixos e
    adicional reduzido

           Exemplo:

80hs com 200 reais por hora =16k

   8k fixo e 100 reais por hora
Pré-Pago

Um orçamento é definido no início
         do projeto.

   Conforme as entregas vão
 acontecendo, um determinado
      valor é descontado.
Preço Fixo por Release

Mais conteúdo relacionado

Mais procurados

Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Annelise Gripp
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilJaffer Veronezi
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Design System: Dominando o Design at Scale
Design System: Dominando o Design at ScaleDesign System: Dominando o Design at Scale
Design System: Dominando o Design at ScaleGuilherme Gonzalez
 
Apresentação Crystal Clear
Apresentação Crystal ClearApresentação Crystal Clear
Apresentação Crystal ClearThiago Sinésio
 
Gerenciamento de projetos - Tempo, Recursos e Custo
Gerenciamento de projetos - Tempo, Recursos e CustoGerenciamento de projetos - Tempo, Recursos e Custo
Gerenciamento de projetos - Tempo, Recursos e CustoClaudio Barbosa
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 
Estudo De Caso Pmbok
Estudo De Caso PmbokEstudo De Caso Pmbok
Estudo De Caso PmbokLuiz Neto
 
Guia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterGuia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterPaulo Lomanto
 
Modelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de SoftwareModelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de SoftwareBruno Bitencourt Luiz
 
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-by
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-byAgile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-by
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-bySavaş DOĞAN
 

Mais procurados (20)

Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!
 
Scrum Sprint Planning
Scrum Sprint PlanningScrum Sprint Planning
Scrum Sprint Planning
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia Ágil
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Design System: Dominando o Design at Scale
Design System: Dominando o Design at ScaleDesign System: Dominando o Design at Scale
Design System: Dominando o Design at Scale
 
Metodologia SCRUM
Metodologia SCRUMMetodologia SCRUM
Metodologia SCRUM
 
Scrum
ScrumScrum
Scrum
 
Apresentação Crystal Clear
Apresentação Crystal ClearApresentação Crystal Clear
Apresentação Crystal Clear
 
Agile SCRUM
Agile SCRUMAgile SCRUM
Agile SCRUM
 
Scrum
ScrumScrum
Scrum
 
Gerenciamento de projetos - Tempo, Recursos e Custo
Gerenciamento de projetos - Tempo, Recursos e CustoGerenciamento de projetos - Tempo, Recursos e Custo
Gerenciamento de projetos - Tempo, Recursos e Custo
 
Cevik Yaklasim, Scrum ve XP Pratikleri
Cevik Yaklasim, Scrum ve XP PratikleriCevik Yaklasim, Scrum ve XP Pratikleri
Cevik Yaklasim, Scrum ve XP Pratikleri
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Estudo De Caso Pmbok
Estudo De Caso PmbokEstudo De Caso Pmbok
Estudo De Caso Pmbok
 
Guia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterGuia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum Master
 
Modelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de SoftwareModelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de Software
 
Gerenciamento das Comunicações do Projeto
Gerenciamento das Comunicações do ProjetoGerenciamento das Comunicações do Projeto
Gerenciamento das Comunicações do Projeto
 
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-by
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-byAgile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-by
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-by
 
Gestão Ágil de Projetos
Gestão Ágil de ProjetosGestão Ágil de Projetos
Gestão Ágil de Projetos
 

Destaque

Gerenciamento de projetos aplicado a outsourcing de impressão - Thiarlei - Im...
Gerenciamento de projetos aplicado a outsourcing de impressão - Thiarlei - Im...Gerenciamento de projetos aplicado a outsourcing de impressão - Thiarlei - Im...
Gerenciamento de projetos aplicado a outsourcing de impressão - Thiarlei - Im...Thiarlei Macedo
 
PTCC - Metodologia
PTCC -  MetodologiaPTCC -  Metodologia
PTCC - Metodologiaalemartins10
 
Gerenciamento de risco - Parte2
Gerenciamento de risco - Parte2Gerenciamento de risco - Parte2
Gerenciamento de risco - Parte2Elaine Koda
 
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...Flávio Steffens
 
Apresentação Scrum, Xp e Kanban
Apresentação Scrum, Xp e KanbanApresentação Scrum, Xp e Kanban
Apresentação Scrum, Xp e KanbanManoela Oliveira
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingDaniel Wildt
 
Apostila xp programação ágil
Apostila xp   programação ágilApostila xp   programação ágil
Apostila xp programação ágilDaniel Brandão
 
Introdução ao editor de texto Word
Introdução ao editor de texto WordIntrodução ao editor de texto Word
Introdução ao editor de texto WordDaniel Brandão
 
Pmipr Por Que Os Projetos Falham
Pmipr Por Que Os Projetos FalhamPmipr Por Que Os Projetos Falham
Pmipr Por Que Os Projetos FalhamOvidio Zambon
 
Test-Driven Development com JavaScript, Jasmine Karma
Test-Driven Development com JavaScript, Jasmine  KarmaTest-Driven Development com JavaScript, Jasmine  Karma
Test-Driven Development com JavaScript, Jasmine KarmaRodrigo Branas
 
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - KanbanMetodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - KanbanMatheus Costa
 
CSS - Módulo Básico de WEB
CSS - Módulo Básico de WEBCSS - Módulo Básico de WEB
CSS - Módulo Básico de WEBDaniel Brandão
 
Evoluindo a arquitetura de uma aplicação com AngularJS
Evoluindo a arquitetura de uma aplicação com AngularJSEvoluindo a arquitetura de uma aplicação com AngularJS
Evoluindo a arquitetura de uma aplicação com AngularJSRodrigo Branas
 

Destaque (20)

Aula bíblia sagrada
Aula bíblia sagradaAula bíblia sagrada
Aula bíblia sagrada
 
Gerenciamento de projetos aplicado a outsourcing de impressão - Thiarlei - Im...
Gerenciamento de projetos aplicado a outsourcing de impressão - Thiarlei - Im...Gerenciamento de projetos aplicado a outsourcing de impressão - Thiarlei - Im...
Gerenciamento de projetos aplicado a outsourcing de impressão - Thiarlei - Im...
 
PTCC - Metodologia
PTCC -  MetodologiaPTCC -  Metodologia
PTCC - Metodologia
 
Clube rh comunicacao e negociacao
Clube rh   comunicacao e negociacaoClube rh   comunicacao e negociacao
Clube rh comunicacao e negociacao
 
Projeto ptcc
Projeto ptccProjeto ptcc
Projeto ptcc
 
Gerenciamento de risco - Parte2
Gerenciamento de risco - Parte2Gerenciamento de risco - Parte2
Gerenciamento de risco - Parte2
 
Testes Automatizados
Testes AutomatizadosTestes Automatizados
Testes Automatizados
 
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...
 
Apresentação Scrum, Xp e Kanban
Apresentação Scrum, Xp e KanbanApresentação Scrum, Xp e Kanban
Apresentação Scrum, Xp e Kanban
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme Programming
 
Clean Code
Clean CodeClean Code
Clean Code
 
Apostila xp programação ágil
Apostila xp   programação ágilApostila xp   programação ágil
Apostila xp programação ágil
 
Introdução ao editor de texto Word
Introdução ao editor de texto WordIntrodução ao editor de texto Word
Introdução ao editor de texto Word
 
Pmipr Por Que Os Projetos Falham
Pmipr Por Que Os Projetos FalhamPmipr Por Que Os Projetos Falham
Pmipr Por Que Os Projetos Falham
 
Test-Driven Development com JavaScript, Jasmine Karma
Test-Driven Development com JavaScript, Jasmine  KarmaTest-Driven Development com JavaScript, Jasmine  Karma
Test-Driven Development com JavaScript, Jasmine Karma
 
Selenium - WebDriver
Selenium - WebDriverSelenium - WebDriver
Selenium - WebDriver
 
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - KanbanMetodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
 
CSS - Módulo Básico de WEB
CSS - Módulo Básico de WEBCSS - Módulo Básico de WEB
CSS - Módulo Básico de WEB
 
Evoluindo a arquitetura de uma aplicação com AngularJS
Evoluindo a arquitetura de uma aplicação com AngularJSEvoluindo a arquitetura de uma aplicação com AngularJS
Evoluindo a arquitetura de uma aplicação com AngularJS
 
Rastreabilidade de Requisitos
Rastreabilidade de RequisitosRastreabilidade de Requisitos
Rastreabilidade de Requisitos
 

Semelhante a XP - Extreme Programming

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?Cristiano Schwening
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariTaller Negócio Digitais
 
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 IBMFelipe Freire
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)André Dias
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Softwareguest2f8cba
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareDextra Sistemas / Etec Itu
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREErnesto Bedrikow
 
Impacto do DevOps nos negócios
Impacto do DevOps nos negóciosImpacto do DevOps nos negócios
Impacto do DevOps nos negóciosRamon Durães
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Igor Abade
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareDaniel Cukier
 
Introdução às metodologias ágeis
Introdução às metodologias ágeisIntrodução às metodologias ágeis
Introdução às metodologias ágeisComunidade Tá safo!
 

Semelhante a XP - Extreme Programming (20)

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?
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
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
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Software
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Lean software
Lean software Lean software
Lean software
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
 
Impacto do DevOps nos negócios
Impacto do DevOps nos negóciosImpacto do DevOps nos negócios
Impacto do DevOps nos negócios
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de Software
 
Introdução às metodologias ágeis
Introdução às metodologias ágeisIntrodução às metodologias ágeis
Introdução às metodologias ágeis
 

Mais de Rodrigo Branas

Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasRodrigo Branas
 
Node.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo BranasNode.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo BranasRodrigo Branas
 
Node.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo BranasNode.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo BranasRodrigo Branas
 
Node.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo BranasNode.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo BranasRodrigo Branas
 
Node.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo BranasNode.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo BranasRodrigo Branas
 
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo BranasNode.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo BranasRodrigo Branas
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasRodrigo Branas
 
#6 - Git - Desfazendo as coisas
#6 - Git - Desfazendo as coisas#6 - Git - Desfazendo as coisas
#6 - Git - Desfazendo as coisasRodrigo Branas
 
#1 - Git - Introdução
#1 - Git - Introdução#1 - Git - Introdução
#1 - Git - IntroduçãoRodrigo Branas
 
#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remotoRodrigo Branas
 
#3 - Git - Branching e Merging
#3 - Git - Branching e Merging#3 - Git - Branching e Merging
#3 - Git - Branching e MergingRodrigo Branas
 
A evolução do AngularJS
A evolução do AngularJSA evolução do AngularJS
A evolução do AngularJSRodrigo Branas
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões RegularesRodrigo Branas
 
Automação de Testes com AngularJS
Automação de Testes com AngularJSAutomação de Testes com AngularJS
Automação de Testes com AngularJSRodrigo Branas
 
HTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSHTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSRodrigo Branas
 

Mais de Rodrigo Branas (20)

Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
 
Node.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo BranasNode.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo Branas
 
Node.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo BranasNode.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo Branas
 
Node.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo BranasNode.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo Branas
 
Node.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo BranasNode.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo Branas
 
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo BranasNode.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
#6 - Git - Desfazendo as coisas
#6 - Git - Desfazendo as coisas#6 - Git - Desfazendo as coisas
#6 - Git - Desfazendo as coisas
 
#1 - Git - Introdução
#1 - Git - Introdução#1 - Git - Introdução
#1 - Git - Introdução
 
#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto
 
#4 - Git - Stash
#4 - Git - Stash#4 - Git - Stash
#4 - Git - Stash
 
#3 - Git - Branching e Merging
#3 - Git - Branching e Merging#3 - Git - Branching e Merging
#3 - Git - Branching e Merging
 
#2 - Git - DAG
#2 - Git - DAG#2 - Git - DAG
#2 - Git - DAG
 
A evolução do AngularJS
A evolução do AngularJSA evolução do AngularJS
A evolução do AngularJS
 
JavaScript - Date
JavaScript - DateJavaScript - Date
JavaScript - Date
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões Regulares
 
Automação de Testes com AngularJS
Automação de Testes com AngularJSAutomação de Testes com AngularJS
Automação de Testes com AngularJS
 
Scope AngularJS
Scope AngularJSScope AngularJS
Scope AngularJS
 
HTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSHTTP Interceptors com AngularJS
HTTP Interceptors com AngularJS
 

XP - Extreme Programming