cds overview para o spin campinas #56

78
CPqD Developer Suite SPIN Campinas Reunião #56 - Ferramentas de Software 03/set/2013

Upload: andreyev-dias-de-melo

Post on 21-Jun-2015

164 views

Category:

Technology


0 download

DESCRIPTION

Há seis anos o CPqD vem utilizando um conjunto de ferramentas de software livre (e algumas comerciais de baixo custo) para suportar uma equipe de ~800 pessoas envolvidas com o desenvolvimento de seus produtos de software. O CPqD Developer Suite, como ficou conhecido, consiste atualmente em ferramentas para controle de versão, revisão de código, gestão de tarefas e de projetos ágeis, modelagem, integração contínua, testes e qualidade de código . Nesta palestra mostraremos como as ferramentas estão integradas, como elas são utilizadas e como o CPqD se organizou internamente para garantir o suporte e a evolução da suíte.

TRANSCRIPT

Page 1: Cds overview para o SPIN Campinas #56

CPqD Developer Suite

SPIN CampinasReunião #56 - Ferramentas de Software03/set/2013

Page 2: Cds overview para o SPIN Campinas #56

CPqD Developer Suite

Page 3: Cds overview para o SPIN Campinas #56

CDS - custo

Page 4: Cds overview para o SPIN Campinas #56

CPqD Developer Suite

Um conjunto de ferramentas

● de software livre e de baixo-custo,● de qualidade comprovada,● líderes de mercado em suas categorias,

● integradas para propiciar o● desenvolvimento eficiente de● software de qualidade.

Page 5: Cds overview para o SPIN Campinas #56

CPqD Developer Suite

Page 6: Cds overview para o SPIN Campinas #56

Gestão de Mudanças e Projetos Ágeis

Page 8: Cds overview para o SPIN Campinas #56
Page 9: Cds overview para o SPIN Campinas #56

JIRA

Projeto A

Projeto BPA-101

PA-102

PA-103PA-104

PB-25

PB-26

PB-27

Page 10: Cds overview para o SPIN Campinas #56

PA-101

● Resumo● Descrição● Criador● Responsável● Componentes● Versões● …● Campos

customizados...

Tíquetes totalmente customizáveis

DefeitoMelhoria

TarefaEstóriaRequisito

Page 11: Cds overview para o SPIN Campinas #56

JIRA Ágil

Page 12: Cds overview para o SPIN Campinas #56

JIRA no CPqD

Page 13: Cds overview para o SPIN Campinas #56

Modelagem

Page 15: Cds overview para o SPIN Campinas #56

Toolbox

Barra de Ferramentas

Project Browser

Área de Desenho

Page 16: Cds overview para o SPIN Campinas #56

Diagrama de Sequência

Diagrama de Caso de Uso

Diagrama de Colaboração

Diagrama de Estado

Diagrama de Atividade

Modelos

Diagrama de Classe

Diagrama de Objeto

Diagrama de Componente

Diagrama de DistribuiçãoCOMPORTAMENTAIS

ESTRUTURAISModelagem UML

Page 17: Cds overview para o SPIN Campinas #56

Banco de Dados Subversion

Edição simultânea e versionamento

Page 18: Cds overview para o SPIN Campinas #56

Controle de Versões

Page 21: Cds overview para o SPIN Campinas #56

Se você não abusa de

branches e merges

Page 22: Cds overview para o SPIN Campinas #56

Subversion no CPqD

Page 25: Cds overview para o SPIN Campinas #56

“For those of you that have been living under a rock, the single biggest change in developers’ lives in the last decade is Distributed Version Control.”

-- Joel Spolskyhttp://www.joelonsoftware.com/items/2013/03/11.html

Page 26: Cds overview para o SPIN Campinas #56

leve e rápido

visualizaçãoda história

revise e publique

merges são simples

trabalhedesconectado

Page 27: Cds overview para o SPIN Campinas #56

"It is easy to shoot your foot off with git,but also easy to revert to a previous foot and merge it with your current leg."

-- Jack William Bell

Page 28: Cds overview para o SPIN Campinas #56

devopsreactions.tumblr.com

“Initial git training”

Page 29: Cds overview para o SPIN Campinas #56
Page 30: Cds overview para o SPIN Campinas #56

devopsreactions.tumblr.com

“After reading the ‘Pro Git’ book”

Page 31: Cds overview para o SPIN Campinas #56

Eclipse Annual Survey

Page 33: Cds overview para o SPIN Campinas #56

Revisão de Código

Page 35: Cds overview para o SPIN Campinas #56

Quem usa o Gerrit atualmente?

Page 36: Cds overview para o SPIN Campinas #56

Gerrit Code Review

Page 37: Cds overview para o SPIN Campinas #56

commited

open abandoned

merged

git commit

submit

abandon

git pushgit fetch

approvereject

comment

git commit --amend

Page 38: Cds overview para o SPIN Campinas #56

OK, a revisão de código ajuda a encontrar bugs mais cedo. Mas ela não atrasa o processo de desenvolvimento?

Sim. A revisão de código gasta aproximadamente 5% do tempo que se leva pra desenvolvê-lo.

5%, ok?

Só 5%, OK?!

Page 39: Cds overview para o SPIN Campinas #56

