Esse post vai em especial para o colega Thiago Arrais que está conduzindo, em conjunto com outros parceiros, uma excelente iniciativa de implementação open-source de um portal para projetos de software: o Motiro.

Ano passado quando ministrei a disciplina de Gerência de Configuração em um curso de Pós-graduação em Projeto de Software aqui na Grande Vitória, utilizei esse texto como motivação para os alunos terem uma idéia de como um projeto poderia ser apoiado por boas práticas de gerência de configuração. O texto é uma adaptação da introdução do excelente livro "Portais Corporativos - A revolução na gestão do conhecimento" de José Cláudio Cyrineu Terra e Cindy Gordon. Preservei o nome do portal citado no livro, mas adaptei todas as cenas e personagens para um ambiente em uma empresa de software.  Acho que o texto pode dar boas idéias para o pessoal do Motiro e para todos aqueles que querem avançar no mundo da Gerência de Configuração e/ou dos Portais Corporativos. 

OBS: A história se passa em uma empresa que não trabalha com métodos ágeis. Alguém se propõe a adaptá-lo para um projeto XP?

Segue então o texto conforme eu passei para os alunos:

 

A seguir descreve-se uma série de cenas ocorridas – ou que poderão ocorrer? – em uma empresa que desenvolve produtos de software de médio ou grande porte. A área de gerência de configuração da empresa integrou seus processos através de um avançado portal de conhecimento corporativo: o Agente-C. O relacionamento verbal entre o Agente-C e os funcionários da empresa é propositalmente futurista para aumentar a dinâmica dos diálogos e para ajudar o leitor a entender os processos que estão em funcionamento em um ambiente controlado por uma área de gerência de configuração.

 

 

CENA 1

 

Personagens:  Agente-C, Inácio Guedes, Gabriel Fonseca, Bianca Lins

 

Local:  Escritório de Inácio Guedes

 

Contexto:

                - Sigma é um dos principais fornecedores de software de controle orçamentário e financeiro no Brasil.

                -  Inácio é o líder no projeto de desenvolvimento de um produto. Ele se chama “Projeto Sinus”

                - Gabriel é o gerente de configuração do projeto. Sua responsabilidade é manter os artefatos do projeto corretamente armazenados, identificados e categorizados. Ele também define os processos de liberação de releases, controle de código-fonte e automação do projeto.

                - Bianca ingressou recentemente em outra filial da Sigma em Recife.

 

 

Inácio chega no escritório e liga seu computador

 

Inácio:       Bom dia, Agente-C!

 

Agente-C:     Bom dia, Inácio!

 

Inácio:       Alguma notícia relevante?

 

Agente-C:     Sim. Uma nova release do projeto Open-Source Gentle.Net foi liberada.

 

Inácio:       O Gabriel já sabe disso?

 

Agente-C:     Sim. Ele também assina e recebe as notícias sobre esse assunto nessa agência.

 

Inácio:       OK. Próxima.

 

Agente-C:     Uma desenvolvedora sênior chamada Bianca Lins ingressou ontem no nosso escritório em Recife. Ela tem uma experiência que é altamente relevante para o projeto Sinus.

 

Inácio:       OK. Me passe mais detalhes.

 

Agente-C:     Ela trabalhou por cinco anos como desenvolvedora da IBM, tem uma grande experiência com SQLServer e é especialista em tunning e performance nesse SGBD.

 

Inácio:       Isto é realmente interessante. Por favor, tente marcar uma reunião com áudio e vídeo com ela em qualquer horário amanhã pela manhã.

 

Agente-C:     Baseado no seu calendário on-line, ela está disponível para um encontro às 10 horas da manhã. Eu reservarei a hora, esperarei por confirmação e entrarei em contato em contato com você.

 

Inácio:       OK. Envie pra ela um link com nosso último relatório de performance no módulo de conciliação bancária.

 

Agente-C:     Link enviado. Convite para reunião virtual enviado.

 

Três horas depois no escritório de Inácio....

 

Inácio:       A Bianca mandou notícias?

 

Agente-C:     Sim. A reunião está confirmada. Ela te deixou uma série de links para artigos que ela escreveu anteriormente sobre tunning e performance.

 

Inácio:       OK. Eu preciso ir agora. Coloque os links nos meus favoritos e me lembre de consultá-los amanhã cedo.

 

No dia seguinte....

 

Agente-C:     Bom dia Inácio! Você tem uma reunião em vídeo conferência com Bianca Lins em 10 minutos. Ela já está on-line.

 

Inácio:       OK. Podemos começar a reunião.

 

