SlideShare uma empresa Scribd logo
1 de 83
Baixar para ler offline
Continuous
Delivery com
o build
quebrado sem
remorso
Lucas Medina @medinalucas
Maio 2015
2
Nós fazemos uma média de 5 deploys
para produção por dia
3
Às vezes, mesmo que o build esteja
quebrado...
4
Como assim?
5
• > O Projeto
• Os Times
• O Desenvolvimento
• A Automação
• Os Ambientes
• O Pipeline
• O Deploy
• Os Desafios
• Considerações Finais
Agenda
6
O Projeto
Painel de controle para
Rackspace Cloud Servers
7
O Projeto
8-10K visitas únicas
diárias
8
O Projeto
Thick client com Google Closure
e Knockout.js
9
O Projeto
Thin backend com Django e Twist
1
0
O Projeto
APIs públicas do Rackspace
1
1
• O Projeto
• > Os Times
• O Desenvolvimento
• A Automação
• Os Ambientes
• O Pipeline
• O Deploy
• Os Desafios
• Considerações Finais
Agenda
1
2
Os Times
5 times distribuídos em 2
localidades
1
3
Os Backlogs
Kanban por time
1
4
Os Times
Todos os times
trabalham na mesma
base de código e em
qualquer
funcionalidade
1
5
Os Times
Qualquer “trabalho” entra no
backlog
1
6
Os Times
Dev completo == Produção
1
7
• O Projeto
• Os Times
• > O Desenvolvimento
• A Automação
• Os Ambientes
• O Pipeline
• O Deploy
• Os Desafios
• Considerações Finais
Agenda
1
8
O Desenvolvimento
1
9
O Desenvolvimento
2
0
O Desenvolvimento
2
1
O Desenvolvimento
2
2
O Desenvolvimento
2
3
O Desenvolvimento
2
4
O Desenvolvimento
2
5
• O Projeto
• Os Times
• O Desenvolvimento
• > A Automação
• Os Ambientes
• O Pipeline
• O Deploy
• Os Desafios
• Considerações Finais
Agenda
2
6
A Automação
Testes de aceitação são parte
das estórias
2
7
A Automação
3 Quality
Engineers
2
8
A Automação
Backlog exclusivo
para QE
2
9
A Automação
Contém estórias para:
- Melhorar estabilidade
- Cobrir “gaps”
- Manutenção de suites
- Implementação de “sad paths”
3
0
• O Projeto
• Os Times
• O Desenvolvimento
• A Automação
• > Os Ambientes
• O Pipeline
• O Deploy
• Os Desafios
• Considerações Finais
Agenda
3
1
Os Ambientes
3
2
Os Ambientes
3
3
Os Ambientes
3
4
Os Ambientes
3
5
• O Projeto
• Os Times
• O Desenvolvimento
• A Automação
• Os Ambientes
• > O Pipeline
• O Deploy
• Os Desafios
• Considerações Finais
Agenda
3
6
O Pipeline
3
7
O Pipeline
3
8
• O Projeto
• Os Times
• O Desenvolvimento
• A Automação
• Os Ambientes
• O Pipeline
• > O Deploy
• Os Desafios
• Considerações Finais
Agenda
3
9
O Deploy
4
0
O Deploy
[13:02] <reach-jenkins>: Project Reach_Production_Deploy_OK build
#843: SUCCESS in 52 sec: https://reach-ci.k1k.
me/job/Reach_Production_Deploy_OK/843/
4
1
O Deploy
[13:02] <reach-jenkins>: Project Reach_Production_Deploy_OK build
#843: SUCCESS in 52 sec: https://reach-ci.k1k.
me/job/Reach_Production_Deploy_OK/843/
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please
check your changes.
4
2
O Deploy
[13:02] <reach-jenkins>: Project Reach_Production_Deploy_OK build
#843: SUCCESS in 52 sec: https://reach-ci.k1k.
me/job/Reach_Production_Deploy_OK/843/
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please
check your changes.
[13:02] <mozair>: !good
4
3
O Deploy
[13:02] <reach-jenkins>: Project Reach_Production_Deploy_OK build
#843: SUCCESS in 52 sec: https://reach-ci.k1k.
me/job/Reach_Production_Deploy_OK/843/
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please
check your changes.
[13:02] <mozair>: !good
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check
your changes. [mozair] already confimed their changes are ok.
4
4
O Deploy
[13:02] <reach-jenkins>: Project Reach_Production_Deploy_OK build
#843: SUCCESS in 52 sec: https://reach-ci.k1k.
me/job/Reach_Production_Deploy_OK/843/
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please
check your changes.
[13:02] <mozair>: !good
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check
your changes. [mozair] already confimed their changes are ok.
[13:03] <jnott>: !good
4
5
O Deploy
[13:02] <reach-jenkins>: Project Reach_Production_Deploy_OK build
#843: SUCCESS in 52 sec: https://reach-ci.k1k.
me/job/Reach_Production_Deploy_OK/843/
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please
check your changes.
[13:02] <mozair>: !good
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check
your changes. [mozair] already confimed their changes are ok.
[13:03] <jnott>: !good
[13:03] <bluffynarwhalbot>: Hey [lucasmedina] please check your
changes. [mozair, jnott] already confimed their changes are ok.
4
6
O Deploy
[13:02] <reach-jenkins>: Project Reach_Production_Deploy_OK build
#843: SUCCESS in 52 sec: https://reach-ci.k1k.
me/job/Reach_Production_Deploy_OK/843/
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please
check your changes.
[13:02] <mozair>: !good
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check
your changes. [mozair] already confimed their changes are ok.
[13:03] <jnott>: !good
[13:03] <bluffynarwhalbot>: Hey [lucasmedina] please check your
changes. [mozair, jnott] already confimed their changes are ok.
[13:04] <lucasmedina>: !good
4
7
O Deploy
[13:02] <reach-jenkins>: Project Reach_Production_Deploy_OK build
#843: SUCCESS in 52 sec: https://reach-ci.k1k.
me/job/Reach_Production_Deploy_OK/843/
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please
check your changes.
[13:02] <mozair>: !good
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check
your changes. [mozair] already confimed their changes are ok.
[13:03] <jnott>: !good
[13:03] <bluffynarwhalbot>: Hey [lucasmedina] please check your
changes. [mozair, jnott] already confimed their changes are ok.
[13:04] <lucasmedina>: !good
[13:04] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair], I'm
deploying revision [82459d1db17e177150d139d063f26c90d4ba3889].
4
8
O Deploy
[13:02] <reach-jenkins>: Project Reach_Production_Deploy_OK build
#843: SUCCESS in 52 sec: https://reach-ci.k1k.
me/job/Reach_Production_Deploy_OK/843/
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please
check your changes.
[13:02] <mozair>: !good
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check
your changes. [mozair] already confimed their changes are ok.
[13:03] <jnott>: !good
[13:03] <bluffynarwhalbot>: Hey [lucasmedina] please check your
changes. [mozair, jnott] already confimed their changes are ok.
[13:04] <lucasmedina>: !good
[13:04] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair], I'm
deploying revision [82459d1db17e177150d139d063f26c90d4ba3889].
[13:04] <reach-dn-prod>: jenkins is deploying reach to ord1_prod:
ord1 - https://reach-dreadnot.k1k.
me/stacks/reach/regions/ord1/deployments/1950
4
9
O Deploy
[13:02] <reach-jenkins>: Project Reach_Production_Deploy_OK build
#843: SUCCESS in 52 sec: https://reach-ci.k1k.
me/job/Reach_Production_Deploy_OK/843/
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please
check your changes.
[13:02] <mozair>: !good
[13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check
your changes. [mozair] already confimed their changes are ok.
[13:03] <jnott>: !good
[13:03] <bluffynarwhalbot>: Hey [lucasmedina] please check your
changes. [mozair, jnott] already confimed their changes are ok.
[13:04] <lucasmedina>: !good
[13:04] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair], I'm
deploying revision [82459d1db17e177150d139d063f26c90d4ba3889].
[13:04] <reach-dn-prod>: jenkins is deploying reach to ord1_prod:
ord1 - https://reach-dreadnot.k1k.
me/stacks/reach/regions/ord1/deployments/1950
[13:10] <reach-dn-prod>: deployment #1950 of reach to ord1_prod:ord1
succeeded
5
0
• O Projeto
• Os Times
• O Desenvolvimento
• A Automação
• Os Ambientes
• O Pipeline
• O Deploy
• > Os Desafios
• Considerações Finais
Agenda
5
1
Os Desafios
Suites muito lentas
5
2
Suites muitos lentas
Saucelabs?
Infra-estrutura para testes em
paralelo?
5
3
Falhas por comunicação com as APIs
Baixo custo para replicar
ambientes e criar novas contas
5
4
Os Desafios
Testes que falham
aleatoriamente
5
5
Testes que falham aleatoriamente
Testes que não são confiáveis
são piores que testes que
sempre falham
5
6
Testes que falham aleatoriamente
A prioridade é o pipeline
5
7
Testes que falham aleatoriamente
“Non-blocking tests”
5
8
Testes que falham aleatoriamente
“Firefighter”
5
9
Os Desafios
Problemas do papel “Firefighter”
6
0
Trabalho do “Firefighter” excedia
o seu dia de apagar o incêndio
Problemas do papel “Firefighter”
6
1
Problemas do papel “Firefighter”
Passou a ser o monitorador do
pipeline
6
2
Problemas do papel “Firefighter”
Despedimos o “Firefighter”
6
3
Problemas do papel “Firefighter”
Pipeline é responsabilidade de
quem fez merge
6
4
Problemas do papel “Firefighter”
Criação de estórias para corrigir
testes instáveis
6
5
Os Desafios
Testes falham por problemas na
comunicação com a API
6
6
Falhas por comunicação com as APIs
“Mock all the things!”
6
7
Falhas por comunicação com as APIs
Alto custo para programar mocks
6
8
Falhas por comunicação com as APIs
“Full stack” é desejável
6
9
Falhas por comunicação com as APIs
+ contas
+ tentativas
7
0
Os Desafios
Quebrar
funcionalidade
em produção
7
1
Quebrar funcionalidade em produção
Pequenos múltiplos deploys
facilitam identificação dos
problemas
7
2
Erros sérios são detectados por
testes
Quebrar funcionalidade em produção
7
3
Re-deploy
Quebrar funcionalidade em produção
7
4
Deixamos até outro deploy se
problema for pequeno
Quebrar funcionalidade em produção
7
5
“Root Cause Analysis”
Quebrar funcionalidade em produção
7
6
• O Projeto
• Os Times
• O Desenvolvimento
• A Automação
• Os Ambientes
• O Pipeline
• O Deploy
• Os Desafios
• > Considerações Finais
Agenda
7
7
Considerações Finais
Design, testes manuais e
validação são atividades
externas
7
8
Considerações Finais
Story Branches
+
Feature Flags
7
9
Considerações Finais
Foco no testes
Sem tratá-los
religiosamente
8
0
Considerações Finais
DevOps!!!
8
1
Referencias
http://www.thoughtworks.com/pt/insights/blog/continuous-
delivery-broken-builds-and-clean-conscience
http://www.thoughtworks.com/radar/
8
Q&A
8
8
Muito
Obrigado!
8
Lucas Medina @medinalucas

