Escolar Documentos
Profissional Documentos
Cultura Documentos
CARACTERIZAO DO PROCESSO DE
DESENVOLVIMENTO DE SOFTWARE:
UM ESTUDO DE MLTIPLOS CASOS DA
REGIO METROPOLITANA DE RECIFE
Daniel de Araujo Martins (ufrn)
danielmartins@ufrnet.br
Anatalia Saraiva Martins Ramos (ufrn)
anatalia@pesquisador.cnpq.br
Fernando Dias Lopes (ufrgs)
flopes@ufrnet.br
1. Introduo
Estudos na rea de sistemas de informao so fundamentais para formulao e difuso de
novos conhecimentos. preciso compreender no s os impactos, mas tambm o
desenvolvimento dos sistemas e o porqu das organizaes estarem adotando-os em uma
gama de aplicaes. Reconhece-se tambm que muito esforo tem sido desprendido, inclusive
pelas cincias administrativas, para compreender os motivos e razes capazes de influenciar o
processo de estruturao tecnolgica das organizaes. Tais investigaes tm focado
esforos principalmente nos aspectos organizacionais da adoo e impactos da tecnologia
(HOPPEN; MEIRELLES, 2005; BENBASAT; ZMUD, 2003; ORLIKOWSKI; IACONO,
2001; IIVAR; HIRSCHHEIM; KLEIN, 1998).
Nesse sentido, muitas teorias das mais diferentes disciplinas e variveis de matizes diversas
so componentes de instrumentos utilizados em investigaes de natureza organizacional e de
cunho tecnolgico. Se por um lado, essa elevada diversidade de estudos tem permitido
compreender o fenmeno de estruturao tecnolgica a partir de perspectivas diferentes, por
outro, tem levado a uma miscelnea de estudos e, conseqentemente, reforado o que
Benbasat e Zmud (2003) tm chamado de crise de identidade da disciplina de Sistema de
Informao (SI).
Orlikowski e Iacono (2001) defendem que a compreenso dos Sistemas de Informao passa
pelo entendimento dos artefatos de Tecnologia da Informao (TI) que o compem e dos seus
subcomponentes e ciclo de vida. O artefato de TI entendido como sendo qualquer recurso
tecnolgico empregado nos sistemas de informao organizacionais. Orlikowski e Iacono
(2001) afirmam ainda que os artefatos de TI nem so estticos nem imutveis, mas dinmicos.
Neste contexto, compreender a dinmica do processo de estruturao tecnolgica em sua
totalidade de fundamental importncia para a compreenso dos estudos de SI. importante
pensar como novas tecnologias se relacionam com estruturas estabelecidas em que so
inseridas (ambiente), mas tambm o a compreenso das implicaes que as estruturas
estabelecidas (ambiente) tm sobre a estruturao de novas tecnologias. Isso permite pensar
as ditas caixas pretas como dinmicas, que se formam a partir de relao estabelecidas com
o ambiente.
Todavia, as investigaes sobre softwares se do, na maioria dos casos, a partir do processo
de adoo, uso e impactos gerados no contexto em que so aplicados. Na maioria dessas
pesquisas, os softwares so considerados um artefato esttico e acabado, sem que sejam feitas
reflexes sobre elementos importantes do seu processo de desenvolvimento (planejamento,
criao, estruturao e desenvolvimento) e o contexto em que so desenvolvidos.
De fato, poucos so os estudos das cincias administrativas realizados na perspectiva e no
contexto do desenvolvimento dos softwares. E os que so, muitas vezes, assumem um vis
tcnico da engenharia de software, desconsiderando muitos elementos importantes para
composio da rede nomolgica associados ao fenmeno em pauta.
A questo levantada diz respeito necessidade de se compreender os apectos relacionados aos
softwares, particularmente, no momento de seu desenvolvimento, levando-se em considerao
variveis relacionadas ao contexto ambiental e organizacional que implicam direta ou
indiretamente nas metodologias e prticas de desenvolvimento.
O problema a ser desenvolvido nessa pesquisa envolve a caracterizao do processo de
produtivo por trs do desenvolvimento do software, descrevento as matodologias e prticas
melhorias funcionais, que resultam de exigncias para alm de suas exigncias funcionais; e
as prevenes, que assume que mudanas, tanto no ambiente externo, quanto de
especificaes, vo ocorrer, portanto j prepara o produto para que o impacto causado por
essas alteraes no afete o software.
Sommerville (2003) compartilha pensamento semelhante, pois afirma que embora existam
vrios processos para o desenvolvimento de software, existem atividades fundamentais
comuns a todos eles:
Especicao de Software: definio das funcionalidades (requisitos) e das restries do
software. Geralmente uma fase em que o desenvolvedor conversa com o cliente para
definir as caractersticas do novo software.
Projeto e Implementao de Software: o software produzido de acordo com as
especificaes. Nesta fase so propostos modelos atravs de diagramas, e estes modelos
so implementados em alguma linguagem de programao.
Validao de Software: o software validado para garantir que todas as funcionalidades
especicadas foram implementadas.
Evoluo de Software: o software precisa evoluir para continuar sendo til ao cliente.
Roselino (2006) expe, sob a perspectiva tcnica e gerencial, os diferentes nveis hierrquicos
dessas funes sob a forma de uma pirmide invertida. Na base estreita, estariam as atividades
mais estratgicas para a firma e de maior potencial de inovao. Essas atividades mais densas
em conhecimento constituiriam a base para o desenvolvimento das outras funes de design.
Nesse sentido, identificam-se nas etapas anteriores produo propriamente dita, os elos
hierarquicamente superiores do processo produtivo do software. As etapas ou funes mais
simples requeridas pelo processo produtivo do software so aquelas relacionadas
programao e testes: a codificao um processo relativamente simples, no est baseada
em criatividade, conhecimento organizacional, ou interao com o demandante. Programao
comum representa mais de 80% das atividades envolvidas e requer qualificao
comparativamente reduzida (SCHWARE, 1992).
Essa etapa do processo baseada em trabalho rotineiro, com funes repetitivas que exigem
um trabalhador com qualificao frequentemente de nvel tcnico. Existe, ento, nessa diviso
do trabalho no desenvolvimento do software, uma separao entre funes associadas
concepo, concentrada nas etapas de anlise de requisitos e design de alto nvel, intensiva em
conhecimento tcito e desempenhada por profissionais altamente qualificados, e a execuo,
localizadas nas etapas de programao e testes, em que o conhecimento codificado, exigindo
programadores, usualmente de formao tcnica.
Tambm, deve-se ressaltar que, para tornar o desenvolvimento de software uma atividade
mais estruturada, surgiram modelos de processo de software, que visam a organizar o
desenvolvimento, utilizando diversas tcnicas e mtodos (SOMMERVILLE, 2003).
Dependendo do tipo de projeto que ser desenvolvido, modelos diferentes sero utilizados,
porm, todos seguem um determinado ciclo, que vai determinar a metodologia adotada.
Segundo Pressman (2002), apesar de existir em qualquer processo de desenvolvimento de
software, as metodologias sofrem variaes de acordo com o objetivo pretendido pelo sistema
organizacional. Em outras palavras, a metodologia empregada mantm relao com o modelo
de negcio adotado pela empresa desenvolvedora de software. Tambm se busca evidenciar
que as metodologias e praticas empregadas podem manter relao com o ambiente no qual as
empresas esto inseridas. Com base nessa premissa, que se assume, nesse trabalho, que tais
variaes podem ser decorrentes de foras institucionais, atores e do modelo de negcio da
empresa, sendo as opes feitas no decorrer dessas etapas provenientes da interao entre o
ambiente institucional, os modelos de negcios definidos e as metodologias de
desenvolvimento.
De forma geral, pode-se inferir, a partir de levantamento exaustivo na literatura, que tais
metodologias esto classificadas em dois paradigmas principais, quais sejam: metodologias
tradicionais e metodologias geis.
2.2. Paradigmas da engenharia de software
Na literatura, constatam-se diversas metodologias e prticas empregadas no processo de
desenvolvimento de software. Tambm evidencia-se que tais metodologias esto classificadas
dentro de dois paradigmas principais, quais sejam: tradicional e gil. As metodologias
consideradas dentro do paradigma tradicionais, tambm chamadas de orientada a
documentao, tm como caracterstica marcante serem divididas em etapas ou fases muito
bem definidas e que englobam atividades como anlise, modelagem, desenvolvimento e
testes. Cada fase concluda gera um marco, que geralmente algum documento, prottipo do
software, um diagrama de UML ou mesmo uma verso do sistema (PRESSMAN, 2002).
importante dizer que essas metodologias surgiram em um contexto de desenvolvimento de
software muito diferente do atual, baseado apenas em mainframes e terminais burros
(ROYCE, 1970). Na poca, o custo de fazer alteraes e correes era muito alto, uma vez
que o acesso aos computadores era limitado e no existiam modernas ferramentas de apoio ao
desenvolvimento do software. Por isso, o software era todo planejado e documentado antes de
ser implementado.
Contudo, as metodologias tradicionais ainda so amplamente empregadas no processo de
desenvolvimento de softwares, bem como ensinadas nas disciplinas de engenharia de software
(SOMMERVILLE, 2003). De fato, estas so a base do desenvolvimento de diversas
organizaes, pois apresentam a possibilidade de controle rigoroso sobre o processo produtivo
de software.
Por outro lado, o termo metodologias geis tornou-se popular em 2001 quando dezessete
especialistas em processos de desenvolvimento de software representando os mtodos Scrum
(SCHWABER; BEEDLE, 2002), Extreme Programming (XP) (BECK, 1999) e outros,
estabeleceram princpios comuns compartilhados por todos esses mtodos. Foi ento criada a
Aliana gil e o estabelecimento do Manifesto gil.
Os conceitos chave desse manifesto so: indivduos e interaes ao invs de processos e
ferramentas; software executvel ao invs de documentao; colaborao do cliente ao invs
de negociao de contratos; e respostas rpidas a mudanas ao invs de seguir planos.
O Manifesto gil no rejeita os processos e ferramentas, a documentao, a negociao de
contratos ou o planejamento, mas simplesmente mostra que eles tm importncia secundria
quando comparado com os indivduos e interaes, com o software estar executvel, com a
colaborao do cliente e as respostas rpidas a mudanas e alteraes (KOSCIANSKI e
SOARES, 2006).
Enfim, segundo Pressman (2002), apesar de existir em qualquer processo de desenvolvimento
de software, as metodologias empregadas sofrem variaes por razes diversas. Com base
nessa premissa que se assume, nesse trabalho, que tais variaes podem ser decorrentes de
foras institucionais presentes no ambiente. Em outras palavras, as opes metodolgicas
feitas no decorrer do processo de desenvolvimento podem ser provenientes da interao que a
organizao e seus atores mantm com o ambiente institucional.
3. Metodologia da Pesquisa
Quanto a sua natureza, essa investigao pode ser classificada como qualitativa, exploratria e
descritiva. qualitativa, pois atravs de contedo subjetivo ir se analisar objetivamente as
caractersticas do processo produtivo, bem como as metodologias e prticas empregadas em
organizaes desenvolvedoras de software. Da anlise qualitativa sero evidenciadas e
descritas questes referentes ao paradigma de desenvolvimento predominante nas empresas
estudades.
Quanto aos fins, essa pesquisa se classifica como exploratria e descritiva. Como no se tem
conhecimento do processo de desenvolvimento investigados, nem das metodologias e prticas
empregadas nas empresas estudadas, uma pesquisa exploratria se justifica. A pesquisa em
pauta ainda descrever as empresas de desenvolvimento de softwares, no que tange os
elementos supracitados (seu processo produtivo).
Uma vez definida a natureza da pesquisa, deve-se fazer consideraes acerca dos
procedimentos metodolgicos que fundamentaro a pesquisa. Como esta pesquisa se props a
investigar o processo de desenvolvimento empregadas em empresas da indstria de software,
sendo este um evento contemporneo e que est fora do controle do pesquisador, pode-se
afirmar que se trata de uma pesquisa de campo por meio de um estudo de multiplos casos que
buscar maior representatividade acadmica acerca do problema especfico.
Na pesquisa, foram investigados 8 empresas de desenvolvimento de software situadas na
regio metropolitana de Recife. Como se sabe, esta uma regio de destaque nacional, quia
internacional, no desenvolvimento de software. As empresas foram selecionadas por
acessibilidade, mas de forma a garantir heterogeneidade quanto ao porte e ao modelo de
negcio das empresas.
Quanto ao instrumento de coleta, tem-se a aplicao de um formulrio com o intuito de
caracterizar a metodologia e as prticas empregadas no processo de desenvolvimento de
software. Tambm foi utilizada a entrevista e a observao para analisar, de forma detalhada,
o processo de desenvolvimento de software.
Para anlise dos dados coletados, foi utilizada a estatstica descritiva e anlise de contedo. A
primeira foi aplicada para evidenciar os resultados obtidos via formulrio, enquanto que a
anlise de contedo tratou os dados coletados nas entrevistas e observaes. O formulrio e a
entrevista foram aplicados com os diretores tcnicos das empresas investigadas, pois estas so
as pessoas que possuem conhecimento tanto do negcio, quanto dos aspectos relacionados ao
processo de desenvolvimento.
3. Descrio dos resultados
3.1. Caracterizao do processo de desenvolvimento
Os resultados aqui apresentados tm o objetivo de caracterizar, de forma geral, o paradigma,
as prticas e as metodologias institucionalizadas nas empresas investigadas para conduo do
processo de desenvolvimento de software. A caracterizao do paradigma de
desenvolvimento feita a partir da viso que os respondentes tm em relao metodologia
adotada para o desenvolvimento de software dentro da sua prpria empresa, sendo
complementada por informaes obtidas sobre o processo e as prticas comumente utilizadas
na empresa.
Destaca-se que inicialmente so apresentadas reflexes sobre a metodologia de
desenvolvimento institucionalizada nas empresas. Em seguida, so apresentadas as anlises
sobre cada uma das prticas adotadas para o desenvolvimento do software. Essas anlises
ORGANIZAO INVESTIGADA
EMPRESA
X
BISA
PROCENGE
VOCAL
LAB
FACILIT
CAPITAL
LOGIN
MDIAS
EDUCATIVAS
IN
FORMA
XP
SCRUM
SCRUM
RUP
SCRUM
RUP
SCRUM
CASCATA
3,5
3,4
5,1
5,6
3,7
4,2
3,2
4,4
4,6
Metodologia
Declarada
Prticas
Anlise
de
requisitos
profunda e detalhada.
Estudo
minucioso
e
elaborao da descrio
detalhada da arquitetura.
Teste do sistema completo
antes de mandar para o
cliente.
Definio dos processos e
ferramentas
Projeto
implementado
conforme
previamente
definido.
Mudanas de requisitos
bem vindas, at mesmo
perto da entrega do produto
final.
Muitos
documentos
necessriamente
produzidos.
A comunicao registrada e
formalmente documentada.
Utilizao de indicadores
formais como qualidade,
nmero de linhas de
cdigos,
eficincia
do
cdigo, etc.
Contato dirio com os
clientes.
Clara diviso do trabalho
dentro da empresa
MDIA
Prtica institucionalizada
Anlise de requisitos profunda e detalhada.
Estudo e elaborao da descrio detalhada da arquitetura.
Teste do sistema completo antes de mandar para o cliente.
Definio dos processos e ferramentas.
Projeto implementado conforme previamente definido.
Mudanas de requisitos bem vindas.
Muitos documentos necessariamente produzidos.
A comunicao registrada e formalmente documentada.
Utilizao de indicadores formais.
Contato dirio com os clientes.
Clara diviso do trabalho dentro da empresa
Fonte: da pesquisa (2010)
Empresas
Metodologia
gil
3,2
3,0
5,0
6,0
4,4
3,5
3,4
4,0
2,8
4,4
5,2
Empresas
Metodologia
Tradicional
4,0
4,0
5,3
5,0
3,3
4,0
5,0
4,6
4,0
4,2
3,6
Com isso, pde-se constatar que, dentre as empresas investigadas, as que empregam
metodologias pertencentes ao paradigma tradicional da engenharia de software tendem a fazer
anlise de requisitos profunda e detalhada antes de projetar a arquitetura do sistema, realizar
estudo minucioso e elaborar uma descrio detalhada da arquitetura antes de comear a
program-la, bem como, produzir muito documentos, registrar o processo de comunicao,
utilizar indicadores formais de desempenho para os softwares e testar o produto
exaustivamente antes de mandar a verso final para o cliente.
10
literatura, diversas obras que levantam a necessidade de adoo de metodologias formais para
garantir o sucesso dos projetos de softwares.
Por fim, destaca-se que, assim como nenhum tipo ideal de modelo de negcio se mostrou
aplicado conforme concebido na teoria, os processos de desenvolvimento de software tambm
se configuram a partir da combinao de prticas dos paradigmas gil e tradicional. Nesta
perspectiva, a institucionalizao dos processos produtivos ocorre atravs da incorporao de
prticas consideradas tanto pertencentes ao paradigma tradicional quanto alinhadas ao
Manifesto gil.
Como visto, mesmo tendo processos bem definidos e racionais, constata-se que algumas
empresas adotantes de uma metodologia tradicional permitem a incorporao de prticas que
flexibilizam o processo de desenvolvimento e permitem responder com mais rapidez e
fidelidade ao cliente. Por outro lado, empresas que oficializaram metodologias geis, tambm
no se mostram incompatveis ou repugnam prticas mais tradicionais de desenvolvimento.
Deve-se deixar claro que a institucionalizao de uma metodologia considerada gil no
implica em abandonar toda uma histria de estruturao do processo de desenvolvimento.
Trata-se da compatibilizao entre a configurao do processo de desenvolvimento e do
modelo de negcio, sendo a estruturao do paradigma uma resposta alinhada aos objetivos
organizacionais.
Desta forma, nos casos de empresas que privilegiam a inovao e o desenvolvimento interno
de seus produtos a partir de recursos prprios ou limitados, o paradigma tradicional mostra-se
uma tendncia nessa pesquisa, pois permite o controle mais rigoroso do projeto. J as
empresas com foco no desenvolvimento de software sob demanda encontram, nas
metodologias geis, sustentao para atender de forma satisfatria o seu cliente.
De fato, os resultados encontrados permitem levantar reflexes sobre o real significado do
Manifesto gil, sendo possvel pensar se o mesmo representa efetivamente um novo
paradigma de desenvolvimento ou se representa uma possibilidade de incrementar as prticas
tradicionais de engenharia de software com o intuito de aperfeioar o processo de
desenvolvimento de software. Na pesquisa, percebe-se que no h mudanas radicais
associadas incorporao de metodologias geis, mas sim incrementos que trazem melhor
ajuste e capacidade de atender aos objetivos propostos pelo sistema organizacional.
Acerca disso possvel encontrar estudos (MARAL et al, 2007; FAGUNDES, 2005;
BOEHM; TURNER, 2003) que apresentam que muitas empresas tm buscado as
metodologias geis, apenas, como forma de aumentar a flexibilidade e de evitar atrasos no
cronograma e possveis descontentamentos por parte das pessoas e empresas envolvidas no
projeto. Conforme mostrado neste trabalho, as prticas prescritas pelo manifesto gil e pela
engenharia de software mais tradicional podem ser utilizadas conjuntamente, desde que seja
considerado o contexto onde sero utilizadas.
4. Consideraes finais
Enfim, pode-se concluir que as empresas investigadas adotam ambos os paradigmas de
desenvolvimento, quais sejam: tradicional e gil. Entre as empresas que empregam o
paradigma gil, a metodologia scrum parece ser o padro predominante no mercado. Em
relao s empresas cujos processos de desenvolvimento esto fundamentados no paradigma
tradicional, pode-se dizer que estas institucionalizaram a metodologia RUP.
Ademais, percebe-se um considerado grau de autonomia para que a empresa defina a
metodologia e as prticas que vo ser empregadas no processo de desenvolvimento de
11
12
13