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

Post on 22-Jan-2017

140 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Criamos produtos digitais de sucesso.

Leandro Moraes

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

Introdução

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

Alguns autores chamam este processo de codifica/remenda.

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

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.

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.

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

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.

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.

Á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.

Á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

Á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

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.

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.

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.

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)

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

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

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.

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.

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).

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.

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”.

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.

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.

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.

O CI na Concrete Solutions

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

O CI na 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

top related