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

Post on 26-May-2015

591 views 5 download

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

globo.comUm 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)

‣ +-30 times

‣ +-350 (DEVs + OPs)

‣ Desafio: volume de acesso

‣ 154M Votos (Paredão BBB)

‣ 500K Votos/min

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

2013

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.comExemplo: Tabela do Brasileirão

API de Busca

CI - Globoesporte.comExemplo: Tabela do Brasileirão

API de Busca

API de classificação, dados estatísticos

CI - Globoesporte.comExemplo: Tabela do Brasileirão

API de Busca

API de classificação, dados estatísticos

Integração com servidor de ADs

CI - Globoesporte.comExemplo: 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.comExemplo: 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.comExemplo: 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.comExemplo: 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.comExemplo: Tabela do Brasileirão

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

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

Deployment

Local Dev QA1 QA2 Staging Prod

Deployment Pipeline

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

‣ 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

Processo

prescritivo adaptativo

Scrum Kanban

Scrum Kanban

maior maturidade

menor maturidade

times

prescritivo adaptativo

Scrum Kanban

maior maturidade

menor maturidade

times

prescritivo adaptativo

movimento nos últimos anos

Scrum Kanban

maior maturidade

menor maturidade

timesprescritivo adaptativo

‣ 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

‣ 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

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.”

Sim, somos uma start-up!

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

Eric Ries

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

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

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

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

Rodrigo Veigarveiga@corp.globo.com

Agilidade Recife - 2013

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

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

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