Вы находитесь на странице: 1из 7

Aplicação da Gerência de Configuração em Métodos Ágeis de

Desenvolvimento de Software
Cleyton Vanut Cordeiro de Magalhães 1, Ronnie Edson de Souza Santos 1, Isledna Rodrigues de
Almeida2
1
Aluno de graduação no curso de Bacharelado em Sistemas de Informação.
2
Professora Assistente do curso de Bacharelado em Sistemas de Informação.
1 2
, Universidade Federal Rural de Pernambuco (UFRPE)
Unidade Acadêmica de Serra Talhada (UAST)
Serra Talhada - Brasil

{ronnie.gd, cleyton.vanut, isledna}@gmail.com

RESUMO
A Gerência de Projetos reprensenta uma das atividades mais importantes do desenvolvimento de software, pois promove
o equilibrio entre as ações de escopo, tempo, custo, qualidade e bom relacionamento com o cliente. A maior eficiência no
gerenciamento dos projetos pode ser alcançada pela execução de algumas atividades de apoio com foco em fatores
específicos. Neste contexto, encontra-se a Gerência de Configuração e Mudanças, uma atividade que possibilita o
acompanhamento e o controle de artefatos, processos e ferramentas, durante todo o ciclo de vida do software. O objetivo
deste estudo é descrever, a partir do conteúdo, entrevistas e trabalhos acadêmicos, como a Gerência de Configuração e
Mudanças vem sendo aplicada em ambientes de desenvolvimento ágil de sistemas e, a partir disto, indicar a melhor
maneira de executar esta atividade neste cenário.

PALAVRAS-CHAVE
Engenharia de Software, RUP, Desenvolvimento Ágil, Scrum, Gerência de Configuração e
Mudança

1. INTRODUÇÃO
A presença dos computadores nas mais diversas áreas da atuação humana tem possibilitado uma
crescente demanda por soluções computacionais, tornando o desenvolvimento de software uma atividade de
suma importância na sociedade contemporânea.
Visando melhorar a qualidade dos produtos de software e o aumento na produtividade das equipes de
desenvolvimento, surgiu a Engenharia de Software, responsável por tratar de aspectos relacionados ao
estabelecimento de processos, métodos, técnicas, ferramentas e ambientes de suporte ao desenvolvimento.
Uma das atividades de maior preocupação para a Engenharia de Software, pela necessidade de
produzir sistemas com mais qualidade e que atendesse melhor os requisitos do cliente, é o gerenciamento de
projetos. A gerência utiliza a aplicação de conhecimentos, habilidades e técnicas visando atingir o sucesso
dos projetos de software (SOMMERVILLE, 2007).
Segundo Koontz e O’Donnel (1980), gerenciar consiste em executar atividades e tarefas que têm
como propósito planejar e controlar atividades de outras pessoas para atingir objetivos que não podem ser
alcançados caso as estas atuem por conta própria, sem o esforço sincronizado dos subordinados. A gestão de
projetos objetiva estabelecer um equilíbrio entre as ações de escopo, tempo, custo, qualidade e bom
relacionamento com o cliente. O sucesso está relacionado com a entrega do produto dentro do prazo previsto,
do custo orçado e com o nível de desempenho e aceitação do cliente adequados.
Assim, a Gerência de Projetos de Software pode ser apresentada em dois tipos de abordagens
diferentes: a abordagem tradicional e a abordagem ágil.
A abordagem tradicional identifica uma sequência de passos a serem executados em cinco fases
(iniciação, planejamento, execução, controle e encerramento) e nove áreas de conhecimento (gerência de
integração, gerência de escopo, gerência de tempo, gerência de custo, gerência de qualidade, gerência de
recursos humanos, gerência de comunicações, gerência de riscos e gerência de aquisições). Baseia-se em
processos definidos e documentados que passam por melhorias através de um planejamento detalhado. As
atividades são disciplinadas e permitem à gerência a medição e o controle de todas as etapas do
desenvolvimento de software e da equipe do projeto, onde cada membro tem o seu papel claramente definido
e os artefatos gerados em cada fase são os registros da evolução do projeto.
Na abordagem ágil a principal característica da Gerência de Projetos de Software é a aceitação de
mudanças nos requisitos, no planejamento de escopo e nas prioridades do projeto. Neste contexto a gestão
deve focar na simplicidade e na rapidez onde a idéia dominante é a redução dos custos e do tempo de tomada
de decisão para a manutenção das mudanças que surgirem.
Para proporcionar maior eficiência na gerência de projetos de softwares algumas atividades auxiliares
são aplicadas permitindo maior apóio ao gerenciamento de fatores específicos. Neste contexto, encontra-se a
Gerência de Configuração e Mudanças (GCS), executada para possibilitar o acompanhamento e o controle de
artefatos, processos e ferramentas, durante todo o ciclo de vida do software. O Processo Unificado da
Rational (RUP), um exemplo de abordagem tradicional, apresenta uma série de conceitos e especificações de
como executar a Gerência de Configuração e Mudança no desenvolvimento de software, enquanto os
métodos ágeis como o Scrum, não especificam como a atividade deve ser incorporada ao processo, ficando a
cargo da equipe a melhor forma de execução.
O objetivo deste trabalho é analisar como a Gerência de Configuração e Mudança vem sendo aplicada
em ambientes de desenvolvimento ágil de sistemas para, a partir disto, indicar a melhor maneira de executar
esta atividade neste cenário. O método de desenvolvimento ágil Scrum será utilizado para a descrição dos
propósitos desta pesquisa.
A partir desta introdução, este artigo segue organizado em cinco seções. A segunda seção apresenta
elementos conceituais acerca da temática do assunto. Na seção seguinte é apresentada a metodologia de
pesquisa adotada para realização dos trabalhos. Na quarta seção, são apresentados e discutidos os resultados
empíricos obtidos no estudo e, por fim, as considerações finais.

