SlideShare une entreprise Scribd logo
1  sur  188
Télécharger pour lire hors ligne
Revisitando as
práticas de
engenharia ágil
Danilo Sato
@dtsato
Danilo Sato
@dtsato - www.dtsato.com
Desenvolvedor, Arquiteto, Coach, DevOps, Treinador
Agile virou
mainstream
Fonte: VersionOne State of Agile (2012)
Referência: http://www.versionone.com/state-of-agile-survey-results/
Fonte: VersionOne State of Agile (2012)
Referência: http://www.versionone.com/state-of-agile-survey-results/
Scrum + Kanban =
72% ~ 75%
Fonte: VersionOne State of Agile (2012)
Referência: http://www.versionone.com/state-of-agile-survey-results/
Scrum + Kanban =
72% ~ 75%
4% “Não Sei” ?!
Fonte: VersionOne State of Agile (2012)
Referência: http://www.versionone.com/state-of-agile-survey-results/
Scrum + Kanban =
72% ~ 75%
XP = 2% ~ 7%
Práticas
gerenciais
práticas de
engenharia
Práticas
gerenciais
práticas de
engenharia
Práticas
gerenciais
práticas de
engenharia
http://www.flickr.com/photos/donnieray/9436653177
3 pilares
Gerir um negócio
sustentável
Liderar e promover
a excelência de
software e
revolucionar a
indústria de TI
Gerir um negócio
sustentável
Liderar e promover
a excelência de
software e
revolucionar a
indústria de TI
Advogar
apaixonadamente
em favor de justiça
social e econômica
Gerir um negócio
sustentável
falta de
práticas de
engenharia é uma
barreira
não atingimos o
potencial de
agile
o
potencial de
agile
o
potencial de
agile
Leak!
Vazar!
por que falar
de práticas?
http://www.dtsato.com/blog/2007/08/14/chega-de-processos/
princípios
vs.
práticas
princípios
vs.
práticas
princípios
vs.
práticas
Valores + Princípios
práticas
práticas
“O que você faz quando está
sob pressão"
-- Corey Haines
Programação Extrema (XP)
Programação Extrema (XP)
Práticas de
Engenharia
práticas
• dependentes
práticas
• dependentes
• complementares
práticas
Entrega
contínua
colaboração
testes
automatizados
design
originadas em XP
Entrega
contínua
colaboração
testes
automatizados
design
TDD
testes automatizados
originadas em XP
Entrega
contínua
colaboração
testes
automatizados
design
TDD
testes automatizados
design incremental
refatoração
metáfora
linguagem ubíqua
TDD
originadas em XP
Entrega
contínua
colaboração
testes
automatizados
design
TDD
testes automatizados
design incremental
refatoração
metáfora
linguagem ubíqua
TDD
propriedade coletiva de código
standards de código
programação pareada
gerenciar dívida técnica
desenvolvimento no trunk
originadas em XP
Entrega
contínua
colaboração
testes
automatizados
design
TDD
testes automatizados
design incremental
refatoração
metáfora
linguagem ubíqua
TDD
desenvolvimento no trunk
integração contínua
pipeline de implantação
implantação automatizada
infraestrutura como código
propriedade coletiva de código
standards de código
programação pareada
gerenciar dívida técnica
desenvolvimento no trunk
originadas em XP
testes
automatizados
http://www.flickr.com/photos/dancoulter/21042744
Exploratório
Ponta a
Ponta
Aplicação/
Componentes
Integração
Unitários
cobertura
por
teste /
tempo de
execução
feedback
rápido
Testes Automatizados
Testes Automatizados
• Comportamentos:
Testes Automatizados
• Comportamentos:
• O time possui uma clara estratégia de testes
Testes Automatizados
• Comportamentos:
• O time possui uma clara estratégia de testes
• Testes funcionais seguem user journeys e não por
história
Testes Automatizados
• Comportamentos:
• O time possui uma clara estratégia de testes
• Testes funcionais seguem user journeys e não por
história
• Testes reproduzem bug no nível certo antes de corrigí-lo
Testes Automatizados
• Comportamentos:
• O time possui uma clara estratégia de testes
• Testes funcionais seguem user journeys e não por
história
• Testes reproduzem bug no nível certo antes de corrigí-lo
• Tempo necessário para realizar testes manuais reduzido
Testes Automatizados
• Comportamentos:
• O time possui uma clara estratégia de testes
• Testes funcionais seguem user journeys e não por
história
• Testes reproduzem bug no nível certo antes de corrigí-lo
• Tempo necessário para realizar testes manuais reduzido
• Problemas são encontrados rapidamente, perto do
momento onde são introduzidos
TDD
TDD
• Comportamentos:
TDD
• Comportamentos:
• Testes atuam como documentação executável do código
TDD
• Comportamentos:
• Testes atuam como documentação executável do código
• Bom design OO: comportamento bem encapsulado e
clara dependência entre classes
TDD
• Comportamentos:
• Testes atuam como documentação executável do código
• Bom design OO: comportamento bem encapsulado e
clara dependência entre classes
• Testes unitários executam rapidamente: 1000s em
poucos segundos
TDD
• Comportamentos:
• Testes atuam como documentação executável do código
• Bom design OO: comportamento bem encapsulado e
clara dependência entre classes
• Testes unitários executam rapidamente: 1000s em
poucos segundos
• Uso justo de mocks: mocks não duplicam
comportamento do código
Design
Código==Design
Código==
Estrutura
Organização
Flexibilidade
Testabilidade
Legibilidade
Coesão
Acoplamento
Dependências
Design
BOM reduz o
custo da mudança
Design
Design
Hipótese da
stamina do Design
Funcionalidades
Tempo
Funcionalidades
Tempo
Sem Design
Funcionalidades
Tempo
Bom Design
Sem Design
Funcionalidades
Tempo
Bom Design
Sem Design
Onde o design
se paga
Zero
Design
Design
Ágil
Up-front
Design
Design “ativo”
Design “passivo”
Design ágil == Design evolutivo
Design ágil == Design evolutivo
Design Ágil
Design Ágil
• Comportamentos:
Design Ágil
• Comportamentos:
• Código é fácil de ser testado
Design Ágil
• Comportamentos:
• Código é fácil de ser testado
• Quando mudanças são necessárias, refatoração
acontece antes para que a mudança seja simples
Design Ágil
• Comportamentos:
• Código é fácil de ser testado
• Quando mudanças são necessárias, refatoração
acontece antes para que a mudança seja simples
• Time reconhece a diferença entre complexidade
essencial e acidental
Design Ágil
• Comportamentos:
• Código é fácil de ser testado
• Quando mudanças são necessárias, refatoração
acontece antes para que a mudança seja simples
• Time reconhece a diferença entre complexidade
essencial e acidental
• Gerenciamento de dívida técnica para reduzir
complexidade acidental
Refatoração
Refatoração
• Comportamentos:
Refatoração
• Comportamentos:
• Desenvolvedores familiarizados com refatorações
automatizadas na IDE
Refatoração
• Comportamentos:
• Desenvolvedores familiarizados com refatorações
automatizadas na IDE
• Refatoração acontece quando os testes estão passando
Refatoração
• Comportamentos:
• Desenvolvedores familiarizados com refatorações
automatizadas na IDE
• Refatoração acontece quando os testes estão passando
• Refatorações são pequenas e incrementais
Refatoração
• Comportamentos:
• Desenvolvedores familiarizados com refatorações
automatizadas na IDE
• Refatoração acontece quando os testes estão passando
• Refatorações são pequenas e incrementais
• Código de teste também é refatorado
Refatoração
• Comportamentos:
• Desenvolvedores familiarizados com refatorações
automatizadas na IDE
• Refatoração acontece quando os testes estão passando
• Refatorações são pequenas e incrementais
• Código de teste também é refatorado
• Desenvolvedores sabem dividir refatorações grandes em
pedaços menores
Linguagem Ubíqua
• Metáfora:
• Nem sempre é necessária
• Difícil de encontrar
• Domain-Driven Design
• Objetivo é melhorar comunicação
com especialistas de domínio
https://github.com/npryce/code-words
Linguagem Ubíqua
Linguagem Ubíqua
• Comportamentos:
Linguagem Ubíqua
• Comportamentos:
• Código de produção e de testes usam terminologia
uniforme, alinhada com o domínio
Linguagem Ubíqua
• Comportamentos:
• Código de produção e de testes usam terminologia
uniforme, alinhada com o domínio
• Conceitos em um domínio possuem sentido claro dentro
de um Contexto Delimitado
Linguagem Ubíqua
• Comportamentos:
• Código de produção e de testes usam terminologia
uniforme, alinhada com o domínio
• Conceitos em um domínio possuem sentido claro dentro
de um Contexto Delimitado
• Conceitos são bem entendidos por toda a equipe
(desenvolvedores, analistas, QAs, clientes, gerentes, etc.)
colaboração
http://www.flickr.com/photos/johncarleton/5355691631
http://www.flickr.com/photos/johncarleton/5355691631
Programação Pareada
• Benefícios:
• Foco
• Revisão de código constante
• Resultado é maior que a soma das
partes
Programação Pareada
Programação Pareada
• Comportamentos:
Programação Pareada
• Comportamentos:
• Ao parear, papéis de navegador e piloto rotacionam
frequentemente
Programação Pareada
• Comportamentos:
• Ao parear, papéis de navegador e piloto rotacionam
frequentemente
• Ambos desenvolvedores trabalham na mesma máquina: 2
monitores, 2 mouses, 2 teclados
Programação Pareada
• Comportamentos:
• Ao parear, papéis de navegador e piloto rotacionam
frequentemente
• Ambos desenvolvedores trabalham na mesma máquina: 2
monitores, 2 mouses, 2 teclados
• Pareamento entre papéis também acontece
Programação Pareada
• Comportamentos:
• Ao parear, papéis de navegador e piloto rotacionam
frequentemente
• Ambos desenvolvedores trabalham na mesma máquina: 2
monitores, 2 mouses, 2 teclados
• Pareamento entre papéis também acontece
• Pareamento oportunista: quando não faz sentido parear,
não pareia
Standards de Código
Standards de Código
• Comportamentos:
Standards de Código
• Comportamentos:
• Equipe segue estilo de código comum
Standards de Código
• Comportamentos:
• Equipe segue estilo de código comum
• Desenvolvedores criam “TODO”s quando encontram algo
que precisa ser investigado
Standards de Código
• Comportamentos:
• Equipe segue estilo de código comum
• Desenvolvedores criam “TODO”s quando encontram algo
que precisa ser investigado
• “TODO”s são corrigidos constantemente
Standards de Código
• Comportamentos:
• Equipe segue estilo de código comum
• Desenvolvedores criam “TODO”s quando encontram algo
que precisa ser investigado
• “TODO”s são corrigidos constantemente
• Padrões de estilo da equipe são mais importantes que
estilo pessoal
Standards de Código
• Comportamentos:
• Equipe segue estilo de código comum
• Desenvolvedores criam “TODO”s quando encontram algo
que precisa ser investigado
• “TODO”s são corrigidos constantemente
• Padrões de estilo da equipe são mais importantes que
estilo pessoal
• Código de teste também segue padrões de estilo
Propriedade Coletiva
de Código
Propriedade Coletiva
de Código
• Comportamentos:
Propriedade Coletiva
de Código
• Comportamentos:
• Não existe silos de conhecimento na equipe
Propriedade Coletiva
de Código
• Comportamentos:
• Não existe silos de conhecimento na equipe
• Conhecimento do código em modelo “T”: especialização é
OK, mas precisa ter conhecimento amplo também
Propriedade Coletiva
de Código
• Comportamentos:
• Não existe silos de conhecimento na equipe
• Conhecimento do código em modelo “T”: especialização é
OK, mas precisa ter conhecimento amplo também
• Rotação de pares ajuda a disseminar conhecimento
Propriedade Coletiva
de Código
• Comportamentos:
• Não existe silos de conhecimento na equipe
• Conhecimento do código em modelo “T”: especialização é
OK, mas precisa ter conhecimento amplo também
• Rotação de pares ajuda a disseminar conhecimento
• Desenvolvedores consertam o build independente de
quem quebrou
Propriedade Coletiva
de Código
• Comportamentos:
• Não existe silos de conhecimento na equipe
• Conhecimento do código em modelo “T”: especialização é
OK, mas precisa ter conhecimento amplo também
• Rotação de pares ajuda a disseminar conhecimento
• Desenvolvedores consertam o build independente de
quem quebrou
• Desenvolvedores procuram trabalhar em áreas diferentes
para aprimorar conhecimento
entrega
contínua
A “Última Milha”
QA + integração
QA centralizado
release + operação
IT operações
cliente
desenvolvimento
análise + design
teste + showcase
iteração 0 1 2 3 4
Time “Ágil”
AGILE 101
cliente
time de
entrega
fluxo constante de entrega em produção
ENTREGA CONTÍNUA
Servidor Central
Desenvolve
Máquina
Local
Servidor Central
Desenvolve
Build
Máquina
Local
Servidor Central
Desenvolve
Build
Máquina
Local
Servidor Central
Desenvolve
Build
pull
Máquina
Local
Servidor Central
Desenvolve
Build
Build
pull
Máquina
Local
Servidor Central
Desenvolve
Build
Build
pull
Máquina
Local
Servidor Central
Desenvolve
Build
Build
pull
Máquina
Local
push
Servidor Central
Desenvolve
Build
Build
pull
Máquina
Local
Build
push
Servidor Central
Desenvolve
Build
Build
pull
Máquina
Local
Build
push
✔
Pronto!
Servidor Central
Desenvolve
Build
Build
pull
Máquina
Local
Build
push
✔
Pronto!
Servidor Central
Desenvolve
Build
Build
pull
Máquina
Local
Build
push
✔
Pronto!
Todo mundo faz
commit no trunk
todos os dias
Integração Contínua
Integração Contínua
• Comportamentos:
Integração Contínua
• Comportamentos:
• Desenvolvedores fazem commit frequentemente,
idealmente várias vezes por dia
Integração Contínua
• Comportamentos:
• Desenvolvedores fazem commit frequentemente,
idealmente várias vezes por dia
• Build roda testes automatizados de diversos níveis
Integração Contínua
• Comportamentos:
• Desenvolvedores fazem commit frequentemente,
idealmente várias vezes por dia
• Build roda testes automatizados de diversos níveis
• Os builds estão geralmente verdes
Integração Contínua
• Comportamentos:
• Desenvolvedores fazem commit frequentemente,
idealmente várias vezes por dia
• Build roda testes automatizados de diversos níveis
• Os builds estão geralmente verdes
• Desenvolvedores reagem quando o build quebra
Integração Contínua
Integração Contínua
• Comportamentos:
Integração Contínua
• Comportamentos:
• Desenvolvedores trabalham para reduzir o tempo do build
Integração Contínua
• Comportamentos:
• Desenvolvedores trabalham para reduzir o tempo do build
• Desenvolvedores sempre rodam testes antes de fazer
commit para minimizar a chance de builds quebrados
Integração Contínua
• Comportamentos:
• Desenvolvedores trabalham para reduzir o tempo do build
• Desenvolvedores sempre rodam testes antes de fazer
commit para minimizar a chance de builds quebrados
• Desenvolvedores não fazem commit quando o build está
quebrado
Branch por Funcionalidade
Desenvolvimento no Trunk
Desenvolvimento no Trunk
Desenvolvimento no Trunk
• Comportamentos:
Desenvolvimento no Trunk
• Comportamentos:
• Commits que quebram o build são rapidamente
consertados ou revertidos
Desenvolvimento no Trunk
• Comportamentos:
• Commits que quebram o build são rapidamente
consertados ou revertidos
• Uso de branches é limitado: vida curta ou branch para
releases
Desenvolvimento no Trunk
• Comportamentos:
• Commits que quebram o build são rapidamente
consertados ou revertidos
• Uso de branches é limitado: vida curta ou branch para
releases
• Desenvolvedores usam “branch por abstração” quando
mudanças maiores são necessárias
Desenvolvimento no Trunk
• Comportamentos:
• Commits que quebram o build são rapidamente
consertados ou revertidos
• Uso de branches é limitado: vida curta ou branch para
releases
• Desenvolvedores usam “branch por abstração” quando
mudanças maiores são necessárias
• Qualquer commit pode ir para produção
http://bit.ly/manage-tech-debt
ESFORÇO
DOR
ESFORÇO
DOR
Gerenciar Dívida Técnica
Gerenciar Dívida Técnica
• Comportamentos:
Gerenciar Dívida Técnica
• Comportamentos:
• Equipe cataloga e estima items relacionados à dívida
técnica
Gerenciar Dívida Técnica
• Comportamentos:
• Equipe cataloga e estima items relacionados à dívida
técnica
• Equipe dedica uma porcentagem de tempo em cada
iteração para atacar items de dívida técnica
Gerenciar Dívida Técnica
• Comportamentos:
• Equipe cataloga e estima items relacionados à dívida
técnica
• Equipe dedica uma porcentagem de tempo em cada
iteração para atacar items de dívida técnica
• Dívida relacionada à arquitetura é capturada e priorizada
para permitir evolução a longo prazo
Gerenciar Dívida Técnica
• Comportamentos:
• Equipe cataloga e estima items relacionados à dívida
técnica
• Equipe dedica uma porcentagem de tempo em cada
iteração para atacar items de dívida técnica
• Dívida relacionada à arquitetura é capturada e priorizada
para permitir evolução a longo prazo
• Decisões sobre escopo levam dívida técnica em
consideração
Implantação Automatizada
Implantação Automatizada
• Comportamentos:
Implantação Automatizada
• Comportamentos:
• Equipe procura automatizar passos para deploy
Implantação Automatizada
• Comportamentos:
• Equipe procura automatizar passos para deploy
• Script inclui não apenas deploy de código, mas também
recursos dependentes: banco de dados, infraestrutura,
filas, etc.
Implantação Automatizada
• Comportamentos:
• Equipe procura automatizar passos para deploy
• Script inclui não apenas deploy de código, mas também
recursos dependentes: banco de dados, infraestrutura,
filas, etc.
• É fácil subir ambientes parecidos com produção
Infraestrutura como
Código
Infraestrutura como
Código
• Comportamentos:
Infraestrutura como
Código
• Comportamentos:
• É fácil subir ambientes parecidos com produção
Infraestrutura como
Código
• Comportamentos:
• É fácil subir ambientes parecidos com produção
• Alterações de infraestrutura não precisam de tickets para
equipes externas
Infraestrutura como
Código
• Comportamentos:
• É fácil subir ambientes parecidos com produção
• Alterações de infraestrutura não precisam de tickets para
equipes externas
• Código de infraestrutura é testado e parte da pipeline de
entrega
Infraestrutura como
Código
• Comportamentos:
• É fácil subir ambientes parecidos com produção
• Alterações de infraestrutura não precisam de tickets para
equipes externas
• Código de infraestrutura é testado e parte da pipeline de
entrega
• Pouco uso de ambientes compartilhados
Pipeline de Implantação
Pipeline de Implantação
“...(a pipeline de implantação) é
a manifestação automatizada
do processo de levar o software
do controle de versão para as
mãos dos usuários"
-- Jez Humble
Em Português!
http://www.grupoa.com.br/livros/engenharia-de-software-e-
metodos-ageis/entrega-continua/9788582601037
Pipeline de Implantação
Serviço B
Serviço C
App A
Testes
Unitário
Controle
de Versão
Repositório
de Artefatos
Testes de
Componente
Testes
Unitário
Testes de
Componente
Testes
Unitário
Testes de
Componente
Testes de
Contrato
Testes de
Contrato
Deploy em
Dev Smoke
Deploy em
Int
Teste de
Aplicação Smoke
App E
App F
Serviço D
Testes
Unitário
Testes de
Componente
Testes
Unitário
Testes de
Componente
Testes
Unitário
Testes de
Componente
Testes de
Contrato
Deploy em
Dev Smoke
Teste de
Aplicação
Testes de
Contrato
Deploy em
Dev Smoke
Deploy em
Int Smoke
Deploy em
Int
Teste Ponta-
a-Ponta
Ambiente de
Dev
Deploy em
QA Smoke
Testes de
Performance
UAT
Ambiente de
Integração
Ambiente de
QA
Deploy em
Production Smoke
COTS
Ambiente de
Produção
Deploy em
Int
(...)
(…)
Pipeline de Implantação
Pipeline de Implantação
• Comportamentos:
Pipeline de Implantação
• Comportamentos:
• Mudanças em produção podem ser traçadas desde o
commit original
Pipeline de Implantação
• Comportamentos:
• Mudanças em produção podem ser traçadas desde o
commit original
• Pipeline possui diversos estágios para diferentes níveis de
teste
Pipeline de Implantação
• Comportamentos:
• Mudanças em produção podem ser traçadas desde o
commit original
• Pipeline possui diversos estágios para diferentes níveis de
teste
• Estágios são otimizados para maximizar feedback rápido
Pipeline de Implantação
• Comportamentos:
• Mudanças em produção podem ser traçadas desde o
commit original
• Pipeline possui diversos estágios para diferentes níveis de
teste
• Estágios são otimizados para maximizar feedback rápido
• Código de infraestrutura integrado com código de produção
na pipeline
Pipeline de Implantação
• Comportamentos:
• Mudanças em produção podem ser traçadas desde o
commit original
• Pipeline possui diversos estágios para diferentes níveis de
teste
• Estágios são otimizados para maximizar feedback rápido
• Código de infraestrutura integrado com código de produção
na pipeline
• Inclusão de testes pré-release (desempenho, carga, stress, …)
Resumindo...
práticas de
engenharia são
essenciais para
ser ágil
princípios
vs.
práticas
minhas práticas
de engenharia
Entrega
contínua
colaboração
testes
automatizados
design
TDD
testes automatizados
design incremental
refatoração
metáfora
linguagem ubíqua
TDD
desenvolvimento no trunk
integração contínua
pipeline de implantação
implantação automatizada
infraestrutura como código
propriedade coletiva de código
standards de código
programação pareada
gerenciar dívida técnica
desenvolvimento no trunk
quais são as
suas práticas?
Danilo Sato
@dtsato - www.dtsato.com
Desenvolvedor, Arquiteto, Coach, DevOps, Treinador
Obrigado!

