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
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
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).
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.
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.