Fatores que Afetam a
Produtividade em Projetos de
Software: Uma Visão Geral
José Adson Oliveira G. da Cunha
Hermano Perrelli de Moura
{jaogc, hermano}@cin.ufpe.br
Março/2007
Roteiro





Motivação
Objetivo
Fatores que Afetam a Produtividade
Conclusão e Trabalhos Futuros
Referências
Motivação



Evolução do Software: Mais complexidade;
Necessidade de entrega de produtos de qualidade o
mais rápido possível;
Produtividade como fator crítico:
Quantidade de Software Produzido
Despesa ou trabalho para produzi-lo

_
Software produzido:



Código fonte ?
Código fonte + documentação associada ?
Valor utilitário ?
Motivação


Maior parte dos estudos se baseiam na perspectiva
quantitativa da produção;
Medição do tamanho do software:


E o esforço:




Linhas de código; Software Science; Pontos de Função;
Extensões de Pontos de Função; Object Points.
Será medido em horas ou meses ?
Caso o cliente participe ativamente, isso contará para o
esforço total alocado ?
Quais fases do ciclo de desenvolvimento estão sendo
consideradas ?
Falta de padronização na medição da produtividade
em projetos de software
Motivação


Os custos do software são efetivamente
opostos aos fatores que regem a
produtividade [Boehm 1981];
Existência de vários modelos de estimativa de
custo:


Algorítmicos (COCOMO, Aron, Boeing, Wolverton,
Price-S, ...) e Não-Algorítmicos (Analogy Costing,
Expert Judgment, Parkinson, ...);
Algorítimicos podem ser empíricos ou analíticos.
Motivação



De acordo com [Bailey et al. 1981], [Mohanty
1981] e [Kemerer 1987], os modelos de
estimativa devem ser específicos para cada
organização;
Segundo os autores, nenhum modelo de
estimativa de custo é seguramente confiável;
Em parte, isso se deve a não consideração
de fatores influenciadores no custo e
conseqüentemente na produtividade.
Motivação


Dos modelos de estimativa de custo, o
COCOMO II é o que mais leva em
consideração fatores influenciadores (15);
Necessidade de um levantamento sobre os
fatores que afetam a produtividade em
projetos de software;
Objetivo

Obter uma visão geral dos fatores que
afetam a produtividade em projetos de
software, classificando-os de acordo com 5
grupos:





Processo;
Tecnologia;
Pessoas;
Cultura Organizacional;
Produto.
Fatores que Afetam a Produtividade
Fatores relacionados com o processo

Uso efetivo do processo:
[McConnell 1998]
Fatores relacionados com o processo

Uso de práticas de inspeção:



Medição de qualidade:


Evita o retrabalho;
Segundo [Gilb 1993], tal prática pode reduzir o cronograma
de 10 a 30%.
De acordo com [DeMarco 1999], a auto-estima dos
desenvolvedores está ligada à qualidade do trabalho e não
à quantidade.
Estimativa de custo e esforço:

Segundo [Jones 1999], tal prática pode aumentar a
produtividade em até 17%.
Fatores relacionados com o processo

Participação do cliente:



Evita o esforço gasto com requisitos não
desejados pelo cliente;
Segundo [Jones 1999], pode prover um aumento
de 18% na produtividade.
Reuso:


De acordo com [Boehm 1987], apresenta um
impacto de 47% na produtividade;
Provê um aumento de até 350% na produtividade,
segundo [Jones 1999].
Fatores relacionados com a tecnologia

Parque Computacional:


Importância do curto tempo de resposta na
produtividade [Thadhani 1984], [Lambert 1984];
Ferramentas CASE, de gerenciamento e de
estimativa da qualidade:


Segundo [Jones 1999], podem aumentar a
produtividade em torno de 30%.
De acordo com [Bruckhaus et al. 1996], a
eficiência das ferramentas dependem do
tamanho do projeto e do processo de
desenvolvimento.
Fatores relacionados com as pessoas

