Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

54
globo .com Um Olhar Ágil sobre nosso dia-a-dia Rodrigo Veiga Agilidade Recife - 2013

description

Palestra Apresentada no evento "Agilidade Recife", em 05/dez/2013. Um panorama apresentando as principais práticas ágeis que utilizamos em nossas equipes. Procurarei abordar, por exemplo, como tratamos a integração contínua, qual é nosso fluxo de deploy, como mapeamos nossos processos, que métricas utilizamos, de que forma é feita a integração com UX, entre outros tópicos.

Transcript of Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Page 1: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

globo.comUm Olhar Ágil sobre nosso dia-a-dia

Rodrigo Veiga Agilidade Recife - 2013

Page 2: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Rodrigo Veiga- Tecnologia - Globo.com - Globoesporte.com - ... BBB, Ego, G1, etc ...

- PUC-Rio- Ibmec

- @rveiga (twitter)- @rveigabr (facebook)- @rodrigovega (linkedin)

Page 3: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

‣ +-30 times

‣ +-350 (DEVs + OPs)

‣ Desafio: volume de acesso

‣ 154M Votos (Paredão BBB)

‣ 500K Votos/min

‣ 60K sessões simultâneas (CartolaFC)

2013

Page 4: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Agilidade

Movimentos Rápidos

+

Melhoria Contínua

Page 5: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Agilidade‣ Automatizar (sempre que possível)

‣ Acelerar os feedbacks

‣ Tornar visíveis os problemas

‣ Aprender continuamente

‣ Pensar simples

Page 6: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia
Page 7: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia
Page 8: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Integração Contínua (CI)Acelerar o Feedback

Page 9: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

CI - Globoesporte.comExemplo: Tabela do Brasileirão

Page 10: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

API de Busca

CI - Globoesporte.comExemplo: Tabela do Brasileirão

Page 11: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

API de Busca

API de classificação, dados estatísticos

CI - Globoesporte.comExemplo: Tabela do Brasileirão

Page 12: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

API de Busca

API de classificação, dados estatísticos

Integração com servidor de ADs

CI - Globoesporte.comExemplo: Tabela do Brasileirão

Page 13: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

API de Busca

API de classificação, dados estatísticos

Integração com servidor de ADs

Plataforma Interna CMS

CI - Globoesporte.comExemplo: Tabela do Brasileirão

Page 14: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

API de Busca

API de classificação, dados estatísticos

Integração com servidor de ADs

Plataforma Interna CMS

API de Vídeos (stream)

CI - Globoesporte.comExemplo: Tabela do Brasileirão

Page 15: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

API de Busca

API de classificação, dados estatísticos

Integração com servidor de ADs

Plataforma Interna CMS

API de Vídeos (stream)

Recuperação de Dados (relacional, semântico)

CI - Globoesporte.comExemplo: Tabela do Brasileirão

Page 16: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

API de Busca

API de classificação, dados estatísticos

Integração com servidor de ADs

Plataforma Interna CMS

API de Vídeos (stream)

Recuperação de Dados (relacional, semântico)

Como garantir que algo não vai quebrar?

CI - Globoesporte.comExemplo: Tabela do Brasileirão

Page 17: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Testes unitários, funcionais, javascript, code-conventions

CIs Integradas entre as dependências

Testes Visuais, Testes Crossbrowser

Testes de Performance

Validações de SEO

CI - Globoesporte.com

Page 18: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Mudança de Cultura Coragem

Código pouco testável Refactoring

Testes Mal-escritos Atomicidade

Alto Tempo de Execução do Build Paralelização

Custo de Manutenção Regra de Pareto (80% x 20%)

Cobertura do Legado “Precisou mexer, cria o teste”

Dependências entre projetos CIs Integradas

CI - dificuldades X ações

Page 19: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Deployment

Page 20: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Local Dev QA1 QA2 Staging Prod

Deployment Pipeline

Page 21: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Deployment - Técnicas‣ Testes de Infraestrutura (TDI)

‣ Feature Toggle (Ferramenta)

‣ Blue-Green Deployment

‣ DB Migrations

‣ Antecipar o deploy para Produção

‣ Dashboard de versões

Page 22: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Deployment - Técnicas‣ Testes de Infraestrutura (TDI)

‣ Feature Toggle (Ferramenta)

‣ Blue-Green Deployment

‣ DB Migrations

‣ Antecipar o deploy para Produção

‣ Dashboard de versões

Em busca de Continuous Delivery

Page 23: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

‣ Curva de aprendizado (TDI)

‣ Fidedignidade entre ambientes

‣ Tempo de Execução do Deploy

‣ Momentos de pico

‣ Várias equipes no mesmo projeto

‣ Baixa Confiança entre dev e ops

Deployment - dificuldades

Page 24: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Processo

Page 25: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

prescritivo adaptativo

Scrum Kanban

Page 26: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Scrum Kanban

maior maturidade

menor maturidade

times

prescritivo adaptativo

Page 27: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Scrum Kanban

maior maturidade

menor maturidade

times

prescritivo adaptativo

movimento nos últimos anos

Page 28: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Scrum Kanban

maior maturidade

menor maturidade

timesprescritivo adaptativo

Page 29: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

‣ Iterações

‣ 1 semana

‣ 2-4 hours meetings

‣ Quadros analógicos

‣ Kanban Flow

‣ Working Agreements

