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




     Extreme Programming
XP - 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
XP - Extreme Programming
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?
XP - Extreme Programming
XP - Extreme Programming
Valores do Extreme Programming
Comunicação
XP - Extreme Programming
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!
XP - Extreme Programming
XP - Extreme Programming
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
XP - Extreme 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
XP - Extreme Programming
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!
XP - Extreme Programming
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

Levantamento Ágil de Requisitos
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de Requisitos
Paulo Furtado
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
Computação Depressão
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
Rildo (@rildosan) Santos
 
Modelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareModelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de Software
Daniela Franciosi
 
Exemplos de User Stories
Exemplos de User StoriesExemplos de User Stories
Exemplos de User Stories
Manoel Pimentel Medeiros
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Fábio Nogueira de Lucena
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
Luís Fernando Richter
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
Tiago Antônio da Silva
 
Definição e classificação dos requisitos
Definição e classificação dos requisitosDefinição e classificação dos requisitos
Definição e classificação dos requisitos
ETEIT - Escola Técnica da Univale
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
Leinylson Fontinele
 
Verificação e validação de software
Verificação e validação de softwareVerificação e validação de software
Verificação e validação de software
Leonardo Melo Santos
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
João Carlos Ottobboni
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
Alvaro Oliveira
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
Mauricio Cesar Santos da Purificação
 
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
João Lourenço
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
Fernando Nogueira
 
Histórias de Usuário: Como escrever a história perfeita?
Histórias de Usuário: Como escrever a história perfeita?Histórias de Usuário: Como escrever a história perfeita?
Histórias de Usuário: Como escrever a história perfeita?
Priscila Ribeiro Chagas
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
Gercélia Ramos
 
Teste de software
Teste de softwareTeste de software
Teste de software
COTIC-PROEG (UFPA)
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
Nathalia Sautchuk Patricio
 

Mais procurados (20)

Levantamento Ágil de Requisitos
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de Requisitos
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
 
Modelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareModelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de Software
 
Exemplos de User Stories
Exemplos de User StoriesExemplos de User Stories
Exemplos de User Stories
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Definição e classificação dos requisitos
Definição e classificação dos requisitosDefinição e classificação dos requisitos
Definição e classificação dos requisitos
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Verificação e validação de software
Verificação e validação de softwareVerificação e validação de software
Verificação e validação de software
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
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
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Histórias de Usuário: Como escrever a história perfeita?
Histórias de Usuário: Como escrever a história perfeita?Histórias de Usuário: Como escrever a história perfeita?
Histórias de Usuário: Como escrever a história perfeita?
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 

Destaque

Aula bíblia sagrada
Aula bíblia sagradaAula bíblia sagrada
Aula bíblia sagrada
Metodista_Barreto
 
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 - Metodologia
alemartins10
 
Clube rh comunicacao e negociacao
Clube rh   comunicacao e negociacaoClube rh   comunicacao e negociacao
Clube rh comunicacao e negociacao
Clube de RH de Extrema e Região
 
Projeto ptcc
Projeto ptccProjeto ptcc
Projeto ptcc
alemartins10
 
Gerenciamento de risco - Parte2
Gerenciamento de risco - Parte2Gerenciamento de risco - Parte2
Gerenciamento de risco - Parte2
Elaine Koda
 
Testes Automatizados
Testes AutomatizadosTestes Automatizados
Testes Automatizados
Rodrigo Branas
 
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 Kanban
Manoela Oliveira
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme Programming
Daniel Wildt
 
Clean Code
Clean CodeClean Code
Clean Code
Rodrigo Branas
 
Apostila xp programação ágil
Apostila xp   programação ágilApostila xp   programação ágil
Apostila xp programação ágil
Daniel 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 Word
Daniel Brandão
 
Pmipr Por Que Os Projetos Falham
Pmipr Por Que Os Projetos FalhamPmipr Por Que Os Projetos Falham
Pmipr Por Que Os Projetos Falham
Ovidio 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 Karma
Rodrigo Branas
 
Selenium - WebDriver
Selenium - WebDriverSelenium - WebDriver
Selenium - WebDriver
Rodrigo 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 - Kanban
Matheus 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 WEB
Daniel 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 AngularJS
Rodrigo Branas
 
Rastreabilidade de Requisitos
Rastreabilidade de RequisitosRastreabilidade de Requisitos
Rastreabilidade de Requisitos
transparenciadesoftware
 

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 Ferrari
Taller Negócio Digitais
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
Adriano Bertucci
 
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
Felipe 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 Software
Adolfo Neto
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Software
guest2f8cba
 
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
 
Lean software
Lean software Lean software
Lean software
Sergio Crespo
 
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 DevOps
José Alexandre Macedo
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
Fábio Nogueira de Lucena
 
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
Dextra Sistemas / Etec Itu
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
Rafael Spínola
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
Adriano Bertucci
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
Ernesto Bedrikow
 
Impacto do DevOps nos negócios
Impacto do DevOps nos negóciosImpacto do DevOps nos negócios
Impacto do DevOps nos negócios
Ramon 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 Software
Daniel Cukier
 
Introdução às metodologias ágeis
Introdução às metodologias ágeisIntrodução às metodologias ágeis
Introdução às metodologias ágeis
Comunidade 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

Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
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 Branas
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
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
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
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
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
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
Rodrigo Branas
 
#6 - Git - Desfazendo as coisas
#6 - Git - Desfazendo as coisas#6 - Git - Desfazendo as coisas
#6 - Git - Desfazendo as coisas
Rodrigo Branas
 
#1 - Git - Introdução
#1 - Git - Introdução#1 - Git - Introdução
#1 - Git - Introdução
Rodrigo 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 remoto
Rodrigo Branas
 
#4 - Git - Stash
#4 - Git - Stash#4 - Git - Stash
#4 - Git - Stash
Rodrigo Branas
 
#3 - Git - Branching e Merging
#3 - Git - Branching e Merging#3 - Git - Branching e Merging
#3 - Git - Branching e Merging
Rodrigo Branas
 
#2 - Git - DAG
#2 - Git - DAG#2 - Git - DAG
#2 - Git - DAG
Rodrigo Branas
 
A evolução do AngularJS
A evolução do AngularJSA evolução do AngularJS
A evolução do AngularJS
Rodrigo Branas
 
JavaScript - Date
JavaScript - DateJavaScript - Date
JavaScript - Date
Rodrigo Branas
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões Regulares
Rodrigo Branas
 
Automação de Testes com AngularJS
Automação de Testes com AngularJSAutomação de Testes com AngularJS
Automação de Testes com AngularJS
Rodrigo Branas
 
Scope AngularJS
Scope AngularJSScope AngularJS
Scope AngularJS
Rodrigo Branas
 
HTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSHTTP Interceptors com AngularJS
HTTP Interceptors com AngularJS
Rodrigo 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