2. REFERÊNCIAL CONCEITUAL

RUP (Rational Unified Process)


O Rational Unified Process (RUP) (figura 1) é um processo de engenharia de software cuja
abordagem é baseada em disciplinas para atribuir tarefas e responsabilidades dentro de uma organização de
desenvolvimento. Sua meta é garantir a produção de software de alta qualidade que atenda às necessidades
dos usuários dentro de um cronograma e de um orçamento previsíveis (SOMMERVILLE, 2007).
Um dos principais pilares do RUP é o conceito de best practices (melhores práticas), que são
regras/práticas que visam reduzir o risco, existente em qualquer projeto de software, e tornar o
desenvolvimento mais eficiente. São elas: a) desenvolver iterativamente; b) gerenciar requerimentos; c)
utilizar arquiteturas baseadas em componentes; d) modelar visualmente; e) verificação contínua de qualidade,
e; f) controle de mudanças (PISKE, 2003).
O processo de desenvolvimento é dividido em ciclos, sendo este subdividido em 4 fases consecutivas
que representam a dimensão estática do RUP. Na fase inicial, conhecida como Concepção, é feita uma
discussão sobre o problema a ser trabalhado, definição do escopo do projeto e estimativa de recursos
necessários para a execução do projeto. A fase seguinte é chamada de Elaboração, tendo como propósito
analisar o domínio do problema, desenvolver o plano de projeto, estabelecer a arquitetura e eliminar os
elementos de alto risco. A terceira fase ou Construção compreende a modelagem do sistema e o
desenvolvimento em si, onde o sistema é efetivamente programado e testado. Por fim, a fase final chamada
de Transição, trata da implantação do sistema no ambiente do usuário, bem como o treinamento necessário
ao uso do sistema (PRESSMAN, 2006).
A dimensão dinâmica da metodologia é definida a partir de 9 disciplinas que são executadas dentro
das fases do processo. De maneira resumida, a Modelagem de Negócio visa conhecer a estrutura
organizacional aonde o software será implantado, a Elicitação de Requisitos define em concordância com os
clientes sobre o que o sistema deve fazer, a disciplina de Análise e Design é responsável por converter os
requisitos em um modelo a ser utilizado pela Implementação que deve definir e organizar o código
integrando os resultados produzidos, os Testes enfatizam a qualidade do produto desenvolvido e a
Implantação garante que o produto de software seja disponibilizado da melhor forma aos seus usuários
finais. Além destas tem-se a Gerência de Projetos que se concentra principalmente com os aspectos de
planejamento, riscos e organização das iterações, a Gerência de Configuração e Mudanças que controla os
inúmeros artefatos produzidos nas quatro fases do processo, e por fim, a disciplina de Ambiente cuja
finalidade é oferecer organização ao ambiente de desenvolvimento (SOMMERVILLE, 2007).