‣ Pace Trimestral

‣ Big Review

‣ Hackday

Processo

Iterações1 semana2-4 hours meetingsFeedback do Cliente - Produção

Quadros FísicosKanban Flow

Definition of “XPTO”Sketches

Cadência TrimestralRevisão de metasBig ReviewHackday

A3Issues

IndicadoresPlanejamento

Page 30: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

‣ Backlog Ready

‣ # de Bugs em Produção

‣ # de Janelas com Sucesso, sem Sucesso

‣ Release Burndown

‣ Cycle Time, Lead Time

‣ # de Histórias abertas

Processo - indicadores

Page 31: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Processo | DEV + UX

‣ “Design Studio” / “Sketchboarding” / “Brainstorming”

‣ Low fidelity x High Fidelity

‣ Ponto Ótimo de Antecipação

‣ Menos Previsibilidade

‣ Hipóteses

Page 32: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Processo | DEV + UX

‣ “Design Studio” / “Sketchboarding” / “Brainstorming”

‣ Low fidelity x High Fidelity

‣ Ponto Ótimo de Antecipação

‣ Menos Previsibilidade

‣ Hipóteses

Em Busca de Lean UX

Page 33: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Lean Startup Mindset

Page 34: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia
Page 35: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia
Page 36: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia
Page 37: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

SOMOS UMA START-UP?

Page 38: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

SOMOS UMA START-UP?

“Uma instituição humana projetada para criar novos produtos e serviços sob condições de extrema incerteza.”

Eric Ries

Page 39: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

SOMOS UMA START-UP?

“Uma instituição humana projetada para criar novos produtos e serviços sob condições de extrema incerteza.”

Sim, somos uma start-up!

Então, que práticas podemos trazer para o dia-a-dia?

Eric Ries

Page 40: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Feature Fake

Page 41: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Feature Fake

Page 42: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

USABILITYHUB.COM

Page 43: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia
Page 44: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia
Page 45: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Split Tests (A/B)

Social Reader - G1

Page 46: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Done: Definição Ágil

.... ACCEPTED....

Page 47: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Done: Definição Lean Startup

.... ACCEPTED VALIDATED

Page 48: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Lean Startup MindsetIntegração Contínua

Minimizar o custo de Deployment Scrum / Kanban

Lean UX

Code Review

Incentivo ao Open Source

Pair-Programming+ Perto do Cliente

Movimentos Rápidos + Melhoria Contínua

Agilidade

TDD BDD

Page 49: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Lean Startup MindsetIntegração Contínua

Minimizar o custo de Deployment Scrum / Kanban

Lean UX

Code Review

Incentivo ao Open Source

Pair-Programming+ Perto do Cliente

Agilidade = Vantagem Competitiva

Movimentos Rápidos + Melhoria Contínua

TDD BDD

Page 50: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

globo.comUm Olhar Ágil sobre nosso dia-a-dia

Rodrigo [email protected]

Agilidade Recife - 2013

Page 51: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia
Page 52: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

A3 Problem SolvingThe Toyota Way - http://www.amazon.com/Toyota-Way-Management-Principles-Manufacturer-ebookhttp://www.coe.montana.edu/ie/faculty/sobek/A3/

Backlog Readyhttp://blog.xebia.com/2009/07/04/flow-to-ready-iterate-to-done/

Blue-Green Deploymenthttp://martinfowler.com/bliki/BlueGreenDeployment.html

Continuous Deliveryhttp://www.thoughtworks.com/continuous-delivery

DB Migrationshttp://www.yiiframework.com/doc/guide/1.1/en/database.migration

Feature Togglehttp://martinfowler.com/bliki/FeatureToggle.html

Feature Fakehttp://www.industriallogic.com/blog/fast-frugal-learning-with-a-feature-fake/

Referências

Page 53: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Hack Dayhttp://en.wikipedia.org/wiki/Hackathonhttps://www.atlassian.com/company/about/shipit

Information Radiatorhttp://alistair.cockburn.us/Information+radiator

Lead Time e Cycle Timehttp://leanandkanban.wordpress.com/2009/04/18/lead-time-vs-cycle-time/

Lean Startup - Eric Rieshttp://theleanstartup.com/

OpenSource.globo.comhttp://opensource.globo.com/

Paretohttp://en.wikipedia.org/wiki/Pareto_principle

Release Burndownhttp://www.mountaingoatsoftware.com/agile/scrum/release-burndown

Scrum e Kanbanhttp://www.crisp.se/file-uploads/Kanban-vs-Scrum.pdf

Referências

Page 54: Globo.com - Um Olhar Ágil sobre nosso dia-a-dia

Test-Driven Infrastructurehttp://www.ibm.com/developerworks/opensource/library/a-devops5/index.html

Testes A/Bhttp://pt.wikipedia.org/wiki/Teste_A/B

UsabilityHub (crowd usability tests)http://www.usabilityhub.com

Créditos de Fotoshttp://www.flickr.com/photos/ugglemamma/7662125960/sizes/o/in/photostream/http://www.flickr.com/photos/re_birf/69485963/sizes/o/in/photostream/http://upload.wikimedia.org/wikipedia/commons/2/25/Honda_pit_stop_Malaysia_2008.jpghttp://s3.frank.itlab.us/photo-essays/small/oct_12_1136_loom_silk.jpg

Referências