Continuous Delivery

do zero à entrega contínua de software de
                  valor
Márcio Sete
                                                                             Diretor de negócios e alianças na especificacoes.com,
                                                                             empresa focada na entrega contínua de valor,
                                                                             responsável pelos principais projetos de ALM do Brasil.
                                                                             Se dedica à melhoria da industria de software no Brasil,
                                                                             disseminando práticas ágeis e processos maduros de
                                                                             ALM, focados na entrega contínua de software de valor.
                                                                             Foi reconhecido Microsoft MVP, na competência Visual
                                                                             Studio ALM em 2010, 2011 e 2012.
                                                                             Scrum Developer Trainer pela Scrum.org 2010/2011,
    marcio.sete@especificacoes.com                                           agora pela ScrumAlliance 2012/2013.
    @marciosete




2   | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
Principais clientes




3   | Continuous Deployment – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
Continuous Delivery – Nível 100
        FONTES                                                                                        AUTOMAÇÃO
        • Fontes estruturados no repositório                                                          • Geração manual de builds
        • Políticas de branch definidas
        • Versionamento de código




        METODOLOGIA                                                                                   QUALIDADE
        • Caos                                                                                        • La Garantia soy yo




4   | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
Continuous Delivery – Nível 200
        FONTES                                                                                        AUTOMAÇÃO
        • Fontes estruturados no repositório                                                          • Geração manual de builds
        • Políticas de branch definidas                                                               • Automação de Build com integração contínua
        • Versionamento de código
        • Definição de politicas de Checkin
        • Rastreabilidade com outros artefatos
        • Compliance com padrão de codificação
        • Padrões de Arquitetura                                                                      QUALIDADE
                                                                                                      • Avaliação das métricas de qualidade
                                                                                                      • Início da escrita de testes unitários
        METODOLOGIA                                                                                   • Definição do nível de cobertura de testes
        • Processo Prescritivo                                                                        • Criação dos planos e casos de testes
        • Processo Ágil


5   | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
Continuous Delivery – Nível 300
        FONTES                                                                                        AUTOMAÇÃO
        • Gestão madura dos fontes                                                                    • Distribuição automatizada para ambientes de
        • Padrões de Arquitetura                                                                        homologação e pré-produção através da integração
        • Arquitetura Emergente                                                                         contínua
                                                                                                      • Distribuição automatizada para ambiente de
        METODOLOGIA                                                                                     produção através de gatilho manual
        • Processo Prescritivo
        • Processo ágil fluido                                                                        QUALIDADE
        • Alta maturidade em estimativa e planejamento ágil,                                          • Acompanhamento contínuo da cobertura de testes
          com priorização baseada em ROI                                                              • Avaliação contínua das métricas de qualidade
        • Gerenciamento de Work in Process                                                            • Desenvolvimento orientado a testes
        • Utilização de conceitos como custo do atraso, LRM                                           • Planos e casos de testes extensivos e automatizados
          (last responsible moment), MTTR (main time to                                               • Code Review
          repair), ATDD
                                                                                                      • Análise de Impacto
        • Continuous Feedback
6   | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
Continuous Delivery – Nível 400
        FONTES                                                                                        AUTOMAÇÃO
        • Gestão madura dos fontes                                                                    • Distribuição automatizada para ambiente de
        • Arquitetura Emergente                                                                         produção através da integração contínua
        • Políticas de branch definidas                                                               • Monitoramento de aplicações críticas em produção
        • Estratégia de branch: No branch ou branch por                                               • Gerenciamento automático dos ambientes de teste
          abstração                                                                                   • Dashboards e altertas
        • Commit to trunk
        • Config Flags, conhecido como Feature Flags                                                  QUALIDADE
        • Users ramp-up                                                                               • Só comitta com teste unitário, funcional, regreção,
        • Off, on, staff, user-list, 0-100%                                                             code review, definition of done, acceptance criteria
                                                                                                      • Eventual teste de stress
        METODOLOGIA
        • Desapego
        • ShuHaRi

7   | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
Caso Etsy.com




8   | Continuous Deployment – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
Mudanças pequenas e frequentes
Constantemente integradas em produção
    Mais de 30 deployments por dia
Caramba... 30 deployments por dia???
Como você constrói funcionalidades tão rápido?
Software Deploy ≠Product Launch
Destribua continuamente
seguro pelas flags de configuração

        (“dark” releases)
