Continuous Delivery
Do zero à entrega contínua de software de valor
2 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Sócio da especificacoes.com - Consultoria de ALM - e Sócio-Diretor de
Negócios na esx - empresa focada na entrega contínua de software de valor
através de desenvolvimento de software ágil.
Teve uma carreira em TI passando pelas áreas de desenvolvimento, testes,
requisitos, operação, consultoria de TI e negócio e consultoria em ALM.
Atuou em diversos projetos de clientes de grande porte e complexidade.
Engenheiro de Software formado pela Universidade Federal de Uberlândia, é
MCP (Microsoft Certified Professional) e certificado Scrum Master pela
Scrum.org.
Felipe Rezende – Sócio da esx
felipe.rezende@esx.com.br
@felipersb
3 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
EVOLUÇÃO DAS APLICAÇÕES
4 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
EVOLUÇÃO DAS APLICAÇÕES
MAINFRAME
5 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
EVOLUÇÃO DAS APLICAÇÕES
CLIENT/SERVER
6 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
EVOLUÇÃO DAS APLICAÇÕES
WEB
7 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
EVOLUÇÃO DAS APLICAÇÕES
WEB 2.0 ...
8 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
EVOLUÇÃO DAS APLICAÇÕES
WEB 2.0 ...
9 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
DINAMISMO DOS NEGÓCIOS
10 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Continuous Delivery - Business
Continuous Deployment - TI
Continuous Integration - Dev
CONTINUOUS DELIVERY
11 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Vou contar a história de um time.
Um time normal, de pessoas normais, sem super-heróis!
Um time que só estava afim de fazer algo diferente.
Vou contar o percurso que este time percorreu para sair do zero até alcançar o estado de entrega contínua de software
de valor.
12 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Definição da plataforma de ALM
Estruturação dos fontes no repositório
Continuous Delivery – Nível 100
Gestão de Fontes / SCM
13 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Extreme Go Horse
EGH
Continuous Delivery – Nível 100
Metodologia
14 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Continuous Delivery – Nível 100
Geração manual de builds ( F5 )
Deployment manual
Build Deploy Operate
15 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
La Garantia Soy Yo
Continuous Delivery – Nível 100
Qualidade
16 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Definidação da estratégia de branch
Release Branch
Definição de políticas de checkin
Code Analysis, Code Metrics, Rastreabilidade, Comentários
Continuous Delivery – Nível 200
Gestão de Fontes / SCM
17 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Processo Ágil
SCRUM
Continuous Delivery – Nível 200
Metodologia
18 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Automação de Build
Build noturno
Continuous Delivery – Nível 200
Build Deploy Operate
19 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Descoberta das métricas de qualidade
Nível de cobertura por testes automatizados, análise estática de código, complexidade
ciclomática, profundidade de herança, acoplamento de classes, linhas de código
Início da escrita de testes unitários
Definição da 1ª meta do nível de cobertura de testes
Criação de planos e casos de testes funcionais
Cobertura dos principais cenários de negócio
Continuous Delivery – Nível 200
Qualidade
20 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Continuous Integration
Todo mundo “comitando” na baseline todo dia
Continuous Delivery – Nível 300
Gestão de Fontes / SCM
21 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Processo ágil fluido
Sistemas Complexos Adaptativos
Múltiplas causas por efeito, efeitos opostos, atraso entre causa e efeito
Mais pensamento estatístico / probabilístico, menos pensamento determinístico
Continuous Delivery – Nível 300
Metodologia
22 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Continuous Integration
Gatilho da automação de build
Continuous Delivery – Nível 300
Build Deploy Operate
23 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Avaliação contínua das métricas de qualidade
Maintainability Index, nível de cobertura de testes automatizados
Automação dos casos de testes
Testes de interface automatizados
Continuous Delivery – Nível 300
Qualidade
24 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Gestão madura dos fontes
Continuous Delivery – Nível 400
Gestão de Fontes / SCM
25 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Kanban
Mais gestão de throughput e leadtime, menos gestão de ocupação
Utilização de conceitos como
liquidez, gargalo, sistema puxado, classes de serviços, depreciação,
custo de atraso, LRM (last responsible moment), MTTR (main time to repair)
Management 3.0
energize, empower, align constraints, develop competences, grow, improve
Continuous Delivery – Nível 400
Metodologia
26 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Continuous Deployment
Distribuição automatizada para ambientes de homologação através
da integração contínua
Build Test Deploy
Gerenciamento automático dos ambientes de teste
One-click Deploy
para ambiente de produção
Continuous Delivery – Nível 400
Build Deploy Operate
27 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Continuous Feedback
TDD, Pair Programming, Code Review, User Feedback
Análise de Impacto
Continuous Delivery – Nível 400
Qualidade
28 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Políticas de branch definidas
Estratégia de branch: No Branch
Feature Flags
Off, on, staff, user-list
Users ramp-up
0-100%, A/B Test
Continuous Delivery – Nível 500
Gestão de Fontes / SCM
29 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
ShuHaRi
Desapego
Continuous Improvment
Build-Meassure-Learn, Kaizen
Felicidade
Happiness Index, Kudobox, Moving Motivators
Continuous Delivery – Nível 500
Metodologia
30 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Continuous Delivery
Distribuição automatizada para ambiente de produção através da
integração contínua
DevOps
Monitoramento de aplicações críticas em produção
Information Radiators
Dashboards e alertas
Continuous Delivery – Nível 500
Build Deploy Operate
31 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Definition of Ready + Definition of Done
Quality Enablement
Só comitta com teste unitário, funcional, regressão, code review,
definition of done, acceptance criteria
Eventual teste de carga
Continuous Delivery – Nível 500
Qualidade
32 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014
Continuous Delivery – Nível 500
Qualidade
“We don’t optimize for being right. We optimize for
quickly detecting when we’re wrong.”
Kellan Elliott-McCrea, CTO Etsy.com
www.esx.com.br
Quer experimentar fazer desse jeito?