Mais conteúdo relacionado

Destaque

Cadastral Survey 3 Chapter 2 CG302
Cadastral Survey 3 Chapter 2 CG302Cadastral Survey 3 Chapter 2 CG302
Cadastral Survey 3 Chapter 2 CG302Diana Lee
 
DIG South - Google Analytics Opportunities to Improve Ecommerce ROI
DIG South - Google Analytics Opportunities to Improve Ecommerce ROIDIG South - Google Analytics Opportunities to Improve Ecommerce ROI
DIG South - Google Analytics Opportunities to Improve Ecommerce ROIMarketing Mojo
 
Powert point clari(ingles)
Powert point clari(ingles)Powert point clari(ingles)
Powert point clari(ingles)morritos29
 
Open Data Ireland: Developing a national open data strategy
Open Data Ireland: Developing a national open data strategyOpen Data Ireland: Developing a national open data strategy
Open Data Ireland: Developing a national open data strategyDublinked .
 
1[1].foundations of american government
1[1].foundations of american government1[1].foundations of american government
1[1].foundations of american governmentjtoma84
 
Alameda County Registrar of Voters Ranked-Choice Voting Presentation
Alameda County Registrar of Voters Ranked-Choice Voting PresentationAlameda County Registrar of Voters Ranked-Choice Voting Presentation
Alameda County Registrar of Voters Ranked-Choice Voting PresentationYehoshua7
 
Papelucho y mi hermana ji
Papelucho y mi hermana jiPapelucho y mi hermana ji
Papelucho y mi hermana jiPoulette P
 
Fixed Assets for SAP Business One Version 9.0
Fixed Assets for SAP Business One Version 9.0Fixed Assets for SAP Business One Version 9.0
Fixed Assets for SAP Business One Version 9.0Madeline ten Krooden
 
Trabajando el rotacismo1
Trabajando el rotacismo1Trabajando el rotacismo1
Trabajando el rotacismo1Geni
 
Iowa, anticipo de Clinton contra Rubio en otoño, de Alexandre Muns - Cinco Días
Iowa, anticipo de Clinton contra Rubio en otoño, de Alexandre Muns - Cinco DíasIowa, anticipo de Clinton contra Rubio en otoño, de Alexandre Muns - Cinco Días
Iowa, anticipo de Clinton contra Rubio en otoño, de Alexandre Muns - Cinco DíasEAE Business School
 
Orugaglotona 110313141729-phpapp01
Orugaglotona 110313141729-phpapp01Orugaglotona 110313141729-phpapp01
Orugaglotona 110313141729-phpapp01R López Pinar
 
TOWNBRIDGE UPDATED CV
TOWNBRIDGE UPDATED CVTOWNBRIDGE UPDATED CV
TOWNBRIDGE UPDATED CVJosphat Koti
 
