Você está na página 1de 41

DNIO BATISTA BRASILEIRO BEZERRA

ANLISE DO IMPACTO DO USO DA


ESTRATGIA DE BRANCHING EM DEVOPS

Orientador: Prof. Dr. Vinicius Cardoso Garcia


Coorientador: Prof. Jos Fernando Carvalho

RECIFE
2017
ROTEIRO
- Introduo
- Contexto
- Motivao
- Objetivos

Fundamentao Terica

Pesquisa
- - Formulrio Online

Anlise dos Resultados

Concluso e Trabalhos Futuros


INTRODUO
CONTEXTO
- Tecnologia est avanando cada vez mais

os softwares se tornaram essenciais para a


sociedade
Usurios exigindo cada vez mais softwares de qualidade

Indstria de TI buscando qualidade desde o desenvolvimento


at a operao

As prticas utilizadas no desenvolvimento de SW, tambm


avanaram.
CONTEXTO

Softwares esto tendo que realizar cada vez mais mudanas,


causando problemas durante o desenvolvimento

Grande parte dos problemas tem como causa a falta de trabalho


colaborativo entre o time de desenvolvimento e o time de operaes

- Para conseguir fazer a integrao entre estes dois times, foi criado
em 2009, o movimento DEVOPS
MOTIVAO

O advento do Devops trouxe a necessidade de investigar os tipos


de tcnicas existentes, e quais impactos so causados a ele.

Branching
OBJETIVOS
- Geral
compreender e analisar conceitos e prticas pertinentes ao uso
da tcnica de branching em Devops, especialmente sobre o impacto
causado pelos anti-padres desta tcnica definidos por appleton et. al. no
processo de desenvolvimento de software nas empresas que utilizam
esta prtica.
Especficos
- Apresentar os conceitos encontrados na literatura sobre branching
e DevOps

- Averiguar a incidncia dos anti-padres de branching no


desenvolvimento de software

- Identificar os relacionamentos existentes entre a tcnica e seus


anti-padres e a cultura DevOps

- Investigar e analisar o impacto da tcnica de branching na cultura


DevOps
FUNDAMENTAO TERICA
DESENVOLVIMENTO
DE SOFTWARE
uma sequncia de atividades que leva produo de
um produto de software.
(Somerville, 2011)

Modelos Tradicionais

Cascata Espiral Incremental Evolucionrio

Muita Documentao
DESENVOLVIMENTO
DE SOFTWARE
uma sequncia de atividades que leva produo de
um produto de software.
(Somerville, 2011)

Modelos Tradicionais

Cascata Espiral Incremental Evolucionrio

Lento para mudanas


DESENVOLVIMENTO
GIL
Lentido dos modelos tradicionais

Surgimento do manifesto gil

Menos tempo gasto com documentao e planejamento


Primeira lei da Engenharia de Software
No importa onde voc esteja no ciclo de vida do sistema, o sistema mudar
e o desejo de alter-lo persistir atravs de todo o ciclo de vida.
(Pressman, 2006)

Desenvolvimento de Software Mudanas

Confuso
GERNCIA DE
CONFIGURAO

A arte de coordenar desenvolvimento de software para minimizar


a confuso chamada de gesto de configurao.
(Babich, 1986)

Sua ausncia torna o desenvolvimento em um caos

Qualidade Prazo de entrega


REPOSITRIO

O processo de desenvolvimento de software gera um grande


volume de informaes a serem armazenadas.

Para um melhor gerenciamento do repositrio


imprescindvel o uso de um sistema de controle de verso,
como o GitHub.
BRANCHING
Permite que o desenvolvimento do software seja feito pelos
integrantes de uma equipe de forma paralela, isolada e independente
das modificaes de outros desenvolvedores.

Cpia de certo ponto da linha principal


BRANCHING

(Dantas, 2006)
BRANCHING

Permite que os desenvolvedores trabalhem em novos recursos


