ci + cs - integração contínua e seus benefícios nos projetos da concrete solutions

29
Criamos produtos digitais de sucesso. Leandro Moraes

Upload: concrete-solutions

Post on 22-Jan-2017

140 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

Criamos produtos digitais de sucesso.

Leandro Moraes

Page 2: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

AgendaIntroduçãoMetodologiasWaterfallÁgilCI - FundamentosO CI na Concrete Solutions

Page 3: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

Introdução

O desenvolvimento de software pode ser feito sem auxílio de metodologia.

Alguns autores chamam este processo de codifica/remenda.

Page 4: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

IntroduçãoComo atingir um bom nível de produto com um bom

planejamento?

As metodologias de engenharia de software contribuem para alcançar esta meta.

Waterfall Ágil

Page 5: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

MetodologiasWaterfall é uma metodologia de processo sequencial que possui estágios e onde o desenvolvedor se move para o

próximo estágio apenas após completar o anterior.

Como o processo é sequencial, o desenvovedor não pode voltar para um estágio anterior sem passar por todos os

estágios.

Page 6: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

Metodologias

A metodologia ágil é justamente uma forma de resolver as desvantagens do waterfall.

Os desenvolvedores podem começar com um design de projeto mais simples sem grande rigidez e então começar a trabalhar em pequenos módulos que são entregáveis em

períodos de tempos.

Page 7: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

WaterfallOs estágios do Waterfall são:

1 - Requisitos

2 - Análise

3 - Desenho

4 - Implementação

5 - Testes

6 - Implantação

7 - Manutenção

Page 8: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

WaterfallVantagens

Por ser uma metodologia muito rígida e meticulosa, facilita projetos futuros bem definidos.

O cliente sabe o que esperar e tem uma boa idéia de tamanho, custo e prazo do projeto.

Sua forte documentação permite impactos mínimos em alguns casos, por exemplo a rotatividade de

colaboradores.

Page 9: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

WaterfallDesvantagens

Não se pode voltar para estágios anteriores.

É muito rígido, depende fortemente dos requisitos iniciais.

Falhas nos requisitos iniciais levam ao reinício do projeto.

O produto só é testado no final.

Page 10: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

Ágil

Permite mudanças a qualquer tempo após o início do projeto.

Devido ao item anterior não é proibido adição de novas “features” ao projeto.

Vantagens

Ao final de cada ciclo as prioridades do projeto são reavaliadas e o cliente pode dar seu feedback.

Page 11: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

Ágil

Os testes são realizados frequentemente e não apenas ao fim do projeto.

Por causa dos testes com Ágil, o produto poderia ser implantado ao final de cada ciclo.

Vantagens

Page 12: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

Ágil

Com um gestor de projetos inexperiente, o projeto poderia vir a ter um número excessivo de ciclos o que poderia levar

a atrasos e estouro de orçamento.

Como não existe plano definitivo no início, o produto final pode terminar bem diferente do que fora pretendido

inicialmente.

Desvantagens

Page 13: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

CI - Fundamentos

Integração Contínua (CI) é um divisor de águas no desenvolvimento de software moderno.

Quando CI é introduzido em uma organização, ela altera a forma como os times pensam o processo de

desenvolvimento como um todo.

Page 14: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

CI - Fundamentos

Uma boa infra de CI tem a idéia de simplificar desde o processo de desenvolvimento ao deployment. Contribui

para a detecção de bugs mais rapidamente e ajuda times a entregar mais valor ao projeto.

Page 15: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

CI - FundamentosQuando retornamos aos projetos com metodologia

waterfall percebemos que o tempo e energia dos times são, regularmente, gastos na fase de integração.

Nesta fase os pedaços de código desenvolvidos individualmente por desenvolvedores ou grupos é

integrado ao produto.

Page 16: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

CI - FundamentosO método acabava se tornando bastante árduo, pois havia

casos de meses de integrações com mudanças que conflitavam com a versão estável do código

Os códigos eram integrados apenas após algum tempo posterior ao desenvolvimento logo havia um delay e uma

dificuldade a mais para corrigir erros

Não pouco comum que estes problemas acabassem culminando em reescrita de código (retrabalho)

Page 17: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

CI - Fundamentos

Quais os resultados mais nítidos que podem ser notados a partir dos fatos narrados?

1 - Atraso na entregas

2 - Aumento de custos não planejados

3 - Insatisfação do cliente

Page 18: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

CI - Fundamentos

A integração contínua nasce com a finalidade de oferecer meios (ferramentas) que monitorem o sistema de controle

de versões

Sempre que uma mudança for detectada a ferramenta automaticamente compila, testa e notifica o time em caso

de sucesso ou não para uma tomada de ação corretiva (ou nao) o mais breve possível

Page 19: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

CI - Fundamentos

Basicamente o que a Integração Contínua pretende é:

1 - Reduzir riscos ao fornecer um feedback rápido;

2 - Identificar e corrigir rapidamente problemas de integração de código;

3 - Aumentar as entregas e diminuir os bugs.

Page 20: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

CI - Fundamentos

Um bom ambiente de CI estimula a implantação/entrega contínuas (CD).

Implantação Contínua acontece quando se pratica automaticamente a implantação de builds com sucesso

diretamente em um ambiente.

Page 21: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

CI - Fundamentos

A entrega contínua pode ser considerada uma leve variante da implantação contínua e difere que após o build com sucesso, o processo de deploy está todo preparado (automatizado) porém não automático. Dependerá de um

ator que o executará (1 simples click).

Page 22: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

CI - Fundamentos

Podemos resumir dizendo que as técnicas de CI/CD dizem respeito a entregar cada vez mais valor e mais

rapidamente ao usuário final.

E que Integração Contínua é muito mais cultural do que ferramental.

Page 23: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

O CI na Concrete Solutions

Na Concrete Solutions a palavra de ordem é fazer software e software com qualidade.

Uma das frases recorrentes nos corredores da empresa é: “A vida é muito curta para fazer software ruim”.

Page 24: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

O CI na Concrete Solutions

Como o pensamento é entregar software com qualidade e obter uma ótima experiência do cliente, a Concrete

Solutions tem optado por:

1 - Ser ágil (utilizar metodologia ágil - Scrum)

2 - Automatizar os processos manuais de integração de código, deploy (CI/CD) e testes.

Page 25: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

O CI na Concrete Solutions

Em 2009 a Concrete começa a utilizar CI em seus projetos e atualmente, todos os projetos novos da Concrete

Solutions já nascem com CI em seu DNA.

Page 26: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

O CI na Concrete Solutions

Com times cada vez mais auto-gerenciáveis e multi-disciplinares, com uma cultura de ágil sendo fomentada

mais e mais a cada dia mediante treinamentos internos e estímulos a certificações, temos conseguido ótimos

resultados que indicam um caminho acertado para o tipo de negócio em que atuamos.

Page 27: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

O CI na Concrete Solutions

Como exemplo de ferramentas de integração contínua que utilizamos na Concrete Solutions temos:

Page 28: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

O CI na Concrete Solutions

Page 29: CI + CS - Integração Contínua e seus benefícios nos projetos da Concrete Solutions

blog.concretesolutions.com.brwww.concretesolutions.com.br

Rio de JaneiroRua São José, 90 cj. 2121 - Centro (21) 2240-2030

São PauloRua Sansão Alves dos Santos, 433 -

4º andar - Brooklin(11) 4119-0449