Continuous Delivery

  • 1.
    Continuous Delivery Do zeroà entrega contínua de software de valor
  • 2.
    2 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Sócio da especificacoes.com - Consultoria de ALM - e Sócio-Diretor de Negócios na esx - empresa focada na entrega contínua de software de valor através de desenvolvimento de software ágil. Teve uma carreira em TI passando pelas áreas de desenvolvimento, testes, requisitos, operação, consultoria de TI e negócio e consultoria em ALM. Atuou em diversos projetos de clientes de grande porte e complexidade. Engenheiro de Software formado pela Universidade Federal de Uberlândia, é MCP (Microsoft Certified Professional) e certificado Scrum Master pela Scrum.org. Felipe Rezende – Sócio da esx felipe.rezende@esx.com.br @felipersb
  • 3.
    3 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 EVOLUÇÃO DAS APLICAÇÕES
  • 4.
    4 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 EVOLUÇÃO DAS APLICAÇÕES MAINFRAME
  • 5.
    5 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 EVOLUÇÃO DAS APLICAÇÕES CLIENT/SERVER
  • 6.
    6 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 EVOLUÇÃO DAS APLICAÇÕES WEB
  • 7.
    7 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 EVOLUÇÃO DAS APLICAÇÕES WEB 2.0 ...
  • 8.
    8 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 EVOLUÇÃO DAS APLICAÇÕES WEB 2.0 ...
  • 9.
    9 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 DINAMISMO DOS NEGÓCIOS
  • 10.
    10 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Continuous Delivery - Business Continuous Deployment - TI Continuous Integration - Dev CONTINUOUS DELIVERY
  • 11.
    11 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Vou contar a história de um time. Um time normal, de pessoas normais, sem super-heróis! Um time que só estava afim de fazer algo diferente. Vou contar o percurso que este time percorreu para sair do zero até alcançar o estado de entrega contínua de software de valor.
  • 12.
    12 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Definição da plataforma de ALM Estruturação dos fontes no repositório Continuous Delivery – Nível 100 Gestão de Fontes / SCM
  • 13.
    13 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Extreme Go Horse EGH Continuous Delivery – Nível 100 Metodologia
  • 14.
    14 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Continuous Delivery – Nível 100 Geração manual de builds ( F5 ) Deployment manual Build Deploy Operate
  • 15.
    15 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 La Garantia Soy Yo Continuous Delivery – Nível 100 Qualidade
  • 16.
    16 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Definidação da estratégia de branch Release Branch Definição de políticas de checkin Code Analysis, Code Metrics, Rastreabilidade, Comentários Continuous Delivery – Nível 200 Gestão de Fontes / SCM
  • 17.
    17 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Processo Ágil SCRUM Continuous Delivery – Nível 200 Metodologia
  • 18.
    18 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Automação de Build Build noturno Continuous Delivery – Nível 200 Build Deploy Operate
  • 19.
    19 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Descoberta das métricas de qualidade Nível de cobertura por testes automatizados, análise estática de código, complexidade ciclomática, profundidade de herança, acoplamento de classes, linhas de código Início da escrita de testes unitários Definição da 1ª meta do nível de cobertura de testes Criação de planos e casos de testes funcionais Cobertura dos principais cenários de negócio Continuous Delivery – Nível 200 Qualidade
  • 20.
    20 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Continuous Integration Todo mundo “comitando” na baseline todo dia Continuous Delivery – Nível 300 Gestão de Fontes / SCM
  • 21.
    21 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Processo ágil fluido Sistemas Complexos Adaptativos Múltiplas causas por efeito, efeitos opostos, atraso entre causa e efeito Mais pensamento estatístico / probabilístico, menos pensamento determinístico Continuous Delivery – Nível 300 Metodologia
  • 22.
    22 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Continuous Integration Gatilho da automação de build Continuous Delivery – Nível 300 Build Deploy Operate
  • 23.
    23 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Avaliação contínua das métricas de qualidade Maintainability Index, nível de cobertura de testes automatizados Automação dos casos de testes Testes de interface automatizados Continuous Delivery – Nível 300 Qualidade
  • 24.
    24 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Gestão madura dos fontes Continuous Delivery – Nível 400 Gestão de Fontes / SCM
  • 25.
    25 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Kanban Mais gestão de throughput e leadtime, menos gestão de ocupação Utilização de conceitos como liquidez, gargalo, sistema puxado, classes de serviços, depreciação, custo de atraso, LRM (last responsible moment), MTTR (main time to repair) Management 3.0 energize, empower, align constraints, develop competences, grow, improve Continuous Delivery – Nível 400 Metodologia
  • 26.
    26 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Continuous Deployment Distribuição automatizada para ambientes de homologação através da integração contínua Build Test Deploy Gerenciamento automático dos ambientes de teste One-click Deploy para ambiente de produção Continuous Delivery – Nível 400 Build Deploy Operate
  • 27.
    27 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Continuous Feedback TDD, Pair Programming, Code Review, User Feedback Análise de Impacto Continuous Delivery – Nível 400 Qualidade
  • 28.
    28 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Políticas de branch definidas Estratégia de branch: No Branch Feature Flags Off, on, staff, user-list Users ramp-up 0-100%, A/B Test Continuous Delivery – Nível 500 Gestão de Fontes / SCM
  • 29.
    29 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 ShuHaRi Desapego Continuous Improvment Build-Meassure-Learn, Kaizen Felicidade Happiness Index, Kudobox, Moving Motivators Continuous Delivery – Nível 500 Metodologia
  • 30.
    30 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Continuous Delivery Distribuição automatizada para ambiente de produção através da integração contínua DevOps Monitoramento de aplicações críticas em produção Information Radiators Dashboards e alertas Continuous Delivery – Nível 500 Build Deploy Operate
  • 31.
    31 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Definition of Ready + Definition of Done Quality Enablement Só comitta com teste unitário, funcional, regressão, code review, definition of done, acceptance criteria Eventual teste de carga Continuous Delivery – Nível 500 Qualidade
  • 32.
    32 | ContinuousDelivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014 Continuous Delivery – Nível 500 Qualidade
  • 33.
    “We don’t optimizefor being right. We optimize for quickly detecting when we’re wrong.” Kellan Elliott-McCrea, CTO Etsy.com
  • 34.