Upload
rodrigo-veiga
View
593
Download
5
Embed Size (px)
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.
Citation preview
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
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