Outros ganhos da revisão de código

mentoring peering

Page 40: Cds overview para o SPIN Campinas #56

Outros ganhos da revisão de código

O “medo da rejeição” estimula o esforço individual

Page 41: Cds overview para o SPIN Campinas #56

Outros ganhos da revisão de código

A “exposição” do trabalho de todos promove a integridade conceitual da solução

Page 42: Cds overview para o SPIN Campinas #56

Integração contínua

Page 43: Cds overview para o SPIN Campinas #56

jenkins-ci.orgnée

Page 44: Cds overview para o SPIN Campinas #56

Integração Contínua

● Código versionado

● Builds automatizadas e rápidas

● Testes automatizados

● Build a cada commit

● Resultados publicados

● Produtos disponíveis

● Deployment automatizadoMartin Fowler

Page 45: Cds overview para o SPIN Campinas #56
Page 46: Cds overview para o SPIN Campinas #56

Arquitetura

Build 01 Build 02

Build 03 Build 04

Jenkins

Job A Job B

Job C Job D

Build 01 Build 02

Build 03 Build 04

Build 01Build 01 Build 02

Build 03 Build 04

Build 02 Build 03

Build 04 Build 05 Build 06

Build 07 Build 08 Build N

Page 47: Cds overview para o SPIN Campinas #56

Informações sobre a execução do Job

● Histórico das builds

Page 48: Cds overview para o SPIN Campinas #56

Build Slave

Build Master

Build Slave

Build Slave

Changes Status

Commands Commands

Com

mands

Arquitetura

Page 49: Cds overview para o SPIN Campinas #56

Jenkins integrado ao CDS

Revisão de Código

Repositorio de ArtefatosConstrução

Gestão de Mudança

Controle de Versão

Controle de Versão

Integração Contínua

Automação de Teste

IDE

maven

egit

Qualidade

AS

subversive

Page 50: Cds overview para o SPIN Campinas #56

Usuários Jenkins

Page 51: Cds overview para o SPIN Campinas #56

Jenkins no CPqD

Page 52: Cds overview para o SPIN Campinas #56

Repositório de artefatos

Page 54: Cds overview para o SPIN Campinas #56

Old style dependency management

Internet...

dev.java.net

central

SVN/lib/*.jar

Page 55: Cds overview para o SPIN Campinas #56

Maven style dependency management

Internet

...

dev.java.net

central

...

codehaus-snapshots

apache-snapshots

internalreleases

thirdparties

externalreleases

externalsnapshots

internalsnapshots

releasessnapshots

Page 56: Cds overview para o SPIN Campinas #56

Nexus

Page 57: Cds overview para o SPIN Campinas #56

Testes

Page 59: Cds overview para o SPIN Campinas #56
Page 60: Cds overview para o SPIN Campinas #56

Projeto

...

Organização dos Testes

RQ RQ RQ RQ

T.Suite

T.Suite

T.Suite

T.PlanT.Plan

TC

TC

TC

TC

TC

TC

TC

TC

TC

Page 61: Cds overview para o SPIN Campinas #56

Plano de Testes e relatórios

Test Plan

Test Case

Test Case

Test Case

Test Case

Test Case

build

build

build

Page 63: Cds overview para o SPIN Campinas #56

Selenium IDE

<HTML>JavaPHPPerlPythonRubyC#

Page 64: Cds overview para o SPIN Campinas #56

Arquitetura do Selenium

SeleniumTest

SeleniumTest

WebApps

Selenium Hub

Page 65: Cds overview para o SPIN Campinas #56

Inspeção contínua

Page 67: Cds overview para o SPIN Campinas #56

Inspeção contínua

● Análise estática automatizada de código○ Disparada pelo Jenkins○ Java, C/C++, C#, PHP, Javascript, XML, etc.

● Dezenas de métricas de qualidade○ Complexidade, documentação, cobertura de testes, duplicação

de código, coding standards, etc.○ Métrica fora dos limites aceitáveis quebra a build.

● Apresentação multidimensional dos resultados○ Hotspots, tendências, issue drilldown, timeline, etc.

Page 68: Cds overview para o SPIN Campinas #56

Dashboard e tendências

Page 69: Cds overview para o SPIN Campinas #56

Issue Drilldown

Page 70: Cds overview para o SPIN Campinas #56

Timeline

Page 71: Cds overview para o SPIN Campinas #56

Hotspots

Page 72: Cds overview para o SPIN Campinas #56

Eclipse plugin

Page 73: Cds overview para o SPIN Campinas #56

Por que coletar métricas?

● É preciso medir pra saber o que melhorar○ Sonar is a quality profiler

● É preciso medir pra poder convencer

● “Teoria da Janela Quebrada”

● “É melhor prevenir do que remediar”

● Planejar e priorizar

● Controlar o débito técnico

Page 74: Cds overview para o SPIN Campinas #56

Sonar no CPqD

Page 75: Cds overview para o SPIN Campinas #56

Integrações

Page 76: Cds overview para o SPIN Campinas #56

Integrações

LDAP

Page 77: Cds overview para o SPIN Campinas #56
Page 78: Cds overview para o SPIN Campinas #56

Gustavo [email protected](19) 3705 7003

Obrigado!

www.cpqd.com.br