de forma isolada, reduzindo o risco de substituir as mudanas de
outro desenvolvedor.

Permite aos desenvolvedores executar experimentos, trabalhando


com verses variadas do cdigo-fonte.

Permite uma recuperao rpida e fcil de falhas.

Permite o isolamento do cdigo de produo, reduzindo ou


eliminando a confuso ao determinar qual cdigo foi implantado.

.
ANTI-PADRES
Merge Parania - quando se tem medo de realizar o merge, geralmente devido ao
medo das conseqncias.
Merge Mania - Gasta muito tempo na fuso do cdigo em vez de desenvolv-lo.
Big Bang Merge - quando se tenta juntar vrias branchs de uma vez s.
Never-Ending Merge - Uma operao de merge que nunca termina, pois sempre existe
algo para ser feito o merge
Wrong-Way Merge - quando o merge realizado na branch errada.
Branch Mania - Branchs so criadas mais do que o necessrio.
Cascading Branches - Os ramos so criados a vrios nveis mas nunca voltam a linha
principal do cdigo.
Mysterious Branches - Branchs so criadas sem necessidade.
Runaway Branches - A finalidade da branch acaba mudando durante seu
desenvolvimento e perdendo sua importncia.
Volatile Branches - branchs so criadas com arquivos que dependem de outras
branchs que no so estveis.
Development Freeze - Outras atividades so paralisadas para ser feito o merge.
Integration Wall - Em vez de dividir o trabalho, as branchs acabam por tirar a
colaboratividade do time. de desenvolvimento.
Spaghetti Branching - Mudanas so realizadas entre branchs que no se relacionam

(Appleton et. al., 1998)


Conflito
Desenvolvimento Operaes

Desenvolvimento
responsvel por criar novos produtos e aplicaes,
adicionar funcionalidades ou corrigir bugs.

Operaes
Possui a responsabilidade de cuidar desses produtos e
aplicaes em produo, prezando pela estabilidade.
DEVOPS
Surgiu em 2009

Dev Ops

Conjunto de prticas destinadas a reduzir o tempo entre


cometer uma mudana para um sistema e a mudana sendo
colocada em produo normal

Melhorar a integrao entre desenvolvedores e o time de


operaes
INTEGRAO CONTNUA
Prtica essencial para o DevOps

Teve origem na metodologia XP

Cada desenvolvedor deve integrar seu trabalho


frequentemente
Testes so executados a cada mudana

Encontra erros mais rapidamente

reduz o tempo para lanar novas atualizaes de software

melhora a qualidade
PROBLEMAS
ENFRENTADOS
Equipes de TI cada vez maiores

Aumento do desenvolvimento em paralelo

Branching
PROBLEMAS
ENFRENTADOS
Falta de colaborao entre o time de desenvolvimento e o de
operaes

Desenvolvimento Operaes

DevOps
PROBLEMAS
ENFRENTADOS

Branching DevOps
METODOLOGIA
Questionrio
- Portugus
- Divulgado por email, mensagens pessoais e em encontros
presenciais
- 23 questes
- 4 Sesses
- Perguntas pessoais
- Perguntas relacionadas a organizao
- Perguntas relacionadas ao time de desenvolvimento
- Perguntas relacionadas ao gerenciamento de configurao

Etapas de pesquisa
- Levantamento do referencial terico
- Extrao dos resultados
- Anlise dos resultados
HIPTESES DE PESQUISA
- HP01: Times com poucos integrantes e que usam metodologia gil no usam
branching durante o desenvolvimento.
- HP02: As organizaes que possuem a cultura DevOps so as que possuem
menos idade.
- HP03: A maior incidncia de anti padres de branching ocorrem em projetos
que possuem vrias branchs no seu desenvolvimento.
- HP04: Quando muito tempo utilizado para merge e para as operaes
relacionadas a branching a incidncia de anti-padres maior.
- HP05: A prtica de integrao contnua extingue a possibilidade de anti-
padres de branching.
- HP06: Os lderes de times de desenvolvimento consideram grande o impacto
que a tcnica de branching tem na produtividade do time.
PERFIL DOS
ENTREVISTADOS
Funo Quantidade