Inácio:       Bom dia Bianca... Espero que esteja gostando dos seus primeiros dias na empresa.

 

Bianca:       Obrigada. Estou me sentindo em casa.

 

Inácio:       Bianca, você analisou nosso relatório de performance que o Agente-C te passou?

 

Bianca:       Sim, analisei e tomei a liberdade de colocar alguns comentários, anexando-os ao documento.

 

Inácio:       Ótimo, vou dar uma olhada. Há alguma forma de você nos ajudar a resolver esse problema?

 

Bianca:       Acho que há meios de melhorar. Preciso de acesso aos testes de unidade e também ao relatório de timing desses testes.

 

Inácio:       Agente-C, Por favor envie uma senha para a Bianca ter acesso ao nosso código-fonte. Bianca, faça um check-out da mainline. Você precisa de instruções sobre como compilar e executar os testes de unidade?

 

Bianca:       Sim, Inácio. Mas enquanto conversarmos fiz uma busca aqui no Agente-C, e já estou com um documento com instruções sobre isso. Há inclusive intruções de acesso ao repositório de código-fonte.

 

Inácio:       Certo, Bianca, muito obrigado pela ajuda. Fico aguardando novas notícias então. Até mais.

 

Bianca:       Até mais.

 

Conceitos-Chave: Gestão de Competências, Notificações automáticas, Acesso a fontes externas de informação, Colaboração virtual.


 

CENA 2

 

Personagens: Agente-C, Inácio Guedes, Mauro Leme, Tânia Fernandes

 

Locais: Escritório de Inácio Guedes

 

Contexto:

 

                - Um novo relatório de bugs chega da equipe de testes noturnos. Os testes noturnos acontecem todos os dias. Eles servem para testar aquilo que foi produzido pela equipe de desenvolvedores que trabalha durante o dia.

                - Mauro Leme é desenvolvedor da equipe do projeto Sinus que está atualmente trabalhando em sua versão 2.25. Nessa manhã, ele estava de plantão na equipe de SWAT.

                - Tânia Fernandes é analista de negócio e responsável pela automação de testes funcionais do sistema.

 

 

Agente-C:     Inácio, a equipe de testes noturnos mandou seu relatório de testes noturnos realizados no branch da versão 2.25 do Sinus. Gostaria de abrir?

 

Inácio:       Sim.

 

O Agente-C exibe na tela:

 

Sistema: Sinus

Branch: Sinus_RC_225

 

Número

Tipo

Descrição

Criticidade

0012098

BUG

Erro de “Invalid Operation” quando se tenta comprometer parcelas de contrato.

Alta

0012099

BUG

Caminho de workflow incorreto no trâmite de solicitações de pagamento.

Alta

0012100

MELHORIA

Exibição de mensagem de falta de saldo antes de se completar o cadastro de novos contratos

Baixa

 

Inácio:       Certo. Como está a situação das correções?

 

O Agente-C exibe na tela:

 

Número

Situação

Desenvolvedor

Previsão

0012098

Em Desenvolvimento

Mauro Leme

2 horas

0012099

Aguardando Intervenção

Mauro Leme

Não indicada

0012100

Aguardando Intervenção

Mauro Leme

1 hora

 

Inácio:       Agente-C, por favor me inscreva para monitorar esses 3 issues.

 

Agente-C:     Inscrição realizada.

 

Agente-C:     Inácio, o Sr. Mauro Leme gostaria de lhe falar pelo canal de áudio. Você aceita o convite?

 

Inácio:       Sim.

Mauro:        Inácio, você já deu uma olhada no relatório da equipe noturna?

 

Inácio:       Sim, o Agente-C acabou de me mostrar.

 

Agente-C:     O usuário Mauro gostaria que você visualizasse o conteúdo do link que aponta para o Issue de número 0012099.

 

Inácio:       OK, Mauro, o Issue já está aberto aqui na minha frente.

 

Mauro:        A questão é a seguinte: Eles pedem que o workflow da solicitação de pagamento possa contemplar caminhos paralelos. Nosso subsistema de workflow ainda não permite isso.

 

Inácio:       Hummm... entendi. Agente-C, por favor, encaminhe o Issue de número 0012099 para a equipe do subsistema de workflow. Adicione uma referência à esta conversa que tive com o Mauro.

 

Agente-C:     Issue encaminhado.

 

Mauro:        OK Inácio. Os outros dois eu termino até o fim da manhã.

 

Inácio:       OK Mauro, até mais.

 

Algumas horas depois....

 

