Integração entre times e o desafio de 
desenvolver uma aplicação 
Scrum Gathering Rio 2014
2 
Victor 
Pantoja 
Engenheiro Eletrônico e de Computação pela 
UFRJ e mestre em Informática pela PUC-Rio, 
possuo mais de...
Background 
4 Times Ágeis com 3 a 4 dev + 1 Infra + 1 DBA 
+ SM + 1 PO 
Python / Django 
3
Alguns números 
Visitantes únicos: 20,7 milhões por mês 
Visitas: 215 milhões por mês 
8 milhões de visitas por dia! 
4
Cenário 2011 
5 
1 time trabalhando no 
globoesporte.com e, 
depois, no sportv.com
6
Mudanças 
7 
1 time trabalhando no 
globoesporte.com + 
Combate + Eu Atleta ao 
mesmo tempo
Mudanças 
8 
1 time trabalhando no 
globoesporte.com 
1 time trabalhando no 
SporTV 
1 time trabalhando em 
Classificação ...
Tragédia 
Anunciada 
9
10
11
Diálogo 
Reuniões periódicas para: 
-falar sobre o que cada 
time está fazendo 
-identificar pontos de 
sobreposição de 
t...
Segregação do 
Código 
-havia uma quantidade (pequena) de 
bugs introduzidos em código alheio 
-isolamento do código legad...
Integração Antecipada de 
Código 
14 
Objetivo: descobrir o 
problema antes que 
ele chegue em 
produção
Integração Antecipada de 
Código 
- ambiente de desenvolvimento local + 
DEV0[1-4] + QA1 + Staging + PROD 
- estava se tor...
Integração Antecipada de 
Código 
- perguntar se alguém usa certo trecho 
de código se mostrou bastante 
ineficiente pelo ...
Isolamento dos 
Testes 
- o objetivo é garantir que o código da 
app está bem isolado 
- isolamento de testes através de u...
Mudar Tudo 
Novamente! 
Mude sempre! 
18
Palavra Final 
19 
Comunicação é a 
chave!
Perguntas!! 
@victorpantoja 
victor.pantoja@gmail.com 
20
Próximos SlideShares
Carregando em…5
×

Scrum Gathering Rio 2014

715 visualizações

Publicada em

Nessa apresentação, eu falo sobre como 3 times (cerca de 12 desenvolvedores) conseguem trabalhar na mesma básica de código sem gerar bugs e entregar o globoesporte.com

Scrum Gathering Rio 2014

  1. 1. Integração entre times e o desafio de desenvolver uma aplicação Scrum Gathering Rio 2014
  2. 2. 2 Victor Pantoja Engenheiro Eletrônico e de Computação pela UFRJ e mestre em Informática pela PUC-Rio, possuo mais de 9 anos de experiência desenvolvendo grandes sites focados no usuário. Scrum Master da área de aplicações móveis (before it was cool) de 2007 a 2008. Atualmente, sou desenvolvedor web sênior no globoesporte.com, o maior site de esportes do Brasil e o site oficial da Copa do Mundo FIFA Brasil 2014.
  3. 3. Background 4 Times Ágeis com 3 a 4 dev + 1 Infra + 1 DBA + SM + 1 PO Python / Django 3
  4. 4. Alguns números Visitantes únicos: 20,7 milhões por mês Visitas: 215 milhões por mês 8 milhões de visitas por dia! 4
  5. 5. Cenário 2011 5 1 time trabalhando no globoesporte.com e, depois, no sportv.com
  6. 6. 6
  7. 7. Mudanças 7 1 time trabalhando no globoesporte.com + Combate + Eu Atleta ao mesmo tempo
  8. 8. Mudanças 8 1 time trabalhando no globoesporte.com 1 time trabalhando no SporTV 1 time trabalhando em Classificação / Tabelas O mesmo código ao mesmo tempo!
  9. 9. Tragédia Anunciada 9
  10. 10. 10
  11. 11. 11
  12. 12. Diálogo Reuniões periódicas para: -falar sobre o que cada time está fazendo -identificar pontos de sobreposição de trabalho -discutir novas tecnologias -melhorar nosso processo 12 de trabalho
  13. 13. Segregação do Código -havia uma quantidade (pequena) de bugs introduzidos em código alheio -isolamento do código legado Isolamento do código através de apps django 13
  14. 14. Integração Antecipada de Código 14 Objetivo: descobrir o problema antes que ele chegue em produção
  15. 15. Integração Antecipada de Código - ambiente de desenvolvimento local + DEV0[1-4] + QA1 + Staging + PROD - estava se tornando comum quebrar o código do colega ao lado e só perceber isso no último momento 15
  16. 16. Integração Antecipada de Código - perguntar se alguém usa certo trecho de código se mostrou bastante ineficiente pelo tamanho do projeto - solução: ambiente único de integração continua executando a última versão de todas as apps - coordenação dos releases 16
  17. 17. Isolamento dos Testes - o objetivo é garantir que o código da app está bem isolado - isolamento de testes através de um settings no projeto que faz referência apenas para a app em questão - grau de acoplamento deve ser visto caso a caso. Utilizar os recursos da 17 própria linguagem para isso é uma boa abordagem
  18. 18. Mudar Tudo Novamente! Mude sempre! 18
  19. 19. Palavra Final 19 Comunicação é a chave!
  20. 20. Perguntas!! @victorpantoja victor.pantoja@gmail.com 20

×