43
Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís Franco 2009

Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Embed Size (px)

Citation preview

Page 1: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Uma Proposta de Processo de Gerência de

Configuração de Software Para Uma Empresa de

Pequeno Porte

Aluno: Cristiano Levi ArnoldOrientador: Alexandre Luís Franco

2009

Page 2: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Objetivo• Propor um processo de GCS que atenda as

necessidades de uma empresa de pequeno porte tendo como base os princípios da GCS Ágil

Page 3: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Metodologia• Estudo de caso de uma empresa de TI• Instrumentos utilizados

Entrevista Conhecer o processo de desenvolvimento

atual (identificar pontos fortes e fracos) Questionário

Identificar as práticas relevantes para realidade da empresa

Page 4: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Perfil da Empresa• Microempresa de TI• Oito colaboradores• Serviços e produtos

o Consultoria em TIo Desenvolvimento para terceiroso Produtos próprios licenciados por meio de

cessão de uso (Foco do TCC) Plataforma Web (PHP, Banco de Dados

variados) Instalados na infraestrutura da empresa

Page 5: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Perfil da EmpresaOrganograma

Diretoria

Desenvolvimento

Suporte

Marketing e Vendas

Analista de Sistema

Desenvolvedor de Sistema

Analista de Suporte

Consultor de Vendas

Coordenador de Desenvolvimento

Page 6: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Análise do Processo• Coleta de Dados

Entrevista Realizada com a pessoa chave conhecedora do

processo Baseado nas práticas específicas do CMMI 1.2 e

do MPS.BR 1.2 Baseado nos princípios da GCS Ágil Conhecer o processo de desenvolvimento (ênfase

na GCS) Identificar pontos fortes e fracos

Page 7: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Análise do Processo• Coleta de Dados

Questionário Aplicado no time de desenvolvimento Lista de práticas de GCS a serem eleitas Baseado nas práticas específicas do CMMI 1.2 e

do MPS.BR 1.2 Baseado nos princípios da GCS Ágil Identificar as práticas mais importantes na opinião

dos usuários do processo

Page 8: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Análise do Processo• Análise dos Dados

Entrevista Categorização e relacionamento das respostas

através de dedução

Questionário Práticas com uma resposta dentre as possíveis:

Grau de importância Baixo, Médio ou Alto Soma de pontos das respostas Critério de eleição das práticas: A prática deve

atingir no mínimo 80% dos pontos possíveis

Page 9: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Análise do Processo• Resultados

• Entrevista Pontos fracos

Processo informal Solicitação de mudanças não registradas Inexistência de rastreabilidade Impossibilidade de desenvolvimento paralelo Inexistência de ferramentas de apoio Controle manual das funcionalidades liberadas

Page 10: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Análise do Processo• Resultados

• Entrevista Pontos fracos (Continuação)

Validação manual e informal para liberação dos releases

Falta de critérios e políticas definidos para realização de tarefas rotineiras

Ciclo de vida da solicitação de mudança informal

Page 11: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Análise do Processo• Resultados

• Entrevista Pontos fortes

Processo simples Existe um padrão de nomeação de versões Rapidez na implementação e entrega de

novas mudanças solicitadas pelo cliente

Page 12: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

12

Análise do Processo• Resultados - Questionário

Page 13: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Análise do Processo• Resultados - Questionário

Page 14: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de Processo• Diretrizes

• Pontos fracos identificados e as práticas relevantes eleitas

• Foco apenas no processo de desenvolvimento dos próprios produtos da empresa

• Produtos são instalados na infraestrutura da empresa

• Recomendação• Uso de teste unitário (auxiliar auditoria funcional)

Page 15: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de Processo• Processo de Mudança

• Visa atender as seguintes necessidades:• Formalizar o processo• Registro de todas as mudanças solicitadas• Registro das funcionalidades liberadas em um

release• Manter histórico das alterações efetuadas• Possibilitar a rastreabilidade das alterações• Facilitar o controle das funcionalidades liberadas em

um release

Page 16: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de ProcessoProcesso de Mudança

Processo de Solicitação de Correção de Defeito