Agente-C:     Sr. Inácio, recebi relatório de Integração Contínua. Também tenho novas informações sobres os Issues 0012098, 0012099 e 0012100.

 

Inácio:       Ótimo. Primeiro os issues.

 

Agente-C:     Os issues 00120099 e 00120100 foram dados como resolvidos por Mauro Leme. Um novo comentário foi adicionado ao issue 00120098. Deseja visualizá-lo?

 

Inácio:       Sim.

 

Na tela do Agente-C:

 

              O issue 0012099 foi relacionado como duplicata do issue 0010265 que está no status “Em Fase de Análise”.

 

Inácio:       OK. Notifique a equipe de testes noturnos sobre isso.

 

Agente-C:     Usuários notificados.

 

Inácio:       Me mostre agora o relatório de Integração Contínua.

 

Na tela do Agente-C:

 

Project:

Sinus Branch 2.25

Date of build:

15/5/2003 11:51:17

Running time:

00:21:46

Build condition:

Forced Build

Last changed:

15 may 2003 11:30:23

Last log entry:

Issue 0012100: A validação de insuficiência de saldos agora também é feita no início do processo de cadastro.

 

Tests run: 1089, Failures: 0, Not run: 6, Time: 16 min

 

Modifications since last build (2)

 

Modified

mauro.leme

Sinus/Web/NewContract.aspx.cs

Issue 0012100: A validação de insuficiência de saldos agora também é feita no início do processo de cadastro.

Modified

mauro.leme

Sinus/Core/Comprometimento.cs

Issue 0012098: Verificação de saldo > 0 antes de se efetuar o comprometimento.

 

 

Inácio:       Agente-C, por favor reabra o Issue 0012100. Atribua-o para o usuário tania.fernandes. Preciso de uma ação anti-regressão nesse Issue.

 

Agente-C:     Issue reaberto e comentário adicionado.

 

Inácio:       Agora dispare o processo de build automatizada para gerar uma nova versão desse branch. Notifique as alterações para a equipe noturna.

 

Agente-C:     Build disparada. Deseja ser informado quando o processo for concluído?

 

Inácio:       Apenas me informe se houver algum problema. Preciso ir agora.

 

 

Conceitos-Chave: Issue tracking, Branching, Nightly Builds, Monitoramento de Issues, Integração Contínua, Traceabilidade de Código-Fonte, Builds automatizadas.


 

 

 

CENA 3

 

Personagens:  Agente-C, Giovana Mendes

 

Locais: Baia de Giovana Mendes

 

Contexto:

 

                - Giovana é desenvolvedora sênior do projeto Sinus. Nesse momento, vem trabalhando na importação de movimentações financeiras no padrão OFC. O fato descrito se refere a um dia comum de trabalho.

 

 

Giovana:      Bom dia Agente-C!

 

Agente-C:     Bom dia Giovana!

 

Giovana:      A equipe noturna retornou algum problema nas tarefas que eu finalizei ontem?

 

Agente-C:     Negativo. Nenhum retorno.

 

Giovana:      OK. Qual é a minha próxima tarefa?

 

Agente-C:     Issue 0012034. Diz respeito à integração dos movimentos importados com os procedimentos de conciliação financeira.

 

Giovana:      Certo. Por favor, prepare um ambiente local para que eu possa começar a trabalhar nesta tarefa. Enquanto isso vou buscar um café.

 

Agente-C exibe na tela:

 

Iniciando procedimento de configuração de ambiente

usuário: giovana.mendes

data: 2003-07-23 08:35:33

Issue 0012034

 

start check-out procedure

 

check-out branch sinus_rc_225 to
c:\ giovana.mendes\workingspace\sinus_rc_225\**

 

building application...

 

starting required services...

 

creating web application...

 

running unit tests....

 

running functional tests...

 

building IDE project files...

 

opening IDE...

 

Agente-C:     Giovana, o procedimento de configuração e montagem de ambiente foi finalizado com sucesso. Para uma maior comodidade, apenas foram requisitados os arquivos relacionados com o Issue solicitado.

 

Giovana:      Portal-C, preciso dos detalhes relacionados com o issue 0012034. Por favor, me abra a pasta FIN-3.25. Preciso ter acesso aos documentos de análise relacionados com conciliação financeira.

 

Agente-C:     Giovana, Há 42 documentos disponíveis nesta pasta. Você gostaria que eu encontrasse algo mais específico?

 

Giovana:      Sim. Preciso de todos os cenários. Verifique se há algum modelo ou dicionário de dados disponível.

 