Figura 1. Representação do Processo RUP


Fonte: SOMMERVILLE, 2007

No propósito deste estudo, pode-se situar o RUP como uma abordagem tradicional para o
desenvolvimento de produtos de software. A Gerência de Configuração e Mudanças é definida como uma das
atividades essenciais no processo, sendo executada obrigatoriamente durante as 4 fases do desenvolvimento,
com o propósito de controlar as versões do sistema e da documentação para que possam ser evitadas as
confusões dispendiosas, garantindo que os artefatos produzidos não entrem em conflito durante o andamento
do projeto.

Scrum
O Scrum é um método ágil para gerência de projetos de software, cujo foco da gestão está nos
esforços necessários para a entrega das funcionalidades que agregam maior valor para o negócio do cliente,
no menor tempo possível. Por fazer parte de uma abordagem de desenvolvimento mais flexível que a
tradicional, o Scrum não requer tanta prioridade para questões como processos e ferramentas específicos,
documentação detalhada, negociação de contratos e planos inicias para o processo (SOMMERVILLE, 2007).
A figura 2 mostra a representação do método que possui como característica principal a divisão do
processo em pequenos ciclos de desenvolvimento chamados Sprints, onde um conjunto de funcionalidades
pré-definidas deve ser concluído e entregue aos clientes em intervalos regulares. As equipes são bem
pequenas e trabalham em conjunto para atingir o resultado desejado. Para monitorar o progresso do processo
são realizadas reuniões diárias com toda a equipe, a fim de refletir sobre o trabalho do dia anterior, do dia
corrente e do dia seguinte, além de reuniões com os stakeholders (todos os envolvidos no processo) no fim de
cada ciclo de desenvolvimento, o que transforma o cliente em um integrante da equipe, que mantém feedback
constante a respeito do andamento do sistema (SANTOS, MAGALHÃES, CORREIA NETO, 2009).
Figura 2. Representação gráfica do Scrum
Fonte: SOMMERVILLE, 2007

Neste método o papel de gerente do projeto é executado pelo Scrum Master que tem como principal
função remover qualquer fator que venha a impedir a conclusão do objetivo. Pode-se dizer que este
profissional atua como um firewall entre a equipe e qualquer fator desestabilizador. Outro de seus papéis
importantes é assegurar que a equipe esteja utilizando corretamente as práticas de Scrum e motivada a atingir
o foco principal do sprint.
A metodologia a qual pertence o Scrum (Metodologia Ágil) é vista como uma alternativa a engenharia
de software convencional, pois são executadas somente as atividades necessárias para o andamento do
projeto. Sendo assim, a documentação produzida deve ser estritamente necessária para ajudar no
desenvolvimento do projeto e as práticas auxiliares da engenharia de software não são formalmente definidas
no processo (INFOQ, 2009).

Gerência de Configuração e Mudança (GCS)


