Upload
concrete-solutions
View
141
Download
3
Embed Size (px)
Citation preview
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