Solicitação de Correção de Defeito

Processo de Release

Processo de Solicitação de Mudança

Processo de Auditoria

Solicitação de Mudança

Processo de Building

Page 17: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de ProcessoProcesso de Solicitação de Mudança

Des

envo

lved

orA

nalis

ta d

e S

iste

mas

Sta

keho

lder

Solicitar Mudança

Analisar Solicitação de Mudança

Rejeitar?

Informar Stakeholder

Sim

Analisar ImpactoNão

Definir Prioridade e

Release

Estimar Esforço e Informar

StakeholderTipo

Requisito de Cliente

Defeito/Melhoria

Aprovar?

Sim

Registrar Solicitação de

Mudança

Implementar Solicitação de Mudança[Processo de Check-in e Checkout]

Liberar Mudança para

Teste

Não

Page 18: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de ProcessoProcesso de Correção de Defeito em Produção

Des

envo

lved

orA

nalis

ta d

e S

iste

mas

Sta

keho

lder

Sim

Reportar Defeito Encontrado

Crítico ou Bloquante?

Registrar Solicitação de

Mudança

Analisar Gravidade do Defeito

Implementar Solicitação de Mudança[Processo de Check-in e Checkout]

Analisar Impacto

Liberar Mudança para

Teste

[Processo de Solicitação de Mudança]

Não

Autorizar Mudança

Page 19: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de Processo• Processo de Building

• Visa atender as seguintes necessidades:• Formalizar o processo• Automatizar a construção do produto com

ferramentas de apoio

Page 20: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de ProcessoProcesso de Building

Dese

nvol

vedo

rEn

carr

egad

o pe

la

Conf

igur

ação

do

Sof

twar

e

Coor

dena

dor d

e De

senv

olvi

men

to

Autorizar Building de Release do

Produto

Realizar Checkout do Repositório do Projeto

Armazenar Produto Construído no

Repositório

Rodar Scripts para Construção do Produto

Criar Baseline de Release ou Correção

do Produto

Informar Coordenador Sobre a Finalização do

Processo

Sim

Executar Testes Automatizados e Teste

de Fumaça

OK?

Informar Time de Desenvolvimento Sobre

os Resultados

Corrigir Problemas Encontrados[Processo de Check-in e Checkout]

Não

Page 21: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de Processo• Processo de Auditoria

• Visa atender as seguintes necessidades:• Formalizar o processo• Realizar validação antes da liberação• Verificar integridade do produto antes da liberação

Page 22: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de ProcessoProcesso de Auditoria

Des

envo

lved

or

An

alis

ta d

e S

iste

mas

En

carr

egad

o p

ela

Co

nfi

gu

raçã

o d

o

So

ftw

are

OK?

Corrigir Problemas Encontrados[Processo de Check-in e Checkout]

Testar Solicitações de Mudança

Instalar Produto em Ambiente de Teste

Reabrir Solicitações de MudançaNão

Liberar Versão do Produto para ReleaseSim

Construir Produto[Processo de Building]

Page 23: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de Processo• Processo de Release

• Visa atender as seguintes necessidades:• Formalizar o processo

Page 24: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de ProcessoProcesso de Release

En

ca

rre

gad

o p

ela

C

on

fig

ura

çã

o d

o

So

ftw

are

Co

ord

en

ad

or

de

De

se

nv

olv

ime

nto

Autorizar Release da Versão do

Produto

Comunicar Data da Instalação do Produto

aos Stakeholders

Realizar Instalação do Produto

Informar Stakeholders Sobre a Finalização do

Processo

Page 25: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de ProcessoProcesso de Release de Correção de Defeito em Produção

En

ca

rre

ga

do

pe

la

Co

nfi

gu

raç

ão

do

S

oft

wa

re

Co

ord

en

ad

or

de

D

es

en

vo

lvim

en

to

Realizar Instalação do Produto

Autorizar Release de Correção do

Produto

Page 26: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de Processo• Processo de Check-in e Checkout

• Visa atender as seguintes necessidades:• Formalizar o processo• Possibilidade de desenvolvimento paralelo