Agente-C:     Localizados 7 cenários em formato “doc”. Temos um arquivo modelo_conciliacao.jpg que contém palavras-chave relacionadas como modelo de dados.

 

Giovana:      Ótimo. Mais alguma coisa que possa ser interessante?

 

Agente-C:     3 dos 7 cenários apresentam um link para uma gravação de voz entitulada: “Reunião de Levantamento – Sucursal de Brasília”. O arquivo possui 27 minutos de duração.

 

Giovana:      Ótimo. Vou começar por aí. Gostaria de ouvir o conteúdo dessa reunião.

 

Dois dias depois...

 

Giovana:      Agente-C, estou pronta para efetuar commit nos arquivos relacionados com o Issue 0012034. Como está o status de integração contínua?

 

Agente-C:     Integração Contínua em status de Building.

 

Giovana:      OK. Avise-me quando o status for alterado.

 

10 minutos depois...

 

Agente-C:     Giovana, Integração Contínua em status “Sleeping”.

 

Giovana:      Vou começar a enviar os arquivos. Agente-C, por favor verifique se a versão dos arquivos que eu modifiquei foram modificadas por outra pessoa desde que comecei esta tarefa.

 

Agente-C:     Verifiquei que 3 arquivos foram modificados. Deseja que eu inicie o procedimento de merge?

 

Giovana:      Por favor.

 

Agente-C:     2 arquivos mesclados com sucesso. Houve um conflito no terceiro arquivo.

 

Giovana:      Deixe-me ver...

 

Giovana:      hummm, parece-me uma correção efetuada pelo Mauro no Issue 0012098. Há algum teste anti-regressão relacionado com esse issue?

 

Agente-C:     Sim. Foi criado por Tânia Fernandes e já está disponível para download.

 

Giovana:      Ok. Faça o download de todos os arquivos modificados devido a implementação do issue 0012098, e rode os testes funcionais.

 

Agente-C:

 

Iniciando procedimento de checagem anti-regressão

usuário: giovana.mendes

data: 2003-07-25 11:43:03

target: Issue 0012098

 

updating files:

 

Sinus/Core/Comprometimento.cs branch sinus_rc_225 to
c:\ giovana.mendes\workingspace\sinus_rc_225\**

 

building application...

 

creating web application...

 

running functional tests for issue 0012098...

 

Successfull!

 

 

Agente-C:     Giovana, o procedimento de checagem anti-regressão indica que sua versão está estável.

 

Giovana:      Correto. Vou efetuar o commit nos arquivos.

 

Agente-C:    

cvs commit Comprometimento.cs (in directory c:\ giovana.mendes\workingspace\sinus_rc_225\core\)

Checking in Comprometimento.cs;

e:/cvsrep/Sinus/Core/Comprometimento.cs,v  <--  Comprometimento.cs

new revision: 1.47; previous revision: 1.46

done

 

***** CVS exited normally with code 0 *****

 

Agente-C:     O issue 0012034 foi marcado como resolvido e disponibilizado para a equipe noturna.

Giovana:      Agente-C. Inicie pra mim os procedimentos de Integração Contínua.

 

Agente-C:     Integração Contínua iniciada.

 

Giovana:      Tenho duas novas publicações a fazer. Arquive junto à pasta FIN-3.25 por favor. Uma diz respeito a uma consulta para recuperar a lista de movimentações financeiras importadas e conciliadas em um dado período. A outra a instruções relacionadas com o padrão OFC.

 

Agente-C:     Documentos arquivados.

 

20 minutos depois...

 

Agente-C:     A integração contínua foi finalizada com sucesso.

 

Giovana:      OK. Estou saindo pro almoço agora.

 

 

Conceitos-Chave: Issue tracking, Configuração de ambiente automatizada, Traceabilidade de Código-fonte, Gestão de Requisitos e documentação, Integração Contínua, Branching, Merge, Conflitos de Arquivos alterados simultâneamente, Automação de Testes Funcionais, Regressão,

 

 


Posted by: alisson.vale
Posted on: 2/8/2006 at 10:06 PM
Categories: SCM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed
 
 

Comments (1) -

Marcos Vinicius Guimarães Brazil

Wednesday, March 05, 2008 8:54 AM

Marcos Vinicius Guimar&#227;es

Alisson,

eu já tinha lido o artigo e achei interessante sua adaptação para empresas de software.

Só uma coisa quanto ao blog. Aqui no Firefox o texto do post está ficando maior do que a área branca de postagem e invadindo a área colorida à direita. Com isto fico dificil ler o texto todo.

Abraços

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading