Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno...
Transcript of Uma Proposta de Processo de Gerência de Configuração de Software Para Uma Empresa de Pequeno...
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
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
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
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
Perfil da EmpresaOrganograma
Diretoria
Desenvolvimento
Suporte
Marketing e Vendas
Analista de Sistema
Desenvolvedor de Sistema
Analista de Suporte
Consultor de Vendas
Coordenador de Desenvolvimento
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
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
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
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
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
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
12
Análise do Processo• Resultados - Questionário
Análise do Processo• Resultados - Questionário
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)
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
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
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
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
Proposta de Processo• Processo de Building
• Visa atender as seguintes necessidades:• Formalizar o processo• Automatizar a construção do produto com
ferramentas de apoio
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
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
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]
Proposta de Processo• Processo de Release
• Visa atender as seguintes necessidades:• Formalizar o processo
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
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
Proposta de Processo• Processo de Check-in e Checkout
• Visa atender as seguintes necessidades:• Formalizar o processo• Possibilidade de desenvolvimento paralelo
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
• 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
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
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
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
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
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
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
Fim• Perguntas• Comentários
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
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)
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)
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)
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
Proposta de Processo• Ferrameta de Controle de Versão
Proposta de Processo• Ferrameta de Controle de Mudança
Proposta de Processo• Ferrameta de Building