Gerente 9

Lder tcnico 10

Desenvolvedor 4

Analista/Engenheiro de Software 9
USO DE BRANCHING

HP01: Times com poucos integrantes e que usam metodologia gil no usam
branching durante o desenvolvimento.
USO DE BRANCHING

confrontando a afirmao de Dantas (2006) em que o uso de branching


aumentou times grande, isso nos mostra que o aumento dessa tcnica aumentou
tambm em times pequenos mostrando que branching est inserido na indstria
como um todo, independente do tamanho da equipe.
ORGANIZAES QUE
UTILIZAM DEVOPS
HP02: As organizaes que possuem a cultura DevOps so as que
possuem menos idade.

Confrontando a afirmao de Rebellabs de que o grande aumento do


uso da cultura DevOps se d por meio de empresas com pouco tempo de
existncia e que estariam mais abertas s mudanas propostas pelo
movimento DevOps.
ANTI-PADRES DE
BRANCHING
HP03: A maior incidncia de anti padres de branching ocorrem em
projetos que possuem vrias branchs no seu desenvolvimento.

Segundo Bird e Zimmermman, projetos que possuem um nmero


elevado de branchs com seus desenvolvedores, acabam por obter um maior
nmero de anti-padres
ANTI-PADRES DE
BRANCHING
HP04: Quando muito tempo utilizado para merge e para as operaes
relacionadas a branching a incidncia de anti-padres maior.

100%

Confirmando o que Herskisov disse em sua pesquisa que times que


gastam muito tempo com merge e com operaes de branching durante o
ms, possuem anti-padres no seu desenvolvimento.
ANTI-PADRES DE
BRANCHING
HP04: Quando muito tempo utilizado para merge e para as operaes
relacionadas a branching a incidncia de anti-padres maior.
ANTI-PADRES DE
BRANCHING
HP05: A prtica de integrao contnua extingue a possibilidade de anti-padres
de branching.
14 times afirmaram possuir prticas de integrao contnua

5 times Anti-padres de branching

9 times Anti-padres de branching


ANTI-PADRES DE
BRANCHING
HP05: A prtica de integrao contnua extingue a possibilidade de anti-padres
de branching.
14 times afirmaram possuir prticas de integrao contnua

5 times Never Ending Merge


IMPACTO DE BRANCHING

HP06: Os lderes de times de desenvolvimento consideram grande o


impacto que a tcnica de branching tem na produtividade do time.
PRTICAS PARA O
SUCESSO

Uso de uma estratgia formal de Branching

1. Utilizao de Metodologia gil

2. Utilizao de Sistemas de Controle de Verso

3. Utilizar 5 ou menos Branchs

4. Integrao Contnua
CONCLUSO

grande incidncia de anti-padres de branching em times de


desenvolvimento.

A utilizao de prticas e ferramentas da cultura DevOps


diminuem bastante a incidncia de anti-padres de branching.

Um modelo bem definido de branching diminuem tempo gasto


com operaes de branching e com merge, aumentando assim a
produtividade do time.

Os lderes de times de desenvolvimento consideram grande o


impacto de branching na produtividade do time.
CONCLUSO

As limitaes do estudo incluem itens como:

A escassez de insumo falta de acesso

Por ser um tema novo, no concentrou estudos voltados para


esse tipo de anlise .
TRABALHOS FUTUROS

Busca de casos de uso reais relacionados ao tema

Comparao da tcnica de branching em relao


s outras a outras tcnicas

Definio de modelo para aplicao real na indstria


de TI
Obrigado!

Dnio Batista Brasileiro Bezerra


dbbb@cin.ufpe.br