34
Continuous Delivery Do zero à entrega contínua de software de valor

Continuous Delivery

Embed Size (px)

DESCRIPTION

Palestra de Continuous Delivery ministrada por mim no evento DevCamp 2014.

Citation preview

Page 1: Continuous Delivery

Continuous DeliveryDo zero à entrega contínua de software de valor

Page 2: Continuous Delivery

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

[email protected]

@felipersb

Page 3: Continuous Delivery

3 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

EVOLUÇÃO DAS APLICAÇÕES

Page 4: Continuous Delivery

4 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

EVOLUÇÃO DAS APLICAÇÕES

MAINFRAME

Page 5: Continuous Delivery

5 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

EVOLUÇÃO DAS APLICAÇÕES

CLIENT/SERVER

Page 6: Continuous Delivery

6 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

EVOLUÇÃO DAS APLICAÇÕES

WEB

Page 7: Continuous Delivery

7 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

EVOLUÇÃO DAS APLICAÇÕES

WEB 2.0 ...

Page 8: Continuous Delivery

8 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

EVOLUÇÃO DAS APLICAÇÕES

WEB 2.0 ...

Page 9: Continuous Delivery

9 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

DINAMISMO DOS NEGÓCIOS

Page 10: Continuous Delivery

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

Page 11: 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.

Page 12: Continuous Delivery

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

Page 13: Continuous Delivery

13 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Extreme Go HorseEGH

Continuous Delivery – Nível 100

Metodologia

Page 14: Continuous Delivery

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

Page 15: Continuous Delivery

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

Page 16: Continuous Delivery

16 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Definidação da estratégia de branchRelease Branch

Definição de políticas de checkinCode Analysis, Code Metrics, Rastreabilidade, Comentários

Continuous Delivery – Nível 200

Gestão de Fontes / SCM

Page 17: Continuous Delivery

17 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Processo ÁgilSCRUM

Continuous Delivery – Nível 200

Metodologia

Page 18: Continuous Delivery

18 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Automação de BuildBuild noturno

Continuous Delivery – Nível 200

Build Deploy Operate

Page 19: Continuous Delivery

19 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Descoberta das métricas de qualidadeNí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áriosDefinição da 1ª meta do nível de cobertura de testes

Criação de planos e casos de testes funcionaisCobertura dos principais cenários de negócio

Continuous Delivery – Nível 200

Qualidade

Page 20: Continuous Delivery

20 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Continuous IntegrationTodo mundo “comitando” na baseline todo dia

Continuous Delivery – Nível 300

Gestão de Fontes / SCM

Page 21: Continuous Delivery

21 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Processo ágil fluido

Sistemas Complexos AdaptativosMú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

Page 22: Continuous Delivery

22 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Continuous IntegrationGatilho da automação de build

Continuous Delivery – Nível 300

Build Deploy Operate

Page 23: Continuous Delivery

23 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Avaliação contínua das métricas de qualidadeMaintainability Index, nível de cobertura de testes automatizados

Automação dos casos de testesTestes de interface automatizados

Continuous Delivery – Nível 300

Qualidade

Page 24: Continuous Delivery

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

Page 25: Continuous Delivery

25 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

KanbanMais 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.0energize, empower, align constraints, develop competences, grow, improve

Continuous Delivery – Nível 400

Metodologia

Page 26: Continuous Delivery

26 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Continuous DeploymentDistribuição automatizada para ambientes de homologação através

da integração contínua

Build Test DeployGerenciamento automático dos ambientes de teste

One-click Deploypara ambiente de produção

Continuous Delivery – Nível 400

Build Deploy Operate

Page 27: Continuous Delivery

27 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Continuous FeedbackTDD, Pair Programming, Code Review, User Feedback

Análise de Impacto

Continuous Delivery – Nível 400

Qualidade

Page 28: Continuous Delivery

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 FlagsOff, on, staff, user-list

Users ramp-up0-100%, A/B Test

Continuous Delivery – Nível 500

Gestão de Fontes / SCM

Page 29: Continuous Delivery

29 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

ShuHaRiDesapego

Continuous ImprovmentBuild-Meassure-Learn, Kaizen

FelicidadeHappiness Index, Kudobox, Moving Motivators

Continuous Delivery – Nível 500

Metodologia

Page 30: Continuous Delivery

30 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Continuous DeliveryDistribuição automatizada para ambiente de produção através da

integração contínua

DevOpsMonitoramento de aplicações críticas em produção

Information RadiatorsDashboards e alertas

Continuous Delivery – Nível 500

Build Deploy Operate

Page 31: Continuous Delivery

31 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Definition of Ready + Definition of Done

Quality EnablementSó 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

Page 32: Continuous Delivery

32 | Continuous Delivery – do zero à entrega contínua de software de valor – Felipe Rezende – DevCamp 2014

Continuous Delivery – Nível 500

Qualidade

Page 33: Continuous Delivery

“We don’t optimize for being right. We optimize for

quickly detecting when we’re wrong.”

Kellan Elliott-McCrea, CTO Etsy.com

Page 34: Continuous Delivery

www.esx.com.br

Quer experimentar fazer desse jeito?