Tamanho da equipe:
[McConnell 1997]
Fatores relacionados com as pessoas

Experiência da equipe de desenvolvimento:


Experiência da gerência:


[Scacchi 1984] afirma que quando projetos são mal
gerenciados ou organizados, a produtividade é
substancialmente baixa.
Existência de especialistas:


Apesar de que [DeMarco 1999] afirma que a experiência
da equipe não afeta a produtividade, [Jones 1999] indica
que a experiência provê uma melhoria de 55%.
De acordo com [DeMarco 1999], é importante a existência
de gurus.
Turnover

Alta rotatividade das pessoas provoca uma queda na
produtividade dos projetos.
Fatores relacionados com a cultura organizacional

Estrutura do ambiente de trabalho:




Necessidade de ambientes silenciosos, mais
privados e melhor protegidos da interrupção.
De acordo com [DeMarco], as pessoas trabalham
sozinhas em 30% do tempo. No restante, são
gerados de barulho.
Adequação do ambiente para permitir o estado de
flow, envolvimento profundo no trabalho.
Segundo [Jones 1999], ambientes mal
estruturados podem prejudicar a produtividade
em 27%.
Fatores relacionados com a cultura organizacional

Separação das equipes:



Moral das pessoas envolvidas:




Equipes estarão em sintonia quanto a estado de flow, de
modo que deve-se evitar a separação de seus membros;
Pode haver um prejuízo de até 24% na produtividade,
segundo [Jones 1999]
Evitar o gerenciamento defensivo;
Evitar o paperwork;
Prover o surgimento de jelled teams [DeMarco 1999];
Estrutura hierárquica:

Aumento de 5% na produtividade, segundo [Jones 1999].
Fatores relacionados com a cultura organizacional

Uso de horas extras não pagas:



[DeMarco 1999] afirma que horas extras são uma
ficção, não sendo uma maneira de melhorar a
produtividade;
Apesar disso, [Jones 1999] afirma que o uso de
tal prática pode prover um aumento de 15% na
produtividade.
Pressão no cronograma:

Excesso de pressão pode diminuir a qualidade do
produto e assim a satisfação dos membros da
equipe. Pode diminuir a produtividade em 30%
[Jones 1999].
Fatores relacionados com a cultura organizacional

Medição da produtividade:



Treinamentos anuais:



Apesar de não haver uma padronização, a medição pode
proporcionar um aumento na produtividade em 10%;
Segundo [Gilb 1977], qualquer coisa que se queira
quantificar pode ser medida de tal forma que seja melhor
do que não medir nada.
Hawthorn Effect: As pessoas executam melhor quando
estão fazendo algo novo.
Aumento de até 8% na produtividade [Jones 1999]
Uso de recompensas:

Apesar de não sugerido por [DeMarco 1999], [Clincy 2003]
sugere o uso de recompensas, financeiramente ou não.
Fatores relacionados com o produto

Tamanho:
[McConnell 1997]
Fatores relacionados com o produto

Tamanho:
Tamanho do Projeto
(Em pontos de função)
10
100
1.000
10.000
100.000

13,0
10,0
4,0
2,6
1,7
[McConnell 1997]
Características:


Pontos de Função por Mês
Adequação do produto às características especificadas na
ISO\IEC 9126.
Complexidade:

A alta complexidade pode diminuir a produtividade em
35% [Jones 1999].
Fatores relacionados com o produto

Volatilidade dos requisitos:


Dois dos três primeiros fatores responsáveis pelo
atraso nos cronogramas são: especificação
incompleta dos requisitos e mudança constante
dos mesmos [CHAOS Report 1994];
Pode diminuir a produtividade em até 77%.
Conclusões e Trabalhos Futuros