Na Engenharia de Software a Gerência de Configuração e Mudança está relacionada com aspectos
gerencias e técnicos. A sua finalidade é estabelecer e manter a integridade das versões dos produtos de
software ao longo do seu ciclo de vida, possibilitando a identificação da configuração dos artefatos, o
controle sistemático das mudanças na configuração, a rastreabilidade ao longo do ciclo de vida do software e
o registro das alterações realizadas (CUNHA, PRADO E SANTOS, 2004).
Dentre as questões que a GCS é responsável por responder estão: a) o que mudou e quando? b) por
que mudou? c) quem fez a mudança? d) podemos reproduzir esta mudança? Com isto, busca-se o controle
efetivo das ações que possibilitam a qualidade do processo e do sistema. Por este motivo, atualmente a GCS é
uma das ramificações mais sucedidas da engenharia de software, considerada uma ferramenta essencial para
o sucesso de qualquer projeto de desenvolvimento, sendo inclusive necessária para o atendimento do segundo
nível de maturidade do CMM (ESTUBLIER apud OLIVEIRA, 2007).
Segundo Pressman (2006), as atividades de gerenciamento de configuração de software são:
Identificação da Configuração: processo de identificação das inúmeras saídas geradas pelo
desenvolvimento do software, capaz de prover a infra-estrutura necessária para as demais atividades.
Controle: atividade responsável pela gerência das mudanças ocorridas durante o ciclo de vida do software. É
fortemente facilitada pelo uso de ferramentas que proporcionam benefícios, como o rastreamento de soluções
para problemas reportados durante o processo de requisição de mudança.
Administração do Estado: tem como finalidade básica reportar transações que ocorrem entre as entidades
controladas, estando relacionada principalmente com a geração de relatórios com base nas informações da
configuração do software.
Auditagem e Gerenciamento de Liberações: objetiva a verificação da conformidade dos produtos e
processos com os padrões, guias, planos e procedimentos estabelecidos. Engloba todas as atividades
relacionadas com as auditorias realizadas no projeto.
Entrega da Configuração do Software: nesta etapa acontece o processo de empacotamento do produto da
atividade de integração de software juntamente com outros produtos do processo de desenvolvimento, como
a documentação do software e instruções de instalação e atualização. Sendo este o gerenciamento das
liberações.
Na abordagem tradicional, baseada no modelo da Rational (RUP), a Gerência de Configuração e
Mudanças é apresentada como a sétima disciplina, sendo obrigatoriamente executada em todas as fases de
desenvolvimento para manter a integridade das versões dos artefatos do processo. Enquanto isso, no caso de
uma abordagem ágil, o gerenciamento procura aumentar a leveza e a rapidez no desenvolvimento do
software, permitindo a supressão de algumas atividades do processo. Desta forma, pretende-se demonstrar
como a Gerência de Configuração e Mudanças é executada no método de desenvolvimento ágil Scrum e
quais as principais preocupações da atividade neste contexto.

3. METODOLOGIA
Este é um estudo de natureza exploratória e descritiva, apresentando uma abordagem qualitativa com
o intuito de analisar e descrever a aplicação da Gerência de Configuração e Mudanças no método de
desenvolvimento ágil Scrum.
O estudo exploratório é definido como uma pesquisa que tem por objetivo proporcionar maior
familiaridade com um problema, a fim de torná-lo mais explícito, principalmente ao trata-se de um tema
pouco investigado ou que não tenha sido abordado anteriormente (SAMPIERI et al. apud LUCIANO et al.).
A pesquisa descritiva tem característica conclusiva com a finalidade de apresentar alguma coisa, sendo a
abordagem qualitativa utilizada para que haja uma maior percepção e compreensão do contexto do problema
(MALHOTRA, 2006).
Para a coleta de dados optou-se por utilizar entrevistas abertas via email com profissionais que
trabalham com o método Scrum, e documentos referentes ao tema.
Foram conduzidas entrevistas distintas, com quatro tipos de profissional que possuem perspectivas
diferentes sob o assunto: um dos idealizadores do método, um Scrum Trainer1, um Scrum Master² e um
pesquisador da área. O objetivo principal da utilização deste procedimento de coleta foi compreender a
aplicação do método ágil no processo de desenvolvimento de software e a utilização e supressão de
atividades e técnicas a fim de promover a leveza e rapidez neste processo. Além disso, a revisão bibliográfica
em uma amostra de quinze trabalhos acadêmicos que explanavam experiências sobre desenvolvimento ágil
possibilitou uma análise das experiências de profissionais que trabalham em projetos deste tipo, objetivando
identificar a execução da GCS na prática.
Os artigos para análise foram selecionados na Revista Eletrônica de Sistemas de Informação, Revista
Eletrônica Visão Ágil e na Revista Eletrônica Hífen, em suas edições a partir de 2000. Outro meio utilizado
foram os congressos da área de Informática cujos artigos estavam disponibilizados no site Google
Acadêmicos, tendo prioridade as publicações dos últimos 9 anos. Para fazer parte da amostra, os artigos
deveriam descrever algum tipo de processo de desenvolvimento que utilizava o Scrum, ou algum tipo de
análise e experiência com o método.
Para a análise dos dados utiliza-se como ferramenta de investigação a análise de conteúdo, onde os
resultados da pesquisa foram agrupados de acordo com os objetivos do estudo, fazendo interpretações e
contraposições de acordo com a natureza metodológica proposta.