Contenu connexe

Tendances

Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Samanta Cicilia
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de ServiçoRafael Lima
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de ValorSamanta Cicilia
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes AutomatizadosSamanta Cicilia
 
Visual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineVisual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineSamanta Cicilia
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous DeliverySamanta Cicilia
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliverySamanta Cicilia
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
 
Cafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignCafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignThoughtworks
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaScrumHalf Tool
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous DeliverySamanta Cicilia
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosSamanta Cicilia
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horasSamanta Cicilia
 
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
 

Tendances (20)

Workshop ietec Devops Testing
Workshop ietec Devops TestingWorkshop ietec Devops Testing
Workshop ietec Devops Testing
 
Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de Serviço
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
Visual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineVisual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipeline
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Cafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignCafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and Design
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Kanban
KanbanKanban
Kanban
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
 
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?
 
O programador lean
O programador leanO programador lean
O programador lean
 
WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
 

Similaire à Revisitando as Práticas de Engenharia Ágil

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
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
 
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidadeTDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidadeStefan Teixeira
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - IntroduçãoHélio Costa e Silva
 
Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Camilla Gomes
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceGlobalcode
 
Metodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs AgileMetodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs AgileMarcelo Murad
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Tchelinux
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADEREFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADEAlexsander Camargo
 
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...iMasters
 
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 DevOpsRafael Salerno de Oliveira
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryRodrigo Russo
 
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 2012Igor Abade
 

