CRITÉRIOS CONSIDERADOS PELAS INDÚSTRIAS DE SOFTWARE
PARA A AVALIAÇÃO DOS SEUS PROJETOS
Gabriela María CAbel Brabarán
Paulino Graciano Francischini
Universidade de São Paulo - Escola Politécnica
E-mail: [email protected]
Abstract
In this work we identified which are the main approaches adopted by the Industries of
Software of the State of São Paulo to evaluate the development of its software projects. The results
were obtained of the application of a questionnaire type survey to forty Software industries.
The analysis of the obtained results demonstrated that software projects are generally
evaluated considering the experience of previous projects and few industries adopt formal programs
of measurement. In this way, this work intends to inform the advantages of the adoption of programs
of measures based on performance indicators, elaborated in consistency with objectives and
competitive strategy of the industries, would allow to establish corrective actions increasing like the
performance of their projects.
Resumo
Neste trabalho identificamos quais são os principais critérios adotados pelas Indústrias de
Software do Estado de São Paulo para avaliar o desenvolvimento de seus projetos de software. Para a
coleta dos dados, um questionário tipo survey foi aplicado a quarenta Indústrias de Software.
A análise dos resultados obtidos demonstraram que projetos de software geralmente são
avaliados com base na experiência de projetos anteriores e que poucas são as indústrias que adotam
programas formais de medição. Neste sentido, este trabalho pretende informar as vantagens da
adoção de programas de medidas baseados em indicadores de desempenho que, se elaborados em
consistência com os objetivos e estratégia competitiva das indústrias, permitiriam a tomada de ações
corretivas aumentando assim o desempenho dos seus projetos.
Keyworks: measurement software, software project, project management .
Introdução
Desde o início do desenvolvimento do softwares, a Indústria de Software tem sido o exemplo
de uma indústria com pobre desempenho. Apesar de ter evoluído e do longo período transcorrido
desde a crise do software, ela ainda enfrenta problemas crônicos. As estimativas de prazo e de custo
freqüentemente são imprecisas; pouca coisa tem sido feita para melhorar a produtividade das pessoas
da área de software; a qualidade do software às vezes é inadequada; o ciclo de desenvolvimento dos
projetos é muito longo; prazos de entrega não são cumpridos; os custos de desenvolvimento são altos e
há um forte incremento do número de falhas detectadas após a entrega do software. A razão para esta
situação é atribuída à falta de processos de desenvolvimento disciplinados e à ausência de medidas
aceitas, formalmente e universalmente, para avaliar o desenvolvimento do software (PAULK, 1993).
Frente a estas dificuldades e procurando manter o domínio do seu mercado, incrementar sua
competitividade e lucratividade, as indústrias de software brasileiras têm sentido a necessidade de
melhorar a eficiência de seus processos e controlar adequadamente seus recursos de desenvolvimento.
Mas para isto, são necessárias estimativas mais exatas de programação e de custos, produtos de melhor
qualidade e alta produtividade. Tudo isto pode ser alcançado através de um gerenciamento de software
mais efetivo o qual, por sua vez, pode ser facilitado pelo uso de indicadores de desempenho
consistentes a seus objetivos e estratégias competitivas e das métricas de software. (GRADY, 1987;
INCE, 1993; PFLEEGER, 1997).
Esforços têm sido feitos para aplicar teorias de medição em vários aspectos de avaliação do
software, para determinar métricas adequadas às fases de desenvolvimento do ciclo de vida do
software. Mas apesar destes esforços, ainda não existe um conjunto de medidas padrão para medir o
processo de software. Portanto o panorama das indústrias de desenvolvimento de software não tem
mudado muito desde suas características iniciais. O desenvolvimento de projetos de software é muitas
vezes realizado de uma maneira ad-hoc (MILLS, 1988; GRADY, 1992; PUTNAM, 1997; FENTON,
1999).
Portanto, a relevância deste trabalho justifica-se pela análise de como as indústrias de software
estão avaliando seus projetos, se os métodos por elas selecionados realmente proporcionam a
informação necessária para alcançar seus objetivos e estratégias competitivas e se as ferramentas e os
recursos usados são os mais adequados para o melhor desenvolvimento dos projetos.
Medição do software
Medição na área de software é um tema discutido há 25 anos. Este tema tem sido tratado
principalmente desde dois pontos de vista, desde o ponto de vista dos pesquisadores enfocados na
análise da complexidade do software e desde o ponto de vista dos desenvolvedores de software
enfocados na busca da melhoria dos processos de desenvolvimento. (GLASS, 1994).
Nos últimos anos, frente a este ambiente de competitividade e o crescimento das aplicações de
software em tamanho e complexidade, a procura por programas que permitam alcançar melhorias nos
processos de desenvolvimento, nas indústrias de software tem-se intensificado. Estudos da medição do
software tem se orientado principalmente ao estudo da aplicação de métricas de software dentro de um
contexto industrial, é disser métricas que ajudem a estimar e predizer os custos e programas de
planejamento dos projetos, assim como também a medir sua qualidade e produtividade. Assim, esta
informação servirá para a administração e controle do processo de desenvolvimento e para determinar
melhorias alcançadas nos resultados. (PRESSMANN, 1997; FENTON, 1991).
No entanto, apesar das métricas de software serem vistas como as ferramentas para a avaliação
e predições das diferentes atividades do projeto de software, a situação atual da indústria de software
revela que o uso de medidas neste setor tem sido limitado. Poucos estudos indicam como um sistema
de medição integrado pode apoiar as decisões de gerenciamento. (PLFEEGER, 1997; PUTNAM e
MYERS, 1992; GRADY, 1992). Isto principalmente porque ao tentar adotar um programa de
medidas as organizações tem enfrentado certos problemas como: ter que selecionar um número
razoável e útil de medidas desde o abundante conjunto de medidas propostas na literatura, motivar as
pessoas para acompanhar as atividades de medição, definir os processos que serão avaliados, analisar e
documentar os resultados, entre outros. Daí que, o desenvolvimento de projetos de software é muitas
vezes realizado de uma maneira ad-hoc, resultando em:
−
grande imprecisão na estimativa de prazos, recursos humanos e financeiros necessários para o
desenvolvimento;
−
incertezas sobre como e quanto cada um dos muitos métodos hoje divulgados na literatura influem
na produtividade e no custo dos desenvolvimento de software, do tipo específico, de interesse de
uma determinada empresa, e em seu ambiente de trabalho;
−
muitas vezes até no abandono dos projetos.
Portanto, a medição, apesar de ser considerada a base para o controle dos processos e produtos
de desenvolvimento, ainda não é uma ferramenta de apoio para o gerenciamento (FENTON, 1997;
GRADY 1992).
RUBIN (1983) afirma que práticas de gerenciamento de software são ineficientes pois o
desenvolvimento do software é extremamente complexo; muitas vezes não existe uma metodologia
padrão para o desenvolvimento dos processos do projeto e existem poucas medidas confiáveis bem
definidas para guiar e avaliar o desenvolvimento. Desta maneira, estimativas, planejamento e controle
exato e efetivo são quase impossíveis de atingir.
INCE (1993) afirma que a falta de penetração das métricas nos projetos de software resulta da
falta de ferramentas comerciais e de dados industriais reais, os quais podem fornecer uma evidência
das poupanças de custo que devem persuadir a companhia a desenvolver tais ferramentas.
O melhoramento do processo de gerenciamento dependerá da capacidade para identificar os
métodos e parâmetros essenciais de controle do processo de desenvolvimento. Tudo isto pode ser
alcançado através de um gerenciamento de software mais efetivo o qual por sua vez pode ser facilitado
pelo uso de métricas de software mais adequadas.
Metodologia de pesquisa
Para o desenvolvimento deste trabalho foi realizada uma Pesquisa Avaliação que
compreendeu a aplicação de um questionário com questões tipo fechadas e estruturado em três seções:
(1) Orientada à identificação da indústria, (2) Orientada à identificação do tipo de software que a
empresa desenvolve e (3) Orientada à identificação do sistema de medição da indústrias. Elaborado o
questionário foi realizado um teste piloto com a finalidade de verificar a consistência e confiabilidade
das questões. Este teste piloto foi aplicado a uma amostra de dez indústrias de software, as quais foram
escolhidas aleatoriamente. Realizado o teste piloto e feitas as respectivas correções O questionário foi
enviado a 197 indústrias via correio eletrônico, das quais 40 responderam. Os resultados obtidos
foram avaliados em função da freqüência modal é dizer serão consideradas como válidas as respostas
que apresentem a maior freqüência. Os resultados considerados como válidos foram comparadas com
hipóteses levantadas no início do trabalho, as quais foram elaboradas com base na literatura
pesquisada correspondente ao estudo da medição dos projetos de software.
Resultados
Os dados coletados mostraram que 63% das Indústrias de Software (pertencentes a nossa
amostra) não usam indicadores de desempenho para avaliar o desenvolvimento de seus projetos de
software, sendo que só um 8% usam indicadores sistematicamente.
80%
60%
40%
20%
0%
Porcentagem
Não tem
Em estudo
Sistemático
Eventual
63%
28%
8%
3%
Fig. 1- Porcentagem de Indústrias de Software que utilizam Sistemas de Indicadores para avaliar o
desempenho do desenvolvimento de seus projetos de software.
Como é verificado também na figura 1, existe uma grande porcentagem de Indústrias de
Software que não usam indicadores de desempenho para a avaliação de seus projetos. Como é então
feita a avaliação dos projetos nestas indústrias?. A figura 2 nos mostra que em média as Indústrias de
Software que não possuem indicadores de desempenho, avaliam seus projetos de software em função
das sugestões dos gerentes do projeto e da sua experiência profissional. Em geral, tanto as estimativas
como a avaliação do progresso do projeto é realizado só quando é solicitado pelo cliente, e/ou quando
se apresentam problemas graves na indústria. Não existe uma cultura pelo estabelecimento de
indicadores de desempenho próprios da indústria, as indústrias desconhecem que os indicadores não só
servem para informar das falhas e erros, mas também do benefícios alcançados e das futuras ações a
tomar.
5
4
3
2
1
0
Média
Sugestão
Gerente
Experien.
Profiss.
Projetos
Anteriores
Indicador
Literatura
4,08
4
3,76
2,52
Fig. 2 – Critérios aplicados pelas indústrias de software que não usam indicadores para
avaliar seus projetos.
Os dados mostraram também que as Indústrias de Software que usam indicadores para a
avaliação de seus projetos não elaboram estes indicadores em consistência com seus fatores críticos
de sucesso. Pois ainda que a qualidade tenha sido identificada como a principal estratégia competitiva
a ser alcançada por estas indústrias, seus indicadores estão mais orientados à avaliação das áreas de
produtividade e custos, e não especificamente à avaliação das áreas que afetam a qualidade. Isto talvez
possa ser justificado pela influência que ainda existe das sugestões dadas pelos gerentes do projeto
(como fora verificado na figura 2) na avaliação dos projetos, sugestões que muitas vezes são feitas só
com base na sua experiência e não seguindo os critérios de desenvolvimento de indicadores.
FATORES CRÍTICOS DE SUCESSO
♦
Determinação dos requisitos (68%)
♦
Identificação do problema (55%)
♦
Documentação do projeto ( 35%)
♦
Módulos livres de erro (30%)
INDICADORES
♦
Nro. Pontos de Função / hh (40%)
♦
Nro. Módulos projetados / hh (33%)
♦
Nro. Linhas de código / hh (27%)
♦
Faturamento / Nro. Funcionários (27%)
Fig. 3 - Fatores Críticos de Sucesso e indicadores de desempenho nas Indústrias de Software.
Verificou-se também que 0 40% das Indústrias de Software que possuem indicadores
(pertencentes a nossa amostra) não utilizam métricas na elaboração dos seus indicadores. Portanto, não
é freqüente nas Indústrias de Software que possuem indicadores o uso de métricas de software. Isto
pode ser devido ao fato da falta de conhecimento das diferentes métricas de software por parte das
Indústrias de Software. Fato que foi identificado como uma das causas para a ausência de uma sistema
de indicadores.
40%
30%
20%
10%
0%
Porcentagem
Não usa
Eventual
Sempre
Não conhece
40%
33%
20%
7%
Fig. 4 – Porcentagem das Indústrias de Software que usam métricas.
Com base no 7% das Indústrias de Software que usam métricas, identificamos que a métrica
mais usada nestas indústrias é a métrica Pontos de Função (Function Point). O que pode ser
confirmado também ao identificar que um dos indicadores mais usados pelas Indústrias de Software
que possuem indicadores é aquele que relaciona o número de pontos de função sobre o número de
homens-hora, como pode ser observado na figura a seguir.
40%
FP / hh
MOD / hh
33%
TEST / hh
27%
LOC / hh
27%
LOCD / hh
13%
MODD / hh
13%
Outros
7%
Fig. 5 – Indicadores de Desempenho mais usados pelas Indústrias de Software
Ainda que a maioria das Indústrias de Software (pertencentes a nossa amostra) não possuam
um programa de medição e portanto um sistema de indicadores de desempenho, verificamos que
existe uma forte motivação para a elaboração e implantação de um sistema de indicadores, motivação
guiada principalmente pelo desejo e necessidade de desenvolver projetos com melhor qualidade. No
entanto, verifica-se também que o uso de indicadores está-se tornando uma necessidade para um
melhor desempenho e controle do processo de desenvolvimento dos projetos de software, como é
verificado na figura 6.
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
4XDOL 'HVHP &RQWUR 3URGX 6XEVt $YDOLDU &RQFRU 2XWURV
UHQWHV
GDGH SHQKR ODU WLYLGDGH GLR
3RUFHQWDJHP Fig. 6 - Principais Razões para a Implantação de um sistema de indicadores
Verificada a necessidade por parte das Indústrias de Software da adoção de um sistema de
medidas, investigamos a causa da ausência destes sistemas de indicadores de desempenho. Neste
sentido, identificamos que existem certos fatores que impedem a implantação e uso destes indicadores.
Estes fatores podem ser observados na figura 7. Nesta figura observamos que entre os principais
fatores que impedem implantação de um sistema de indicadores., temos: a falta de tempo por parte
das Indústrias de Software para a implantação destes indicadores, a falta de uma metodologia dos
processo de desenvolvimento do software, falta de conhecimento das métricas de software, entre
outros. Como pode-se observar estes fatores, a excepção do primeiro que é o fator tempo, são fatores
que deveriam ser de conhecimento das Indústrias de Software, por exemplo uma Indústria deve definir
uma metodologia do desenvolvimento de seus projetos, com a finalidade que posteriormente facilite a
análise e detecção de erros se for necessário nos diferentes processos de desenvolvimento, mas se não
existe uma seqüência ou uma organização dos mesmos fica impossível detectar os erros e falhas. O
conhecimento das diferentes métricas é outro fator que deveria ser comum entre as indústrias software,
no entanto, apresenta-se como um fator pouco conhecido; isto concorda com o exposto na literatura,
onde se disse, são muitas as métricas elaboradas pelos pesquisadores, mas são poucas as usadas pelo
setor industrial.
80%
70%
60%
50%
40%
30%
20%
10%
0%
P orcentagem
F al ta F al ta F al ta F al ta Mu da R es is t
Atuali
T emp Metod conh e técn ic ambie
da
tecn ol
Impla P roce métr ic ger en organi equ ip
76%
48%
40%
28%
28%
4%
4%
F al ta
rel ac
áreas
Outr o
4%
4%
Fig. 7 - Principais causas para a ausência de um sistema de indicadores nas indústrias de software
Conclusões
As conclusões a seguir giram entorno das 40 Indústrias de Software que responderam nosso
questionário.
Ainda que programas de medição tenham sido identificados como de grande importância para
o melhor controle dos processos de desenvolvimento de um projeto de software, existe uma forte
tendência das Indústrias de Software do Estado de São Paulo (pertencentes a nossa amostra) a não usar
indicadores de desempenho na avaliação do desenvolvimento de seus projetos de software.
Geralmente projetos de software são avaliados com base na experi6encia profissional e as sugestões
dadas pelos gerentes de projeto.
As poucas Indústrias de Software que usam indicadores, não determinam estes indicadores em
função dos seus fatores críticos de sucesso.
O benefício e aplicação das métricas de software não é muito conhecido pelas Indústrias de
Software, existe uma falta de conceito com relação a este termo. No entanto, entre as indústrias que
usam indicadores, uma das métricas mais usadas na elaboração de seus indicadores é a métrica Pontos
de Função. (Function Point)
Uma das principais causas da ausência de um sistema de indicadores nas Indústrias de
Software é a falta de tempo para sua implantação, tempo que é considerado longo demais, pois o
processo de implantação teria que começar desde a definição e organização dos processos. Como fora
verificado também, outras das causas para a ausência de um sistema de indicadores é que as Indústrias
de Software não gerenciam o desenvolvimento de seus projetos , daí que, sem processos, sem
atividades definidas será muito difícil medir e controlar os projetos.
Bibliografia
FENTON, N., “Software metrics: A Rigorous and Pratical Approach”, International Thomson
Computer Press, PWS Publishing Company, 1991.
FENTON, N. and PFLEEGER, S.; “Software metrics: A Practical and Rigorous Approach”,
London, UK, Chapman and Hall, 1997.
FENTON, N. AND NEIL, M., “Software metrics: successes, failures and new directions”, Journal of
Systems and Software, nro.47, 1999, pp.149-157.
GRADY, R.; CASWELL and DEBORSH, L., “Software Metrics: Establishing a Company-Wide
Program”, Pretince Hall, 1987.
GRADY, R., “Practical Software Metrics for Project Management and Process Improvement”,.
Pretince Hall, 1992.
GLASS, R., “A tabulation of topics where software practice leads software theory”, Journal of
Systems Software, nro.25, 1994, pp. 219-222.
INCE, D., “Introduction to Software Project management and Quality Assurance”, London, Mc
Graw-Hill, 1993.
MILLS, E., “Software Metrics”, SEI Curriculum Module SEI-CM-12-1.1, Software Engineering
Institute, Pittsburg, PA, USA, 1988.
PAULK, M., “Capability Maturity Model for software, version.1.1”, Tech. Report CMU/SEI-93TR24, ESD-93-TR-177, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, 1993.
PFLEEGER, S. et al., “Status report on software measurement”, IEEE Software vol.14, nro.2, 1997,
pp.33-43.
PRESSMANN, R., “Software Engineering: A Practitioners Approach”, McGraw-Hill, New York,
1987.
PUTNAM, L. and MYERS, W., “Measures for Excellence: Reliable Software on Time, within
Budget”, Englewood Cliffs, N.J.:P.T.R., Pretince Hall, 1992.
PUTNAM, L. and MYERS, W., “Industrial Strength Software”, IEEE Computer Soc. Press, Los
Alamitos, 1997.
RUBIN, H., “Macro-Estimation of Software Development Parameters: The ESTIMACS System”,
Proc. SOFTFAIR: A Conference on Software Development Tools, Techniques and Alternatives,
New York: IEEE, 1983, pp. 109-118.
Download

ENEGEP2000_E0102 CRITÊRIOS