4. RESULTADOS
A partir da análise dos dados coletados nas entrevistas, pode-se inferir que o Scrum não especifica que
práticas da engenharia devem ser aplicadas ao projeto. Isto deve-se ao fato do método priorizar a entrega das
funcionalidades de maior interesse do cliente no menor tempo possível, o que acarreta a omissão de técnicas
importantes em métodos tradicionais de desenvolvimento.
No entanto as equipes de projetos de software que utilizam o Scrum como método de
desenvolvimento, tem grande preocupação com a gerência dos processos, sendo que qualquer versão anterior
do software precisa ser reconstruída rapidamente, caso seja necessário. Com esta técnica pode-se perceber a
incorporação da Gerência de Configuração e Mudanças pela Gerência de Projetos dentro do processo.
Para a análise do conteúdo dos artigos e documentos, utilizou-se a tabela abaixo (quadro 1) como base
para a organização dos dados. As informações presentes no quadro são o título do trabalho, a identificação
dos autores e o ano de publicação. A amostra utilizada nesta etapa foi de 15 trabalhos.

Quadro 1: Estrutura para Análise dos Artigos Selecionados


Aspecto Descrição Ano Tipo GCS
Adoção De Métodos Ágeis Em Claudia De O. Melo, 2010 Desenvolvimento Implícito
Uma Instituição Pública De Gisele R. M.
Grande Porte - Um Estudo De Ferreira
Caso
Aspectos Sociotécnicos Do Antonio F. Dos 2009 Análise/Desenvolvimento Explícito
Desenvolvimento De Software Santos Júnior,
Utilizando Scrum Em Um Caso Rodrigo Pereira Dos
Prático Santos
Análise De Gerenciamento De Márcia Savoine, 2009 Análise Implícito
Projeto De Software Utilizando Lucyano Martins,
Metodologia Ágil XP E Scrum: Mayton Rocha,
Um Estudo De Caso Prático Cirlene Dos Santos
Fonte: os autores.

A coluna Tipo está relacionada com a abordagem utilizada para tratar do tema, recebendo a
denominação: desenvolvimento de um sistema, análise do método ou outro tipo. A coluna GCS descreve de
que forma a Gerência de Configuração e Mudanças é apresentada no conteúdo do texto, podendo assumir os
estados: Não, quando a GCS não estava referenciada de nenhuma forma; Implícito, quando pelo menos uma
atividade era referenciada de forma implícita e; Explícito, quando no trabalho alguma parte do texto era
dedicada a descrever a aplicação da GCS.
Do total de trabalhos analisados 20% (3 artigos) não mencionavam ou fazia algum tipo de relação com
a GCS, 46,6% (7 artigos) apresentavam a utilização das técnicas da GCS de forma implícita, agregada a
alguma técnica do Scrum e 33,3% (5 artigos) faziam referência explícita a GCS e tratavam da sua aplicação
no processo de desenvolvimento que utiliza o método.
Os artigos que faziam referência implícita aos processos da Gerência de Configuração e Mudança
mostravam que as práticas de controle e organizações das versões eram incorporadas a outras técnicas no
método. O monitoramento do projeto, por exemplo, é feito através dos gráficos de Burndown e das reuniões
diárias, enquanto o Product BurnDown ajuda a monitorar o planejamento das entregas das funcionalidades,
sendo o Scrum Master o integrante da equipe responsável por não permitir a perda do foco nestas atividades.
Outro ponto importante, encontrado nos trabalhos classificados como Explícito, é a relação da
Gerência de Configuração e Mudanças com o modelo CMM. Este fato é entendido pelas exigências do
modelo de maturidade para o gerenciamento das versões e dos artefatos do projeto para obtenção do segundo
nível de maturidade.
Entende-se que atualmente a Gerência de Configuração e Mudanças está presente no ambiente de
desenvolvimento ágil de maneira predominantemente implícita e não explícita como em ambientes
convencionais. Este fato está ligado à necessidade que os métodos ágeis, como o Scrum, tem de manter
algumas práticas desta atividade, como a identificação das configurações de mudança e o controle de versões
para que o trabalho seja executado corretamente. No entanto estes processos não são claramente definidos
como na abordagem tradicional.

