globo
.com

Um Olhar Ágil sobre
nosso dia-a-dia
Rodrigo Veiga
Agilidade Recife - 2013
Rodrigo Veiga
- Tecnologia - Globo.com
- Globoesporte.com
- ... BBB, Ego, G1, etc ...
- PUC-Rio
- Ibmec
- @rveiga (twitter)
- @rveigabr (facebook)
- @rodrigovega (linkedin)
2013
‣

+-30 times

‣

+-350 (DEVs + OPs)

‣

Desafio: volume de acesso
‣

154M Votos (Paredão BBB)

‣

500K Votos/min

‣

60K sessões simultâneas (CartolaFC)
Agilidade
Movimentos
Rápidos
+
Melhoria
Contínua
Agilidade
‣

Automatizar (sempre que possível)

‣

Acelerar os feedbacks

‣

Tornar visíveis os problemas

‣

Aprender continuamente

‣

Pensar simples
Integração Contínua (CI)
Acelerar o Feedback
CI - Globoesporte.com
Exemplo:Tabela do Brasileirão
CI - Globoesporte.com
Exemplo:Tabela do Brasileirão
API de Busca
CI - Globoesporte.com
Exemplo:Tabela do Brasileirão
API de Busca
API de classificação, dados estatísticos
CI - Globoesporte.com
Exemplo:Tabela do Brasileirão
API de Busca
API de classificação, dados estatísticos
Integração com servidor de ADs
CI - Globoesporte.com
Exemplo:Tabela do Brasileirão
API de Busca
API de classificação, dados estatísticos
Integração com servidor de ADs
Plataforma Interna CMS
CI - Globoesporte.com
Exemplo:Tabela do Brasileirão
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.com
Exemplo:Tabela do Brasileirão
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.com
Exemplo:Tabela do Brasileirão
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.com
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 - dificuldades X ações
Mudança de Cultura
Código pouco testável

Coragem
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
Deployment
Deployment Pipeline
Local

Dev

QA1

QA2

Staging

Prod
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
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
Deployment - dificuldades
‣

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
Processo
prescritivo

adaptativo
Scrum

Kanban
maior maturidade

prescritivo

adaptativo
Scrum

Kanban

times
menor maturidade
maior maturidade

movimento nos
últimos anos

prescritivo

adaptativo
Scrum

Kanban

times
menor maturidade
maior maturidade

times
prescritivo

adaptativo
Scrum

Kanban

menor maturidade
Processo
Iterações
1 semana
2-4 hours meetings
Feedback do Cliente - Produção

Cadência Trimestral
Revisão de metas
Big Review
Hackday

Quadros Físicos
Kanban Flow
Definition of “XPTO”
Sketches

A3
Issues
Indicadores
Planejamento
Processo - indicadores
‣

Backlog Ready

‣

# de Bugs em Produção

‣

# de Janelas com Sucesso, sem Sucesso

‣

Release Burndown

‣

Cycle Time, Lead Time

‣

# de Histórias abertas
Processo | DEV + UX
‣

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

‣

Low fidelity x High Fidelity

‣

Ponto Ótimo de Antecipação

‣

Menos Previsibilidade

‣

Hipóteses
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
Lean Startup Mindset
SOMOS UMA START-UP?
SOMOS UMA START-UP?
“Uma instituição humana projetada para
criar novos produtos e serviços sob
condições de extrema incerteza.”
Eric Ries
SOMOS UMA START-UP?
“Uma instituição humana projetada para
criar novos produtos e serviços sob
condições de extrema incerteza.”
Eric Ries

Sim, somos uma start-up!
Então, que práticas podemos trazer para o dia-a-dia?
Feature Fake
Feature Fake
USABILITYHUB.COM
Split Tests (A/B)

Social Reader - G1
Done:
Definição Ágil
....

....

ACCEPTED
Done:
Definição Lean Startup
....

ACCEPTED

VALIDATED
Integração Contínua Lean UX

Lean Startup Mindset

Minimizar o custo de Deployment

Scrum / Kanban

Code Review

Pair-Programming

+ Perto do Cliente

Incentivo ao Open Source

TDD

BDD

Movimentos Rápidos + Melhoria Contínua

Agilidade
Integração Contínua Lean UX

Lean Startup Mindset

Minimizar o custo de Deployment

Scrum / Kanban

Code Review

Pair-Programming

+ Perto do Cliente

Incentivo ao Open Source

TDD

BDD

Movimentos Rápidos + Melhoria Contínua

Agilidade = Vantagem Competitiva
globo
.com

Um Olhar Ágil sobre
nosso dia-a-dia
Rodrigo Veiga
rveiga@corp.globo.com
Agilidade Recife - 2013
Referências
A3 Problem Solving
The Toyota Way - http://www.amazon.com/Toyota-Way-Management-Principles-Manufacturer-ebook
http://www.coe.montana.edu/ie/faculty/sobek/A3/
Backlog Ready
http://blog.xebia.com/2009/07/04/flow-to-ready-iterate-to-done/
Blue-Green Deployment
http://martinfowler.com/bliki/BlueGreenDeployment.html
Continuous Delivery
http://www.thoughtworks.com/continuous-delivery
DB Migrations
http://www.yiiframework.com/doc/guide/1.1/en/database.migration
Feature Toggle
http://martinfowler.com/bliki/FeatureToggle.html
Feature Fake
http://www.industriallogic.com/blog/fast-frugal-learning-with-a-feature-fake/
Referências
Hack Day
http://en.wikipedia.org/wiki/Hackathon
https://www.atlassian.com/company/about/shipit
Information Radiator
http://alistair.cockburn.us/Information+radiator
Lead Time e Cycle Time
http://leanandkanban.wordpress.com/2009/04/18/lead-time-vs-cycle-time/
Lean Startup - Eric Ries
http://theleanstartup.com/
OpenSource.globo.com
http://opensource.globo.com/
Pareto
http://en.wikipedia.org/wiki/Pareto_principle
Release Burndown
http://www.mountaingoatsoftware.com/agile/scrum/release-burndown
Scrum e Kanban
http://www.crisp.se/file-uploads/Kanban-vs-Scrum.pdf
Referências
Test-Driven Infrastructure
http://www.ibm.com/developerworks/opensource/library/a-devops5/
index.html
Testes A/B
http://pt.wikipedia.org/wiki/Teste_A/B
UsabilityHub (crowd usability tests)
http://www.usabilityhub.com
Créditos de Fotos
http://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.jpg
http://s3.frank.itlab.us/photo-essays/small/oct_12_1136_loom_silk.jpg

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