Page 27: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de ProcessoProcesso de Check-in e Checkout

De

se

nv

olv

ed

or

Realizar Checkout do

Projeto

Implementar as Mudanças Solicitadas

Testar Alterações Realizadas

OK?

Realizar Novo Checkout para Obter

Última Revisão

Sim

Revisar e Testar Atualização nos Itens

AlteradosRealizar Check-in

dos Itens Alterados

OK?Corrigir Problemas

Encontrados

Nova Revisão?

SimNão

SimNão

Corrigir Problemas Encontrados

Não

Page 28: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

• Visa atender as seguintes necessidades:• Possibilidade de desenvolvimento paralelo• Capacidade para recuperar uma versão de um IC• Registrar de todas as mudanças solicitadas• Registrar as funcionalidades liberadas em um release• Manter histórico de mudanças dos ICs• Automatizar a construção do produto• Possibilitar a rastreabilidade das alterações• Facilitar o controle das funcionalidades liberadas em um

release

Definição de Ferramentas de Apoio

Page 29: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Definição de Critérios e Políticas

• Visa atender as seguintes necessidades:• Formalizar o processo• Adotar critérios para definir quando gerar baselines• Adotar políticas e critérios para realização de tarefas

rotineiras

Page 30: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Definição de Critérios e Políticas

• Critérios para Seleção dos Itens de Configuração

• Políticas para Alteração dos Itens de Configuração

• Políticas para Geração de Baselines• Políticas para Criação de Branches/Tags

Page 31: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Definição de Padrões

• Visa atender as seguintes necessidades:• Formalizar o processo• Pré-estabelecer critérios para seleção dos itens de

configuração• Formalizar o ciclo de vida das solicitações de mudança• Padronizar nomeação para os itens de configuração• Formalizar o esquema de nomeação das versões

Page 32: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Definição de Padrões

• Padrão de Nomeação dos Itens de Configuração

• Padrão de Nomeação de Versões• Padrão da Estrutura de Pastas do Repositório• Definição do Ciclo de Vida da Solicitação de

Mudança

Page 33: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Conclusão• Viabilidade de implantação do processo (adoção

de boas práticas de acordo com a realidade da empresa)

• A proposta pode servir de base para outras empresas com perfil semelhante

Page 34: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Trabalhos Futuros• Implementar o processo, avaliar benefícios e

pontos fracos• Aprimoramento ou desenvolvimento do

instrumento para eleição de prática de GCS• Criação de um de plano de GCS baseado em

algum modelo padrão de mercado• Estender a proposta de processo para os

demais projetos da empresa

Page 35: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Fim• Perguntas• Comentários

Page 36: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Motivação• Auxiliar uma empresa de TI a atingir melhor

qualidade nos seus produtos e serviços através da melhoria do processo de GCS

Page 37: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Gerência de Configuração de Sofware

• Disciplina que controla a evolução de produtos de programa de computador nas fases iniciais de desenvolvimento bem como durante todos os estágios de manutenção

(ANSI/IEEE Std 1042-1987)

Page 38: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

38

Gerência de Configuração de Software Ágil

• Os Princípios Básicos para a GCS Ágil são:• O processo deve servir aos seus

participantes e não vice-versa• O processo deveria ser simples e sem

atritos além de ser o mais automatizado possível

(APPLETON, et al. 2003)

Page 39: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

39

Gerência de Configuração de Software Ágil

Continuação…

• O processo deveria facilitar a mudança ao invés de dificultá-la

• O processo deveria ajudar na coordenação do desenvolvimento no lugar de controlar os desenvolvedores

(APPLETON, et al. 2003)

Page 40: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Definição de Ferramentas de Apoio

• Critérios de Seleção• Custo de licenciamento zero• Adoção de ferramentas de código aberto• Integração entre as ferramentas• Número de funcionalidades apresentadas

Page 41: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de Processo• Ferrameta de Controle de Versão

Page 42: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de Processo• Ferrameta de Controle de Mudança

Page 43: Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno Porte Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís

Proposta de Processo• Ferrameta de Building