13 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
14 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
15 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
16 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
17 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
18 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
“We don’t optimize for being right. We optimize
  for quickly detecting when we’re wrong.”

         Kellan Elliott-McCrea, CTO
www.especificacoes.com

Continuous Delivery

  • 1.
    Continuous Delivery do zeroà entrega contínua de software de valor
  • 2.
    Márcio Sete Diretor de negócios e alianças na especificacoes.com, empresa focada na entrega contínua de valor, responsável pelos principais projetos de ALM do Brasil. Se dedica à melhoria da industria de software no Brasil, disseminando práticas ágeis e processos maduros de ALM, focados na entrega contínua de software de valor. Foi reconhecido Microsoft MVP, na competência Visual Studio ALM em 2010, 2011 e 2012. Scrum Developer Trainer pela Scrum.org 2010/2011, marcio.sete@especificacoes.com agora pela ScrumAlliance 2012/2013. @marciosete 2 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 3.
    Principais clientes 3 | Continuous Deployment – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 4.
    Continuous Delivery –Nível 100 FONTES AUTOMAÇÃO • Fontes estruturados no repositório • Geração manual de builds • Políticas de branch definidas • Versionamento de código METODOLOGIA QUALIDADE • Caos • La Garantia soy yo 4 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 5.
    Continuous Delivery –Nível 200 FONTES AUTOMAÇÃO • Fontes estruturados no repositório • Geração manual de builds • Políticas de branch definidas • Automação de Build com integração contínua • Versionamento de código • Definição de politicas de Checkin • Rastreabilidade com outros artefatos • Compliance com padrão de codificação • Padrões de Arquitetura QUALIDADE • Avaliação das métricas de qualidade • Início da escrita de testes unitários METODOLOGIA • Definição do nível de cobertura de testes • Processo Prescritivo • Criação dos planos e casos de testes • Processo Ágil 5 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 6.
    Continuous Delivery –Nível 300 FONTES AUTOMAÇÃO • Gestão madura dos fontes • Distribuição automatizada para ambientes de • Padrões de Arquitetura homologação e pré-produção através da integração • Arquitetura Emergente contínua • Distribuição automatizada para ambiente de METODOLOGIA produção através de gatilho manual • Processo Prescritivo • Processo ágil fluido QUALIDADE • Alta maturidade em estimativa e planejamento ágil, • Acompanhamento contínuo da cobertura de testes com priorização baseada em ROI • Avaliação contínua das métricas de qualidade • Gerenciamento de Work in Process • Desenvolvimento orientado a testes • Utilização de conceitos como custo do atraso, LRM • Planos e casos de testes extensivos e automatizados (last responsible moment), MTTR (main time to • Code Review repair), ATDD • Análise de Impacto • Continuous Feedback 6 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 7.
    Continuous Delivery –Nível 400 FONTES AUTOMAÇÃO • Gestão madura dos fontes • Distribuição automatizada para ambiente de • Arquitetura Emergente produção através da integração contínua • Políticas de branch definidas • Monitoramento de aplicações críticas em produção • Estratégia de branch: No branch ou branch por • Gerenciamento automático dos ambientes de teste abstração • Dashboards e altertas • Commit to trunk • Config Flags, conhecido como Feature Flags QUALIDADE • Users ramp-up • Só comitta com teste unitário, funcional, regreção, • Off, on, staff, user-list, 0-100% code review, definition of done, acceptance criteria • Eventual teste de stress METODOLOGIA • Desapego • ShuHaRi 7 | Continuous Delivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 8.
    Caso Etsy.com 8 | Continuous Deployment – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 9.
    Mudanças pequenas efrequentes Constantemente integradas em produção Mais de 30 deployments por dia
  • 10.
    Caramba... 30 deploymentspor dia??? Como você constrói funcionalidades tão rápido?
  • 11.
  • 12.
    Destribua continuamente seguro pelasflags de configuração (“dark” releases)
  • 13.
    13 | ContinuousDelivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 14.
    14 | ContinuousDelivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 15.
    15 | ContinuousDelivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 16.
    16 | ContinuousDelivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 17.
    17 | ContinuousDelivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 18.
    18 | ContinuousDelivery – do zero à entrega contínua de software de valor – Márcio Sete – 3o Agile Talk BH
  • 19.
    “We don’t optimizefor being right. We optimize for quickly detecting when we’re wrong.” Kellan Elliott-McCrea, CTO
  • 20.