AMA Chapter Plan 2015-2016
AMA Chapter Plan 2015-2016AMA Chapter Plan 2015-2016
AMA Chapter Plan 2015-2016Alisa Sutton
 

Destaque (15)

Cadastral Survey 3 Chapter 2 CG302
Cadastral Survey 3 Chapter 2 CG302Cadastral Survey 3 Chapter 2 CG302
Cadastral Survey 3 Chapter 2 CG302
 
DIG South - Google Analytics Opportunities to Improve Ecommerce ROI
DIG South - Google Analytics Opportunities to Improve Ecommerce ROIDIG South - Google Analytics Opportunities to Improve Ecommerce ROI
DIG South - Google Analytics Opportunities to Improve Ecommerce ROI
 
Powert point clari(ingles)
Powert point clari(ingles)Powert point clari(ingles)
Powert point clari(ingles)
 
Open Data Ireland: Developing a national open data strategy
Open Data Ireland: Developing a national open data strategyOpen Data Ireland: Developing a national open data strategy
Open Data Ireland: Developing a national open data strategy
 
Globalization project
Globalization projectGlobalization project
Globalization project
 
1[1].foundations of american government
1[1].foundations of american government1[1].foundations of american government
1[1].foundations of american government
 
Alameda County Registrar of Voters Ranked-Choice Voting Presentation
Alameda County Registrar of Voters Ranked-Choice Voting PresentationAlameda County Registrar of Voters Ranked-Choice Voting Presentation
Alameda County Registrar of Voters Ranked-Choice Voting Presentation
 
web 2.0 y 3.0
web 2.0 y 3.0web 2.0 y 3.0
web 2.0 y 3.0
 
Papelucho y mi hermana ji
Papelucho y mi hermana jiPapelucho y mi hermana ji
Papelucho y mi hermana ji
 
Fixed Assets for SAP Business One Version 9.0
Fixed Assets for SAP Business One Version 9.0Fixed Assets for SAP Business One Version 9.0
Fixed Assets for SAP Business One Version 9.0
 
Trabajando el rotacismo1
Trabajando el rotacismo1Trabajando el rotacismo1
Trabajando el rotacismo1
 
Iowa, anticipo de Clinton contra Rubio en otoño, de Alexandre Muns - Cinco Días
Iowa, anticipo de Clinton contra Rubio en otoño, de Alexandre Muns - Cinco DíasIowa, anticipo de Clinton contra Rubio en otoño, de Alexandre Muns - Cinco Días
Iowa, anticipo de Clinton contra Rubio en otoño, de Alexandre Muns - Cinco Días
 
Orugaglotona 110313141729-phpapp01
Orugaglotona 110313141729-phpapp01Orugaglotona 110313141729-phpapp01
Orugaglotona 110313141729-phpapp01
 
TOWNBRIDGE UPDATED CV
TOWNBRIDGE UPDATED CVTOWNBRIDGE UPDATED CV
TOWNBRIDGE UPDATED CV
 
AMA Chapter Plan 2015-2016
AMA Chapter Plan 2015-2016AMA Chapter Plan 2015-2016
AMA Chapter Plan 2015-2016
 

Semelhante a Continu

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
 
[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
 
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?alexandre freire
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
GitHub Boas Práticas
GitHub Boas PráticasGitHub Boas Práticas
GitHub Boas PráticasCDS
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com HudsonLuis Reis
 
Estratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocdEstratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocdWalmyr Lima e Silva Filho
 
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDEPráticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDESandro Andrade
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Fabiano Weimar
 
Equipes de sucesso final
Equipes de sucesso finalEquipes de sucesso final
Equipes de sucesso finalPaulo Mattos
 
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)elliando dias
 
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoMinicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoVinicius Quaiato
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance RailsVitor Pellegrino
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...tdc-globalcode
 
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
 

Semelhante a Continu (20)

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
 
[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
 
TDC 2018
TDC 2018TDC 2018
TDC 2018
 
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
 
Bier Godiva
Bier GodivaBier Godiva
Bier Godiva
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
GitHub Boas Práticas
GitHub Boas PráticasGitHub Boas Práticas
GitHub Boas Práticas
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
 
Times plataforma-tdc2020
Times plataforma-tdc2020Times plataforma-tdc2020
Times plataforma-tdc2020
 
ECOMASJOR
ECOMASJORECOMASJOR
ECOMASJOR
 
Estratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocdEstratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocd
 
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDEPráticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDE
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
Equipes de sucesso final
Equipes de sucesso finalEquipes de sucesso final
Equipes de sucesso final
 
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)
 
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoMinicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance Rails
 
Alm open source
Alm open sourceAlm open source
Alm open source
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
 
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
 

Continu