O presente trabalho teve como objetivo estabelecer uma
classificação geral dos fatores que afetam a produtividade em
projetos de software.
Através de estudos, concluiu-se que é inviável propor um
modelo de produtividade capaz de atender a todos os tipos de
projetos.
Uma possível solução é adequar o modelo ao projeto. Como ?!
De acordo com [Drucker 1993], “gerir um negócio é balancear
uma variedade de necessidades e objetivos”.
Baseado nisso, a Engenharia de Apoio a Decisão [Thomaz 2005]
provê abordagens e metodologias para possibilitar melhores
decisões diante dos mais variados problemas enfrentados nas
mais variadas áreas. Uma delas é metodologia multicritério
[Bouyssou, 1990]
Conclusões e Trabalhos Futuros

Diante disso, pretende-se propor um modelo
multicritério de apoio à tomada de decisão no
gerenciamento de projetos baseado nos
fatores que afetam a produtividade.
Referências

















Albrecht, A. J. and Gaffney, J. E. (1983) Software Function, Source Lines of codes, and Development Effort Prediction: A Software
Science Validation. IEEE Trans Software Eng. SE-9, pp.639-648.
Bailey, J. and Basili, V. (1981) A Meta-Model for Software Development Resource Expenditures. In: Proc. 5th. Intern. Conf. Soft. Engr.,
IEEE Computer Society, pp 107-116.
Basili, V. et al. (1995) SEL’s Software Process Improvement Program. IEEE Software, November 1995, pp. 887
Behrens, C. A. (1983) Measuring Software Productivity of Computer System Development Activities with Point Functions. IEEE Trans.
Soft. Engr. SE-9(6), pp. 648-652.
Boehm, B. (1981) Software Engineering Economics. Prentice-Hall, Englewood Cliffs, NJ.
Boehm, B. (1987) Improving Software Productivity. IEEE Computer, September, pp. 43-57.
Boehm, B. and Papaccio, P. N. (1988) Understanding and Controlling Software Costs. IEEE Transactions on Software Engineering, v. 14,
no. 10, October, pp. 1462-1477.
Boehm, B. W. et al. (1996) The COCOMO 2.0 Software Cost Estimation Model. American Programmer, July, pp.2-17.
Boehm, B. W., Gray, T. E. and Seewaldt, T. (1984) Prototyping Versus Specifying: A Multiproject Experiment. IEEE Transactions on
Software Engineering, May.
Bouyssou, D. (1990) Building Criteria: A Prerequisite for MCDA”. In: C. A. Bana e Costa (Ed.), Readings in Multiple Criteria Decision Aid,
Springer-Verlag, Berlin (pp. 58–80).
Brooks, F. (1995) Mythical Man-Month, Anniversary Edition. Addison-Wesley.
Bruckhaus, T. (1997) A Quantitative Approach for Analyzing the Impact of Tools on Software Productiviy. Doctoral Dissertation, McGill
Univ , Montreal.
Bruckhaus, T., Madhavji, N. H., Janssen, I. and Henshaw, J. (1996) The Impact of Tools on Software Productivity. IEEE
Softw. 13, 5, pp. 29-38.
Chiang, R. and Mookerjee, S. (2004) Improving Software Team Productivity. Communications of the ACM. Volume 47 ,
Issue 5. Pages: 89 – 93.
Clincy, V. A. (2003) Software Development Productivity and Cycle Time Reduction. Journal of Computing Sciences in
Colleges. Volume 19, Issue 2. Pages: 278-287.
COSMIC-FFP Measurement Manual Version 2.1 (2001) Software Eng. Management Research Laboratory, Univ. of Quebec,
Montreal, www.lrgl.uqam.ca/cosmic-ffp .
Crosby, P. B. (1980) Quality Is Free.
Referências