5. CONCLUSÃO
O Scrum tem como principais vantagens, a velocidade de desenvolvimento, associada à diminuição
dos bugs de implementação e à maior qualidade do produto final. Além disso, o método está adaptado a
mudanças e possui grande colaboração do cliente no momento da avaliação de um ciclo de desenvolvimento
e definição das novas prioridades, o que torna o método mais robusto para projetos em que existam
constantes conflitos de interesses e necessidades. Paralelo a isto, a Gerência de Configuração e Mudanças
carrega como vantagens a manutenção da integridade dos itens de software ao longo de todo o ciclo de vida
do projeto, o controle das diversas versões produzidas, garantindo a completeza, a consistência e o correto
armazenamento das informações geradas no processo.
Assim, para a correta utilização das práticas de Gerência e Configuração de Mudanças em ambientes
Scrum faz-se necessário uma adaptação do planejamento dos projetos, a fim de se obter o alto nível de
controle de tudo que for produzido nas iterações. Com isto o método pode oferecer uma capacidade ainda
maior de flexibilidade, adaptação e velocidade para os projetos de software. Desta forma conclui-se que a
execução da GCS nos ambientes de desenvolvimento que utilizam o Scrum, irá oferecer ainda mais
flexibilidade ao método, uma vez que as possíveis alterações nos requisitos poderão ser apoiadas pelo
controle e a organização desta atividade. No entanto, esta prática pode ser prejudicada pela principal
desvantagem do Scrum: o pouco planejamento de escopo exigido pelas equipes de projeto.
Dentre as dificuldades encontradas para a realização deste estudo está o pequeno número de trabalhos
acadêmicos envolvidos com o tema e disponíveis no meio digital. Como trabalhos futuros, pretende-se
simular um ambiente de desenvolvimento Scrum para a construção de projeto de software cuja execução
deverá utilizar todos os processos e técnicas da Gerência de Configuração e Mudanças, incorporando-a no
contexto da abordagem ágil de desenvolvimento de software.

REFERÊNCIAS
CISCON, L. A. Um Estudo E Uma Ferramenta De Gerência De Projetos Com Desenvolvimento Ágil De
Software. Tese De Mestrado. Universidade Federal De Minas Gerais, 2009.
CUNHA, J. R. D. D. C.; PRADO, A. F.; SANTOS, A. C. dos. Uma Abordagem para o Processo de
Gerenciamento de Configuração de Software, Revista Eletrônica de Sistemas de Informação (RESI), São
Paulo, 2004.
FREITAS, H. R.; MIRANDA, J. M. Metodologias Ágeis para o Desenvolvimento de Software, Scrum e
Extreme Programming X Metodologias Tradicionais RUP. Universidade Cândido Mendes – Campos, RJ,
Brasil, 2008.
INFOQ. Scrum e a Crise Mundial - Por que Scrum é a melhor opção para projetos em tempos de crise?
Disponível em: < http://www.infoq.com/br/articles/scrum-crise-mundial> Acesso em: jul/2010.
KOONTK, H. e O’DONNEL,C. Os Princípios de Administração: Uma Análise das Funções
Administrativas. São Paulo, Pioneira. 1980.
LUCIANO, E. M.; TESTA M. G.; ROHDE L. R. Gestão de Serviços de Tecnologia da Informação:
Identificando a Percepção de Benefícios e Dificuldades para a sua Adoção. Anais do XXI EnANPAD,
Rio de Janeiro, RJ. 2007
MALHOTRA, N. K. Pesquisa De Marketing: Uma Orientação Aplicada. 4.ed. Porto Alegre: Bookman,
2006.
OLIVEIRA, V. N. P. de. Requisitos de Ferramentas de Gerenciamento de Configuração. Departamento
de Ciência da Computação – Universidade Federal de Minas Gerais, 2007.
PISKE, O. R. RUP-Rational Unified Process. Universidade do Contestado – UNC, Santa Catarina, 2003.
PRESSMAN, R. S. Engenharia de Software - 6ª Ed. Editora Mcgraw-hill Interamericana, 2006.
SANTOS R. E. S.; MAGALHÃES C. V. C.; CORREIA NETO J. S. Scrum - Principais Vantagens do
Método no Processo de Desenvolvimento de Software. Anais do 1º Encontro Regional de Tecnologia e
Negócios, ERTEN, 2009.
SOMMERVILLE, I. Engenharia de Software. 8.ed, São Paulo: Editora Addison-Wesley, 2007.

Вам также может понравиться