Similaire à Revisitando as Práticas de Engenharia Ágil (20)

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
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidadeTDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - Introdução
 
Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
 
Metodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs AgileMetodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs Agile
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Tdd On Rails
Tdd On RailsTdd On Rails
Tdd On Rails
 
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADEREFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
 
Desenvolvimento Web
Desenvolvimento WebDesenvolvimento Web
Desenvolvimento Web
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
 
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
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
 
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
 

Plus de Danilo Sato

Padrões de deploy para devops e entrega contínua - DevDay 2014
Padrões de deploy para devops e entrega contínua - DevDay 2014Padrões de deploy para devops e entrega contínua - DevDay 2014
Padrões de deploy para devops e entrega contínua - DevDay 2014Danilo Sato
 
Keynote RuPy Natal 2014
Keynote RuPy Natal 2014Keynote RuPy Natal 2014
Keynote RuPy Natal 2014Danilo Sato
 
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaPadrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaDanilo Sato
 
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaPadrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaDanilo Sato
 
Refactoring Strategies: Beyond the Basics
Refactoring Strategies: Beyond the BasicsRefactoring Strategies: Beyond the Basics
Refactoring Strategies: Beyond the BasicsDanilo Sato
 
O que você NÃO aprendeu sobre Programação Orientada a Objetos
O que você NÃO aprendeu sobre Programação Orientada a ObjetosO que você NÃO aprendeu sobre Programação Orientada a Objetos
O que você NÃO aprendeu sobre Programação Orientada a ObjetosDanilo Sato
 
Princípios e Práticas para lidar com requisitos não-funcionais em desenvolvim...
Princípios e Práticas para lidar com requisitos não-funcionais em desenvolvim...Princípios e Práticas para lidar com requisitos não-funcionais em desenvolvim...
Princípios e Práticas para lidar com requisitos não-funcionais em desenvolvim...Danilo Sato
 
Estratégias de Refatoração: além do be-a-bá
Estratégias de Refatoração: além do be-a-báEstratégias de Refatoração: além do be-a-bá
Estratégias de Refatoração: além do be-a-báDanilo Sato
 
Coding Dojo Introduction
Coding Dojo IntroductionCoding Dojo Introduction
Coding Dojo IntroductionDanilo Sato
 
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...Danilo Sato
 
Refactoring at Large
Refactoring at LargeRefactoring at Large
Refactoring at LargeDanilo Sato
 
Refatoração em Larga Escala
Refatoração em Larga EscalaRefatoração em Larga Escala
Refatoração em Larga EscalaDanilo Sato
 
Managing your technical debt - AgileBrazil 2011
Managing your technical debt - AgileBrazil 2011Managing your technical debt - AgileBrazil 2011
Managing your technical debt - AgileBrazil 2011Danilo Sato
 

Plus de Danilo Sato (14)

Padrões de deploy para devops e entrega contínua - DevDay 2014
Padrões de deploy para devops e entrega contínua - DevDay 2014Padrões de deploy para devops e entrega contínua - DevDay 2014
Padrões de deploy para devops e entrega contínua - DevDay 2014
 
Keynote RuPy Natal 2014
Keynote RuPy Natal 2014Keynote RuPy Natal 2014
Keynote RuPy Natal 2014
 
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaPadrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega Contínua
 
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaPadrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega Contínua
 
Refactoring Strategies: Beyond the Basics
Refactoring Strategies: Beyond the BasicsRefactoring Strategies: Beyond the Basics
Refactoring Strategies: Beyond the Basics
 
O que você NÃO aprendeu sobre Programação Orientada a Objetos
O que você NÃO aprendeu sobre Programação Orientada a ObjetosO que você NÃO aprendeu sobre Programação Orientada a Objetos
O que você NÃO aprendeu sobre Programação Orientada a Objetos
 
Princípios e Práticas para lidar com requisitos não-funcionais em desenvolvim...
Princípios e Práticas para lidar com requisitos não-funcionais em desenvolvim...Princípios e Práticas para lidar com requisitos não-funcionais em desenvolvim...
Princípios e Práticas para lidar com requisitos não-funcionais em desenvolvim...
 
Estratégias de Refatoração: além do be-a-bá
Estratégias de Refatoração: além do be-a-báEstratégias de Refatoração: além do be-a-bá
Estratégias de Refatoração: além do be-a-bá
 
Coding Dojo Introduction
Coding Dojo IntroductionCoding Dojo Introduction
Coding Dojo Introduction
 
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
 
Refactoring at Large
Refactoring at LargeRefactoring at Large
Refactoring at Large
 
Refatoração em Larga Escala
Refatoração em Larga EscalaRefatoração em Larga Escala
Refatoração em Larga Escala
 
Managing your technical debt - AgileBrazil 2011
Managing your technical debt - AgileBrazil 2011Managing your technical debt - AgileBrazil 2011
Managing your technical debt - AgileBrazil 2011
 
Lean Lego Game
Lean Lego GameLean Lego Game
Lean Lego Game
 

Revisitando as Práticas de Engenharia Ágil