DeGrace, P. and Stahl, L. (1990) Wicked Problems, Righteous Solutions: A Catalog of Modern Software
Engineering Paradigms, Yourdon Press.
DeMarco, T. (1999) Peopleware: Productive Projects and Teams, 2nd Ed. Dorset House Publishing.
Drucker, P. F. (1993) Management: Tasks, Responsibilities, Practices, Harper & Row Publishers, New
York, NY.
Fenton, N. E. and Pfleeger, S. L. (1997) Software Metrics: A Rigorous and Practical Approach, PWS
Publishing Company.
Freedman, D. P. and Weinberg, G. M. (1990) Handbook of Walkthroughs, Inspections and Technical
Reviews, Third Edition, Dorset House.
Function Point Counting Practices Manual Release 4.0 (1994) Int’l Function Point Users Group,
Westerville, Ohio.
Gilb, T. (1997) Software Metrics.
Gilb, T. and Graham, D. (1993) Software Inspection. Wokingham, England, Addison-Wesley.
Halstead, M. H. (1977) Elements of Software Science, Elsevier, New York.
Herbsleb, J. et al. (1994) Benefits of CMM Based Software Process Improvement: Initial Results.
Pittsburgh: Software Engineering Institute, Document CMU/SEI-94-TR-13, August.
ISO/IEC 9126 (2001) Information Technology – Product Quality – Part1: Quality Model. In: International
Standard ISO/IEC 9126, International Standard Organization, Junho.
Jiang, Z. and Comstock, C. (2007) The Factors Significant to Software Development Productivity. In:
Transactions On Engineering, Computing And Technology. Volume 19.
Jones, C. (1977) Program Quality and Programmer Productivity. IBM Technical Report TR 02.764,
January.
Jones, C. (1986) Programming Productivity, McGraw-Hill, New York.
Referências



















Jones, C. (1991) Applied Software Measurement: Assuring Productivity and Quality. New York: McGraw-Hill.
Jones, C. (1994) Assessment and Control of Software Risks. Englewood Cliffs, N.J. Yourdon Press.
Jones, C. (1996) Applied Software Measurement: Assuring Productivity and Quality. 2 ed. McGraw-Hill.
Jones, C. (1999) Software Assesments, Benchmarks and Best Practices. Addison Wesley.
Jones, T. C. (1978) Measuring Programming Quality and Productivity. IBM System J. 17, pp 39-63.
Kemerer, C. F. (1987) An Empirical Validation of Software Cost Estimation Models. Communications ACM, 30(5), pp 416429.
Kitson, D. H. and Masters, S. (1993) An Analysis of SEI Software Process Assessment Results, 1987-1991. In: Proceedings
of the Fifteenth International Conference on Software Engineering (Washington, DC: IEEE Computer Society Press), pp. 6877.
Lambert, G.N. (1984) A Comparative Study of System Response Time on Programmer Development Productivity, IBM
Systems J. 23(1), pp. 36-43.
Laturi-System Product Manual Version 2.0 (1996) Information Technology Development Center, Helsinki, Finland.
Lim, W.C. (1994) Effects of reuse on quality, productivity, and economics. Hewlett-Packard Co. IEEE Software.
Maxwell, K. D. and Forselius, P. (2000) Benchmarking Software Development Productivity. IEEE Software.
Maya, M. et al. (2001) Measuring the Functional Size of Real-Time Software. Proc. 1998 European Software Control and
Metrics Conf., Shaker Publishing BV, Maastricht, The Netherlands, pp. 191–199.
McConnell, S. (1996) Software Quality at Top Speed. Software Development, August.
McConnell, S. (1998) The Power of Process. IEEE Computer, May.
Mills, H. (1983) Software Productivity. Little, Brown & Co.
Mohanty, S. N. (1981) Software Cost Estimation: Present and Future. Software-Practice and Experience 11, pp 103-121.
Nelson, R. (1966) Management HandBook for the Estimation of Computer Programming Costs, AD-14 A648750, Systems
Development Corp.
Park, R. E. (1988) PRICE S: The calculation within and why. In: Proceedings of ISPA Tenth Annual Conference, Brighton,
England.
Parkinson, G. N. (1957) Parkinson's Law and Other Studies in Administration. Houghton-Miffin, Boston.
Referências

















Pietrasanta, A. M. (1991) A Strategy for Software Process Improvement. In: Ninth Annual Pacific Northwest Software Quality
Conference, October 7-8, Oregon Convention Center, Portland.
Putnam, L. H. (1978) A general empirical solution to the macro software sizing and estimating problem. IEEE Trans. Soft.
Eng., pp. 345-361.
Rehesaar, H. (2001) Software Size: The Past and the Future. Proc. 1998 European Software Control and Metrics Conf.,
Shaker Publishing BV, Maastricht, The Netherlands, pp. 200–208.
Saiedian, H. and Hamilton, S. (1995) Case Studies of Hughes and Raytheon’s CMM Efforts. IEEE Computer, January, pp.
20-21.
Santana, E. A. (2002) Contrato satisfatório multidimensional e a teoria do incentivo. Revista Brasileira de Economia, 56, 4
(pp. 661–694).
Scacchi, W. (1984) Managing Software Engineering Projects: A social Analysis. IEEE Trans. Soft. Engr.,SE-10(1), pp. 49-59.
Scacchi, W. (1995) Understanding Software Productivity. Appears in Advances in Software Engineering and Knowledge
Engineering, D. Hurley (ed.), Volume 4, pp. 37-70.
Shepperd, M. and Cartwright, M. (2001) Predicting with Sparse Data. In: Proc. 7th Int’l Software Metrics Symposium, IEEE
CS Press, Los Alamitos, Calif., pp. 28–39.
Shepperd, M. and Schofield, C. (1997) Estimating Software Project Effort Using Analogy. IEEE Trans. Soft. Eng. SE-23:12,
pp. 736-743.
Shepperd, M. and Schofield, C. (1997) Estimating software project effort using analogy. IEEE Trans. Soft. Eng. SE-23:12,
pp. 736-743.
Sidler, R. (2002) Software Productivity.
Simmons, D. B. (2001) Software Organization Productivity.
St-Pierre, D., Maya, M., Abran, A., Desharnais, J. and Bourque, P. (1997) Full Function Points: Counting Practice Manual,
Technical Report 1997-04, University of Quebec at Montreal.
Tausworthe, R.(1981) Deep Space Network Software Cost Estimation Model. Jet Propulsion Laboratory Publication 81-7.
Taylor, B. (2005) Organizational Culture is Important in Software Productivity.
http://www.workinginunison.com/papers/cultureandproductivity.pdf.
Thadhani, A. J. (1984) Factors Affecting Programmer Productivity During Application Development. IBM Systems J. 23(1),
pp. 19-35.
Thomaz, J. P. (2005) O Apoio À Tomada De Decisão Na Avaliação Do Desempenho De Pessoas: Contributos Para O
Processo De Decisão Militar Em Tempo De Paz. Tese de Doutorado. Universidade Técnica de Lisboa. Instituto Superior
Técnico.
Referências



Vosburgh, J., Curtis, B., Wolverton, R., Albert, B., Malec, H., Hoben, S., and Liu, Y. (1984) Productivity Factors and
Programming Environments. International Conference on Software Engineering. In: Proceedings of the 7th International
Conference on Software Engineering. Orlando, Florida, United States. Pages: 143 – 152.
White, K. S. (1999) Software Engineering Management For Productivity And Quality. In: International Conference on
Accelerator and Large Experimental Physics Control Systems, Trieste, Italy.
Yin, R. K. (1994) Applied Social Research Methods Series: Case Study. Sage Publications, London.
Fatores que Afetam a
Produtividade em Projetos de
Software: Uma Visão Geral
José Adson Oliveira G. da Cunha
Hermano Perrelli de Moura
{jaogc, hermano}@cin.ufpe.br
Março/2007
Download

AppTAES3[AdsonCunha]Artigo