• Nenhum resultado encontrado

Catálogo de fatores que influenciam a produtividade no desenvolvimento de software

N/A
N/A
Protected

Academic year: 2021

Share "Catálogo de fatores que influenciam a produtividade no desenvolvimento de software"

Copied!
153
0
0

Texto

(1)CATÁLOGO DE FATORES QUE INFLUENCIAM A PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE por Emanuella Aleixo de Barros Dissertação de Mestrado. UNIVERSIDADE FEDERAL DE PERNAMBUCO CIN - CENTRO DE INFORMÁTICA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO [email protected] www.cin.ufpe.br/~posgraduacao. Recife, Agosto de 2010.

(2) UFPE - UNIVERSIDADE FEDERAL DE PERNAMBUCO CIN - CENTRO DE INFORMÁTICA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO. EMANUELLA ALEIXO DE BARROS. CATÁLOGO DE FATORES QUE INFLUENCIAM A PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE. Dissertação apresentada como requisito parcial à obtenção do grau de Mestre em Ciência da Computação, área de concentração em Engenharia de Software, do Programa de Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.. ORIENTADOR: Silvio Romero Lemos Meira, PhD. CO-ORIENTADOR: Gibeon Soares de Aquino Júnior, PhD.. Recife, Agosto de 2010.

(3) Barros, Emanuella Aleixo de Catálogo de fatores que influenciam a produtividade no desenvolvimento de software / Emanuella Aleixo de Barros. Recife: O Autor, 2010. 148 folhas : il., fig., tab. Dissertação (mestrado) Universidade Federal Pernambuco. CIn. Ciência da computação, 2010.. de. Inclui bibliografia. 1. Engenharia de software. 2. Gestão de produtividade. I. Título. 005.1. CDD (22. ed.). MEI2010 – 0154.

(4)

(5) Dedico esta dissertação a Juscineide Aleixo de Barros, tia Neide, pois ela, mais do que ninguém, sabe da dificuldade e do orgulho de um trabalho como esse..

(6) Agradecimentos Gostaria de agradecer a todos que, de maneira direta ou indireta, contribuíram para realização deste trabalho, tanto em aspectos pessoais quanto acadêmicos. Em especial: A Deus, pois “Até aqui nos ajudou o Senhor”; Aos professores Silvio Meira e Gibeon Aquino que me deram a oportunidade de fazer parte deste Centro de Excelência e por toda a orientação, e aos demais, por tudo que me foi ensinado. À tia Neide, por todo apoio, incentivo e dedicação a mim, desde o dia do vestibular, onde tudo começou, até o último ponto desta dissertação. À minha família, meu pai, especialmente minha mãe, por seu apoio completo e incondicional, e meu irmão que, apesar de tudo, sempre fica feliz ao ver o meu progresso. A Deivid, meu futuro marido, que também colaborou para que eu pudesse concluir mais esta etapa, passando muitos finais de semana sozinho e possibilitando a minha ausência ao ficar, mais uma vez sozinho, à frente do nosso negócio. À minha amiga e companheira de estudos, a essa altura, já Mestra, Suzana Cândido de Barros Sampaio, pois foi ao seu lado que consegui concretizar este trabalho. Obrigada por todos os almoços, latinhas de refrigerante, biscoitos, pães com queijo, salgadinhos e até copos descartáveis compartilhados nos últimos meses no CIn. Sem falar da sua ajuda direta para elaboração desta dissertação, através de conversas, troca de idéias, traduções, dentre outras coisas. Não posso esquecer de agradecer também à sua família, Mauro, Letícia e Rafael, por terem me recebido tão bem em sua casa. A todos os amigos do grupo de pesquisa ProSE, Joelza, Renata e Romeu pelo conhecimento compartilhado, em particular, Felipe Furtado, pois sua dissertação me ajudou bastante e também por seu apoio na revisão deste trabalho..

(7) À Secretária de Educação de Santa Cruz do Capibaribe (minha terra natal), Socorro Maia, por possibilitar a minha ausência no trabalho, para que assim eu pudesse me dedicar mais à conclusão do mestrado, além das inúmeras caronas de Santa Cruz-Recife, RecifeSanta Cruz. Enfim, a todos vocês, o meu mais sincero OBRIGADA!.

(8) “Comece fazendo o que é necessário, depois o que é possível e, de repente, você estará fazendo o impossível”. São Francisco de Assis..

(9) Resumo A competitividade empresarial, motivada pela globalização econômica, passou a ser a principal preocupação do mercado, e na indústria de software isso não é diferente. O contexto mundial, através do aumento da demanda, exige que as empresas de software reduzam seus custos de produção, bem como o time-to-market e melhorem cada vez mais os níveis de qualidade dos seus produtos. Uma das principais ações para enfrentar tudo isso é aumentar a produtividade. No entanto, a produtividade no desenvolvimento de software é influenciada por inúmeros fatores. Muitas pesquisas têm sido feitas no sentido de identificar tais fatores, porém esses estudos estão dispersos pela vasta literatura e com diferentes denominações, objetivos e conclusões, o que pode dificultar, para as organizações de desenvolvimento de software, a obtenção, compreensão e extração de informações que lhes possam ser úteis. Diante do problema observado, este trabalho fornece, no formato de catálogo, um conjunto de informações consolidadas, tais como impacto, controle e relações sobre os principais fatores que influenciam a produtividade, que pode ser usado para apoiar o planejamento, a tomada de decisão, o controle e a análise de resultados de organizações de software que queiram ou estejam investindo em iniciativas de melhoria de produtividade. Além disso, faz um mapeamento dos estudos que endereçam e apontam fatores que influenciam a produtividade no desenvolvimento de software, desde a década de 70 até o ano de 2010; e analisa a realidade de organizações de software, principalmente brasileiras, em relação à proposta deste trabalho. Palavras-chave: Produtividade de software. Melhoria de produtividade. Fatores que influenciam a produtividade..

(10) Abstract The business competitiveness, driven by economic globalization, has become the main concern of the market and in the software industry is no different. The global context, through an increase in demand requires software companies to reduce their production costs and time-to-market and improve more and more levels of quality of their products. One of the main actions to deal with all this is to increase productivity. However, productivity in software development is influenced by many factors. Much research has been done to identify such factors, but these studies are scattered throughout the vast literature and with different names, objectives and conclusions, what can hinder, for the software development organizations, obtaining, understanding and information extraction that will be useful. Faced with the problem noted, this work provides in catalog format, a set of consolidated information , such as impact, control and relations of the factors that influence productivity, which can be used to support planning, decision making, control and analysis of results of organizations software or who want to invest in initiatives to improve productivity. Furthermore, it makes a mapping studies that address the factors that influence the productivity of software development since the 70s until the year 2010, and examines the reality of software organizations, mainly in Brazil, in relation to this proposal work. Keywords: productivity.. Productivity. software.. Productivity. improvement.. Factors. influencing.

(11) Lista de Ilustrações FIGURA 1.1 – TENDÊNCIAS DO CUSTO DE SOFTWARE. ...................................................................................... 14 FIGURA 1.2 – CRESCIMENTO NA DEMANDA POR SOFTWARE PARA O ESPAÇO AÉREO AMERICANO. ........................... 15 FIGURA 1.3 – ESTRATÉGIAS DO MERCADO BRASILEIRO DE SOFTWARE E SERVIÇO PARA ENFRENTAR A CRISE MUNDIAL. 15 FIGURA 1.4 – RESOLUÇÃO DE PROJETOS DE 2000 À 2008. .............................................................................. 16 FIGURA 1.5 – PARTES DO PROBLEMA DE PRODUTIVIDADE DE SOFTWARE............................................................. 17 FIGURA 1.6 – CONTEXTO DA PROPOSTA. ....................................................................................................... 20 FIGURA 1.7 – FASES DA METODOLOGIA DA PESQUISA. ..................................................................................... 24 FIGURA 1.8 – DISTRIBUIÇÃO, POR DÉCADA, DAS REFERÊNCIAS MAPEADAS. .......................................................... 26 FIGURA 2.1 – DISTRIBUIÇÃO DOS ESTUDOS DE MÉTRICAS DE PRODUTIVIDADE AO LONGO DAS DÉCADAS. .................. 33 FIGURA 2.2 – TENDÊNCIAS DA PRODUTIVIDADE DE PROJETOS DE SOFTWARE (1987-2003). .................................. 34 FIGURA 2.3 – TENDÊNCIA DA PDR, ENTRE OS ANOS DE 1995 E 2005. ............................................................... 35 FIGURA 2.4 – TAXAS DE CRESCIMENTO ANUAL DA PRODUTIVIDADE PARA AS INDÚSTRIAS, ENTRE OS ANOS DE 1998 E 2003. ................................................................................................................................. 36 FIGURA 3.1 – COST DRIVER DO COCOMO E O IMPACTO NA PRODUTIVIDADE...................................................... 40 FIGURA 3.2 – DISTRIBUIÇÃO DA VARIAÇÃO NA PRODUTIVIDADE. ....................................................................... 42 FIGURA 3.3 – ÁRVORE DE OPORTUNIDADES PARA MELHORIA DA PRODUTIVIDADE DE SOFTWARE. ........................... 43 FIGURA 3.4 – PRODUTIVIDADE POR SETOR DE NEGÓCIO. .................................................................................. 48 FIGURA 3.5 – OS MOVIMENTOS DA PDR, TAMANHO MÉDIO DA EQUIPE E PORCENTAGEM DO USO DE 3GL. ............. 52 FIGURA 3.6 – LINHA DO TEMPO RELACIONADA A ALGUNS ESTUDOS E FATORES. ................................................... 62 FIGURA 3.7 – PERCENTUAL DE CITAÇÕES DOS FATORES RELACIONADOS AO PRODUTO. .......................................... 63 FIGURA 3.8 – PERCENTUAL DE CITAÇÕES DOS FATORES RELACIONADOS AO PROJETO. ........................................... 64 FIGURA 3.9 – PERCENTUAL DE CITAÇÕES DOS FATORES RELACIONADOS À PESSOA. ............................................... 64 FIGURA 4.1 – TENDÊNCIA DO TAMANHO DOS PROJETOS DE SOFTWARE ENTRE OS ANOS DE 1987 E 2003. ............... 72 FIGURA 4.2 – INFLUÊNCIA DO TAMANHO DO PROJETO NA PRODUTIVIDADE. ........................................................ 74 FIGURA 4.3 – CORRELAÇÃO ENTRE LOG(TAMANHO) E LOG(ESFORÇO). ............................................................... 75 FIGURA 4.4 – RELAÇÃO LINEAR ENTRE PRODUTIVIDADE E TAXA DE REUSO. .......................................................... 84 FIGURA 4.5 – VARIAÇÃO DA PRODUTIVIDADE EM RELAÇÃO AO NÚMERO DE PESSOAS. ........................................... 87 FIGURA 4.6 – NÚMERO DE CAMINHOS DE COMUNICAÇÃO PARA O NÚMERO DE MEMBROS NA EQUIPE. ................... 87 FIGURA 4.7 – OS MOVIMENTOS DA PDR E TAMANHO MÉDIO DO TIME 1995-2005............................................. 89 FIGURA 4.8 – PRODUTIVIDADE ORGANIZACIONAL DE ACORDO COM O NÚMERO DE MEMBROS NA EQUIPE. ............... 90.

(12) FIGURA 4.9 – OS MOVIMENTOS DA PDR E A PORCENTAGEM DO USO DE 3GL 1995-2005. .................................. 95 FIGURA 4.10 – EXPERIÊNCIA DA EQUIPE VERSUS TAXA DE PRODUÇÃO. ............................................................. 100 FIGURA 4.11 – RELACIONAMENTO ENTRE OS FATORES E A INFLUÊNCIA DOS PRINCIPAIS NA PRODUTIVIDADE. .......... 109 FIGURA 5.1 – ETAPAS DA ANÁLISE DA PROPOSTA. ......................................................................................... 113 FIGURA 5.2 – LOCALIZAÇÃO DAS ORGANIZAÇÕES. ......................................................................................... 118 FIGURA 5.3 – TEMPO DAS ORGANIZAÇÕES NO MERCADO. .............................................................................. 118 FIGURA 5.4 – TAMANHO DAS ORGANIZAÇÕES. ............................................................................................. 119 FIGURA 5.5 – ÁREAS DE NEGÓCIO DAS ORGANIZAÇÕES. ................................................................................. 120 FIGURA 5.6 – CARGOS OCUPADOS PELOS RESPONDENTES............................................................................... 120 FIGURA 5.7 – ANOS DE EXPERIÊNCIA PROFISSIONAL NA ÁREA DE SOFWARE DOS RESPONDENTES. .......................... 121 FIGURA 5.8 – CONSOLIDAÇÃO DA QUESTÃO 9 DA PESQUISA DE CAMPO. ........................................................... 122 FIGURA 5.9 – CONSOLIDAÇÃO DA QUESTÃO 10 DA PESQUISA DE CAMPO. ......................................................... 123 FIGURA 5.10 – CONSOLIDAÇÃO DA QUESTÃO 11 DA PESQUISA DE CAMPO. ....................................................... 124 FIGURA 5.11 – PERCENTUAL DE ESCOLHA DOS FATORES RELACIONADOS AO PRODUTO........................................ 126 FIGURA 5.12 – COMPARATIVO DOS FATORES RELACIONADOS AO PRODUTO ENTRE INDÚSTRIA E LITERATURA. ........ 127 FIGURA 5.13 – PERCENTUAL DE ESCOLHA DOS FATORES RELACIONADOS AO PROJETO. ........................................ 127 FIGURA 5.14 – COMPARATIVO DOS FATORES RELACIONADOS AO PROJETO ENTRE INDÚSTRIA E LITERATURA. .......... 128 FIGURA 5.15 – PERCENTUAL DE ESCOLHA DOS FATORES RELACIONADOS À PESSOA. ............................................ 129 FIGURA 5.16 – COMPARATIVO DOS FATORES RELACIONADOS À PESSOA ENTRE INDÚSTRIA E LITERATURA. .............. 130 FIGURA 5.17 – CONSOLIDAÇÃO DA QUESTÃO 13 DA PESQUISA DE CAMPO. ....................................................... 131 FIGURA 5.18 – CONSOLIDAÇÃO DA QUESTÃO 14 DA PESQUISA DE CAMPO. ....................................................... 131 FIGURA 5.19 – CONSOLIDAÇÃO DA QUESTÃO 15 DA PESQUISA DE CAMPO. ....................................................... 132 FIGURA 5.20 – CONSOLIDAÇÃO DA QUESTÃO 16 DA PESQUISA DE CAMPO. ....................................................... 133 FIGURA 5.21 – CONSOLIDAÇÃO EM TRÊS NÍVEIS DAS QUATRO QUESTÕES QUE POSSUEM A MESMA ESCALA DE OPÇÕES DE RESPOSTAS. ................................................................................................................. 135.

(13) Lista de Tabelas TABELA 3.1 – VALOR QUE DEVE SER MULTIPLICADO AO ESFORÇO DO PROJETO DE ACORDO COM A COMPLEXIDADE DO SOFTWARE. .......................................................................................................................... 41. TABELA 3.2 – IMPACTO DOS FATORES NA PRODUTIVIDADE. .............................................................................. 49 TABELA 3.3 – PRODUTIVIDADE DE SOFTWARE POR DOMÍNIOS DAS APLICAÇÕES. ................................................... 50 TABELA 3.4 – PRINCIPAIS FATORES IDENTIFICADOS EM CADA REFERÊNCIA E CLASSIFICADOS NA CATEGORIA PRODUTO. 56 TABELA 3.5 – PRINCIPAIS FATORES IDENTIFICADOS EM CADA REFERÊNCIA E CLASSIFICADOS NA CATEGORIA PROJETO. . 58 TABELA 3.6 – PRINCIPAIS FATORES IDENTIFICADOS EM CADA REFERÊNCIA E CLASSIFICADOS NA CATEGORIA PESSOA. .. 60 TABELA 4.1 – PRODUTIVIDADE PARA DIFERENTES NÍVEIS DE LINGUAGEM DE PROGRAMAÇÃO. ................................ 93 TABELA 4.2 – PROPORÇÃO DAS INSTRUÇÕES EM LINGUAGEM DE ALTO NÍVEL COM O CÓDIGO EQUIVALENTE EM C. .... 93 TABELA 4.3 – O BREAKDOWN DE QUATRO TIPOS DE LINGUAGEM 1995-2005..................................................... 94 TABELA 4.4 – EXPERIÊNCIA NA LINGUAGEM DE PROGRAMAÇÃO (LEXP) E ESFORÇO. ........................................... 101 TABELA 5.1 – RELACIONAMENTO ENTRE OS OBJETIVOS DA PESQUISA E AS RESPECTIVAS PERGUNTAS E OPÇÕES DE RESPOSTA. ......................................................................................................................... 115.

(14) Lista de Abreviaturas e Siglas ApG CASE CMM CMMI COBRA COCOMO DS DSI DSL ELOC IEEE ISBSG MPP PCU PDR PF SLOC TI 2GL 3GL 4GL. Geradora de Aplicação Computer-Aided Software Engineering Capability Maturity Model Capability Maturity Model Integration Cost estimation, Benchmarking, and Risk Assessment Constructive Cost Model Delivery Source Delivery Source Instructions Delivery Source Lines Executable Lines Of Code Institute of Electrical and Electronics Engineers International Software Benchmarking Standards Group Modernas Práticas de Programação Pontos de Caso de Uso Normalized Productivity Delivery Rate Pontos de Função Source Lines of Code Tecnologia da Informação Linguagem de Segunda Geração Linguagem de Terceira Geração Linguagem de Quarta Geração.

(15) Índice 1.. INTRODUÇÃO ..................................................................................................................... 13 1.1 MOTIVAÇÃO ................................................................................................................................ 14 1.2 PROBLEMA .................................................................................................................................. 17 1.3 OBJETIVOS ................................................................................................................................... 19 1.3.1 OBJETIVO GERAL ...................................................................................................................... 19 1.3.2 OBJETIVOS ESPECÍFICOS............................................................................................................. 19 1.4 CONTEXTO................................................................................................................................... 20 1.5 TRABALHOS RELACIONADOS ........................................................................................................... 22 1.6 CONTRIBUIÇÕES ........................................................................................................................... 23 1.7 METODOLOGIA DA PESQUISA ......................................................................................................... 23 1.8 ESTRUTURA DA DISSERTAÇÃO ......................................................................................................... 27. 2.. PRODUTIVIDADE ................................................................................................................ 29 2.1 2.2 2.3 2.4. 3.. DEFINIÇÃO................................................................................................................................... 30 PRINCIPAIS MÉTRICAS UTILIZADAS ................................................................................................... 31 COMPORTAMENTO DA PRODUTIVIDADE AO LONGO DOS ANOS ............................................................. 34 CONSIDERAÇÕES FINAIS ................................................................................................................. 36. FATORES QUE INFLUENCIAM A PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE .... 38 3.1 3.2 3.3 3.4 3.5 3.6 3.7. FATORES QUE INFLUENCIAM A PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE (1970 – 1979) ...... 39 FATORES QUE INFLUENCIAM A PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE (1980 – 1989) ...... 40 FATORES QUE INFLUENCIAM A PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE (1990 – 1999) ...... 44 FATORES QUE INFLUENCIAM A PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE (2000 – 2010) ...... 47 CLASSIFICAÇÃO DOS FATORES ......................................................................................................... 53 RESUMO DOS FATORES IDENTIFICADOS NA LITERATURA ....................................................................... 55 CONSIDERAÇÕES FINAIS ................................................................................................................. 62. 4. CATÁLOGO DE FATORES QUE INFLUENCIAM A PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE ................................................................................................................................. 65 4.1 INTRODUÇÃO ............................................................................................................................... 66 4.2 ESTRUTURA DO CATÁLOGO............................................................................................................. 66 4.3 FATORES RELACIONADOS AO PRODUTO ............................................................................................ 68 4.3.1 COMPLEXIDADE DO SOFTWARE ................................................................................................... 68 4.3.1.1 DEFINIÇÃO .......................................................................................................................... 68 4.3.1.2 CITAÇÕES............................................................................................................................ 68 4.3.1.3 BACKGROUND ..................................................................................................................... 69 4.3.1.4 IMPACTO ............................................................................................................................ 70 4.3.1.5 CONTROLE .......................................................................................................................... 70 4.3.1.6 FATORES RELACIONADOS....................................................................................................... 71 4.3.2 TAMANHO DO SOFTWARE.......................................................................................................... 71 4.3.2.1 DEFINIÇÃO .......................................................................................................................... 71 4.3.2.2 CITAÇÕES............................................................................................................................ 72 4.3.2.3 BACKGROUND ..................................................................................................................... 72 4.3.2.4 IMPACTO ............................................................................................................................ 76 4.3.2.5 CONTROLE .......................................................................................................................... 76.

(16) 4.3.2.6 FATORES RELACIONADOS....................................................................................................... 76 4.4 FATORES RELACIONADOS AO PROJETO ............................................................................................. 77 4.4.1 PROCESSO DE DESENVOLVIMENTO DE SOFTWARE .......................................................................... 77 4.4.1.1 DEFINIÇÃO .......................................................................................................................... 77 4.4.1.2 CITAÇÕES............................................................................................................................ 78 4.4.1.3 BACKGROUND ..................................................................................................................... 78 4.4.1.4 IMPACTO ............................................................................................................................ 79 4.4.1.5 CONTROLE .......................................................................................................................... 79 4.4.1.6 FATORES RELACIONADOS....................................................................................................... 80 4.4.2 FERRAMENTAS ......................................................................................................................... 80 4.4.2.1 DEFINIÇÃO .......................................................................................................................... 80 4.4.2.2 CITAÇÕES............................................................................................................................ 80 4.4.2.3 BACKGROUND ..................................................................................................................... 81 4.4.2.4 IMPACTO ............................................................................................................................ 82 4.4.2.5 CONTROLE .......................................................................................................................... 82 4.4.2.6 FATORES RELACIONADOS....................................................................................................... 82 4.4.3 REUSO .................................................................................................................................... 83 4.4.3.1 DEFINIÇÃO .......................................................................................................................... 83 4.4.3.2 CITAÇÕES............................................................................................................................ 83 4.4.3.3 BACKGROUND ..................................................................................................................... 83 4.4.3.4 IMPACTO ............................................................................................................................ 85 4.4.3.5 CONTROLE .......................................................................................................................... 85 4.4.3.6 FATORES RELACIONADOS....................................................................................................... 85 4.4.4 TAMANHO DA EQUIPE ............................................................................................................... 86 4.4.4.1 DEFINIÇÃO .......................................................................................................................... 86 4.4.4.2 CITAÇÕES............................................................................................................................ 86 4.4.4.3 BACKGROUND ..................................................................................................................... 86 4.4.4.4 IMPACTO ............................................................................................................................ 90 4.4.4.5 CONTROLE .......................................................................................................................... 90 4.4.4.6 FATORES RELACIONADOS....................................................................................................... 90 4.4.5 LINGUAGEM DE PROGRAMAÇÃO ................................................................................................. 91 4.4.5.1 DEFINIÇÃO .......................................................................................................................... 91 4.4.5.2 CITAÇÕES............................................................................................................................ 91 4.4.5.3 BACKGROUND ..................................................................................................................... 91 4.4.5.4 IMPACTO ............................................................................................................................ 95 4.4.5.5 CONTROLE .......................................................................................................................... 95 4.4.5.6 FATORES RELACIONADOS....................................................................................................... 95 4.4.6 VOLATILIDADE DOS REQUISITOS .................................................................................................. 96 4.4.6.1 DEFINIÇÃO .......................................................................................................................... 96 4.4.6.2 CITAÇÕES............................................................................................................................ 96 4.4.6.3 BACKGROUND ..................................................................................................................... 96 4.4.6.4 IMPACTO ............................................................................................................................ 97 4.4.6.5 CONTROLE .......................................................................................................................... 97 4.4.6.6 FATORES RELACIONADOS....................................................................................................... 98 4.5 FATORES RELACIONADOS À PESSOA ................................................................................................. 98 4.5.1 EXPERIÊNCIA GERAL DA EQUIPE .................................................................................................. 98 4.5.1.1 DEFINIÇÃO .......................................................................................................................... 98 4.5.1.2 CITAÇÕES............................................................................................................................ 98 4.5.1.3 BACKGROUND ..................................................................................................................... 99 4.5.1.4 IMPACTO .......................................................................................................................... 102 4.5.1.5 CONTROLE ........................................................................................................................ 102 4.5.1.6 FATORES RELACIONADOS..................................................................................................... 102.

(17) 4.5.2 GERENCIAMENTO ................................................................................................................... 102 4.5.2.1 DEFINIÇÃO ........................................................................................................................ 102 4.5.2.2 CITAÇÕES.......................................................................................................................... 103 4.5.2.3 BACKGROUND ................................................................................................................... 103 4.5.2.4 IMPACTO .......................................................................................................................... 104 4.5.2.5 CONTROLE ........................................................................................................................ 104 4.5.2.6 FATORES RELACIONADOS..................................................................................................... 104 4.6 OUTROS FATORES ....................................................................................................................... 105 4.7 RELACIONAMENTO ENTRE OS FATORES ........................................................................................... 109 4.8 CONSIDERAÇÕES FINAIS ............................................................................................................... 110 5.. ANÁLISE CRÍTICA DA PROPOSTA........................................................................................ 112 5.1 METODOLOGIA UTILIZADA ........................................................................................................... 113 5.2 ANÁLISE DOS DADOS ................................................................................................................... 117 5.2.1 ANÁLISE DO PERFIL DAS ORGANIZAÇÕES E DOS RESPONDENTES ..................................................... 117 5.2.2 ANÁLISE DOS RESULTADOS ....................................................................................................... 121 5.3 LIMITAÇÕES DA ANÁLISE .............................................................................................................. 134 5.4 CONSIDERAÇÕES FINAIS ............................................................................................................... 135. 6.. CONCLUSÕES .................................................................................................................... 137 6.1 CONSIDERAÇÕES FINAIS ............................................................................................................... 138 6.2 LIMITAÇÕES DA PESQUISA ............................................................................................................ 139 6.3 TRABALHOS FUTUROS.................................................................................................................. 140. REFERÊNCIAS ............................................................................................................................ 142.

(18) Capítulo. 1 1. INTRODUÇÃO Este capítulo apresenta a motivação deste trabalho, o problema abordado, ressaltando os objetivos da pesquisa, o contexto no qual está inserida, além das suas principais contribuições. Também são apresentados os trabalhos relacionados e a metodologia seguida. Ao final, descreve como está estruturada a presente dissertação..

(19) 1 – Introdução. 1.1. 14. Motivação A competitividade empresarial, motivada pela globalização econômica, passou a ser a. principal preocupação do mercado, e na indústria de software isso não é diferente. O contexto mundial exige que as organizações melhorem cada vez mais seus níveis de qualidade, diminuam os seus custos de produção e o tempo de entrega dos seus produtos. A Figura 1.1 mostra que a taxa de crescimento dos custos com software é de 12% ao ano e estima-se que no ano de 2000 foram gastos U$ 800 bilhões com software no mundo. Porém, esses custos estão aumentando não porque as pessoas estão se tornando menos produtivas, mas por causa do contínuo aumento da demanda por software (BOEHM, 1987). Taxa de crescimento: 12%/ano. Mundo. Custo do software (bilhões de dólares/ano). Estados Unidos. Departamento de Defesa Americano. Ano Figura 1.1 – Tendências do custo de software. [Fonte: Adaptada de BOEHM (1987)]. Diante do cenário de desenvolvimento cada vez maior da tecnologia do hardware e a conseqüente disponibilidade de máquinas cada vez mais potentes e baratas, o uso de computadores tem-se tornado cada vez mais difundido em diversas áreas. Isso tem causado um aumento da demanda por softwares cada vez maiores e mais complexos, como pode ser visto na Figura 1.2. No entanto, essa demanda tem sido maior do que a capacidade do mercado em atendê-la (BOEHM, 1987)..

(20) Milhões de instruções. 1 – Introdução. 15. Projetos. Figura 1.2 – Crescimento na demanda por software para o espaço aéreo americano. [Fonte: Adaptada de BOEHM (1987)]. Dados mais atuais revelam que o mercado mundial de software e serviço atingiu em 2008 o valor de US$ 873 bilhões e que, devido às turbulências que marcaram o ano de 2008, com grandes variações nos indicadores econômicos internacionais, as principais estratégias adotadas pelo mercado brasileiro de software e serviços foram, por exemplo, redução nos custos e no tempo de resposta ao mercado, conforme ilustrado na Figura 1.3.. Figura 1.3 – Estratégias do mercado brasileiro de software e serviço para enfrentar a crise mundial. [Fonte: Adaptada de ABES (2009)].

(21) 1 – Introdução. 16. Além disso, existe ainda a questão do elevado número de projetos mal sucedidos, conforme mostram os dados do Chaos Report 2009 (THE STANDISH GROUP, 2009). Em 2008 (Figura 1.4), apenas 32% dos projetos foram concluídos com sucesso, ou seja, foram entregues no prazo, dentro do orçamento planejado e com o escopo completo; 24% falharam, isto é, foram cancelados ou entregues e nunca utilizados; e a maioria (44%) mudaram, o que significa que foram entregues com atraso, além do orçamento planejado e/ou com escopo reduzido.. Figura 1.4 – Resolução de projetos de 2000 à 2008. [Fonte: Adaptada de CHAOS REPORT (2009)]. Para enfrentar esses desafios, a indústria de software e a academia estão buscando meios para melhorar a produtividade no desenvolvimento de software, e conhecer quais são os fatores que a influenciam é fundamental para que possa haver essa melhoria..

(22) 1 – Introdução. 1.2. 17. Problema A vasta literatura sobre produtividade no desenvolvimento de software1 indica que. muitos avanços já foram feitos no sentido de melhorá-la, através de pesquisa, definição, padronização e divulgação de boas práticas para tal fim (BOEHM, 1981; VOSBURG et al., 1984; BROOKS, 1995; DEMARCO E LISTER, 1999; BOEHM, 2000; JONES, 2000; CLINCY, 2003). Entretanto, também apresenta vários desafios que ainda hoje persistem. A Figura 1.5 representa esses desafios e como eles estão estruturados em termos de dependência, ou seja, ao pensar em como melhorar a produtividade se faz necessário, primeiramente, responder as seguintes questões: o que significa produtividade em software, como medi-la e o que a afeta, respectivamente (AQUINO JÚNIOR, 2010).. Como melhorar a produtividade?. O que afeta a produtividade?. Como medir a produtividade?. O que significa produtividade em software?. Figura 1.5 – Partes do problema de produtividade de software. [Fonte: Adaptada de AQUINO JÚNIOR (2010)]. Endereçando, especificamente, o problema o que afeta a produtividade?, muitas pesquisas têm sido feitas no sentido de identificar fatores que influenciam a produtividade. 1. Neste trabalho, a atividade de desenvolvimento representa também as atividades de manutenção e atualização de software..

(23) 1 – Introdução. 18. no desenvolvimento de software (WALSTON E FELIX, 1977; BOEHM, 1981; DEMARCO E LISTER, 1999; JONES 2000; JIANG E NAUDÉ, 2007). Segundo Jones (2000), projetos de software são influenciados por cerca de 250 diferentes fatores. Para Yu, Smith e Huang (1991), modificações apropriadas no processo e ambiente de desenvolvimento podem ser escolhidas com base em métricas e nos fatores de produtividade identificados. Wagner e Ruhe (2008) reforçam que a produtividade do time de desenvolvimento é decisiva para o sucesso dos projetos de software. No entanto, controlar a produtividade só é possível se os fatores que a influenciam são conhecidos. Os inúmeros estudos sobre esses fatores estão dispersos pela vasta literatura e com diferentes denominações, objetivos e conclusões, o que pode dificultar, para as organizações de desenvolvimento de software, a obtenção, compreensão e extração de informações que lhes possam ser úteis. Por essas razões, mais esforços são necessários no tocante à compilação desses fatores. Assim, o problema deste trabalho de pesquisa pode ser descrito da seguinte maneira: Quais são os principais fatores, reportados na literatura ao longo dos anos, que influenciam a produtividade no desenvolvimento de software e como prover informações sobre esses fatores, que possibilitem apoiar o planejamento, a tomada de decisão, o controle e a análise de resultados de organizações de software que queiram ou estejam investindo em iniciativas de melhoria de produtividade? A relevância do problema aqui proposto é decorrente da possibilidade que, uma vez ciente desses fatores e com informações que possibilitem a atuação sobre eles, as organizações podem melhorar sua produtividade, por exemplo, maximizando o efeito dos fatores que impactam positivamente na produtividade ou reduzindo o efeito dos fatores que impactam negativamente, visto que é possível saber se os fatores estão sob o controle ou não da organização. Outro ponto importante é a possibilidade que a organização tem, com essas informações, de decidir quais fatores deve priorizar para uma atuação mais imediata..

(24) 1 – Introdução. 1.3. 19. Objetivos. 1.3.1 Objetivo Geral O objetivo geral, que está diretamente associado ao problema da pesquisa, é o seguinte: Propor um catálogo com fatores que influenciam a produtividade, contendo informações como a definição do fator, estudos que abordam o fator, um resumo sobre o que a literatura relata, inclusive se o seu impacto na produtividade é positivo ou negativo, se é considerado controlável ou não e quais são os relacionamentos existentes com outros fatores. Para isso, será necessário compilar os fatores identificados na literatura, fazer um levantamento sobre quais são os principais, bem como obter informações mais específicas sobre cada fator.. 1.3.2 Objetivos Específicos O objetivo geral é, por sua vez, decomposto nos seguintes objetivos específicos: Disponibilizar, às organizações de desenvolvimento de software, uma lista de fatores que influenciam a produtividade; Identificar, segundo a literatura, se o fator ajuda a melhorar a produtividade, ou seja, se ele impacta positivamente ou se diminui a produtividade, ao impactar de maneira negativa; Informar se o fator pode ser controlado ou não pelo gerente ou organização; Descrever as relações existentes entre os fatores; Ajudar as organizações a decidirem, dado um conjunto de fatores, quais devem ser priorizados;.

(25) 1 – Introdução. 20. Analisar a realidade de organizações de software, principalmente brasileiras, em relação ao assunto desta dissertação.. 1.4. Contexto Este trabalho faz parte de um framework de soluções para melhoria de produtividade. que é alvo do grupo de pesquisa ProSE2 (Productivity in Software Engineering). O grupo foi criado em Setembro de 2007 pelo professor Silvio Romero de Lemos Meira e seus estudantes. O principal objetivo do ProSE é investigar e promover o desenvolvimento do estado-da-arte relacionado à produtividade e sua medição na engenharia de software. O problema abordado pelo grupo é como tratar a melhoria da produtividade como algo que se pode planejar, controlar e executar. A idéia é definir algum modelo focado na melhoria da produtividade que permita às organizações de software serem mais competitivas, implementando apenas as melhores práticas para aumentar sua capacidade de produção. A Figura 1.6 representa como o problema da produtividade foi segmentado para permitir a criação de soluções específicas no âmbito de melhoria da produtividade, bem como o contexto no qual esta proposta de dissertação está inserida.. Figura 1.6 – Contexto da proposta. [Fonte: Adaptada de SOARES (2009)]. 2. Productivity in Software Engineering. Disponível em: <http://prose.cesar.org.br>. Acesso em: 13/03/2009.

(26) 1 – Introdução. 21. As áreas que compõem esse contexto são as seguintes: Infra-estrutura para Medição de Produtividade: O objetivo dessa área é definir a infra-estrutura (ferramentas, hardware, etc) necessária para dar suporte à implantação e manutenção de um programa de métricas de produtividade em organizações de software. Métricas de Produtividade: Essa área tem como objetivo definir as métricas de produtividade mais adequadas para o contexto de cada organização. Em particular, propõe ajudar organizações de software a definir seu modelo de medição de produtividade de maneira que esteja próximo ao nível estratégico da organização. Além disso, considera a idéia de medição de produtividade baseada em valor (AQUINO JÚNIOR, 2010). Fatores de Produtividade (escopo deste trabalho): A proposta dessa área é a elaboração de um catálogo de fatores, identificados na literatura, que influenciam a produtividade de projetos de software, contemplando um conjunto de informações sobre esses fatores, que possibilite apoiar o planejamento, a tomada de decisão, o controle e análise de resultados de organizações de software que queiram ou estejam investindo em iniciativas de melhoria de produtividade. Medição de Produtividade: Essa área propõe a definição de uma forma sistemática de estabelecer e sustentar iniciativas de medição de produtividade em organizações de software. Ela compila as melhores práticas já documentadas sobre medição de produtividade de software em geral e as adapta para requisitos específicos de medição de produtividade nas organizações, além de investigar e experimentar novas práticas neste escopo (AQUINO JÚNIOR, 2010). Estratégias de Melhoria de Produtividade: O objetivo dessa área é identificar estratégias, já documentadas, para maximizar ou reduzir os efeitos dos fatores que influenciam a produtividade. Ela também propõe uma Meta Estratégia que permita o planejamento e a execução de programas de melhoria, onde cada programa será.

(27) 1 – Introdução. 22. específico para a realidade e particularidade da organização que a executa (SAMPAIO, 2010). Sistemas de Recompensa: Essa área, que é subparte das Estratégias de Melhoria da Produtividade, endereça o problema da definição e implementação de sistemas de incentivos em organizações de desenvolvimento de software. Em particular, o objetivo dessa área é apresentar algumas recomendações para apoiar os gestores das organizações de software na implantação de sistema de recompensa como estratégia para aumentar a produtividade do time (SOARES, 2009). Modelo de Melhoria de Produtividade: A partir das demais áreas apresentadas, o objetivo desta área é propor um modelo de melhoria contínua de produtividade seguindo os padrões utilizados pelo CMMI (SEI, 2006) e MPS-BR (SOFTEX, 2007).. 1.5. Trabalhos Relacionados Entre os estudos analisados na literatura, dois deles foram classificados como. trabalhos relacionados. Em 1996, Maxwell, Wassenhove e Dutta (1996) apresentaram uma pesquisa realizada sobre os fatores que têm um significante efeito na produtividade em aplicações espacial, militar e industrial européias. Como parte do estudo, foram realizados um mapeamento entre fatores e referências, através de uma revisão de pesquisas passadas, e um levantamento da influência de alguns fatores na produtividade. No entanto, a revisão englobou apenas 18 referências, bem como já se passaram mais de 13 anos da sua publicação. Desde então, um grande número de estudos tem contribuído com pesquisas nessa área e novos fatores surgiram. Recentemente, Wagner e Ruhe (2008) fizeram uma revisão estruturada sobre os fatores de produtividade no desenvolvimento de software. Porém, essa análise aponta apenas o fator, uma breve descrição, suas referências e métricas. Essas informações não são suficientes para ajudar as organizações a atuar em relação a esses fatores..

(28) 1 – Introdução. 23. Este trabalho de dissertação aqui apresentado, além de fazer uma revisão sobre os principais fatores citados na literatura, aponta o impacto desses fatores (positivo ou negativo) na produtividade, se são considerados sob controle ou não do gerente e suas relações com outros fatores, o que permite apoiar o planejamento, a tomada de decisão, o controle e análise de resultados de organizações de software que desejam melhorar sua produtividade.. 1.6. Contribuições As principais contribuições deste trabalho são as seguintes: 1.. Revisão e mapeamento dos estudos que endereçam os fatores que influenciam a. produtividade no desenvolvimento de software, desde a década de 70 até o ano de 2010 (SAMPAIO et al., 2010); 2.. Criação de um catálogo de fatores que influenciam a produtividade no. desenvolvimento de software contendo informações como a definição do fator, estudos que abordam o fator, um resumo sobre o que a literatura relata, inclusive se o seu impacto na produtividade é positivo ou negativo, se é considerado controlável ou não e quais são os relacionamentos existentes com outros fatores. 3.. Análise da realidade de várias organizações de software (através dos seus. membros), principalmente brasileiras, em relação ao assunto desta dissertação.. 1.7. Metodologia da Pesquisa Esta pesquisa está estruturada em uma seqüência de quatro fases, conforme a Figura. 1.7:.

(29) 1 – Introdução. 24. Figura 1.7 – Fases da metodologia da pesquisa. [Fonte: Elaboração Própria]. Fase I: Partindo da definição do problema da pesquisa e com o delineamento do escopo a ser explorado, um estudo foi indicado para leitura inicial (MAXWELL, WASSENHOVE E DUTTA, 1996). Este estudo mais tarde foi caracterizado como um trabalho relacionado que serviu de inspiração para o mapeamento apresentado na Seção 3.6. Utilizando o artifício de busca em profundidade3, a partir do estudo indicado, chegou-se às primeiras referências. O termo referência é utilizado para representar os vários tipos de publicações existentes como artigos, livros, periódicos, relatórios técnicos, estudos de caso, monografias, dissertações, teses, dentre outros. Fase II: Para obter mais referências, a combinação de estratégias de buscas manual e automática foi utilizada.. 3. Referência ao conceito usado na teoria dos grafos, onde, a partir de um vértice, é realizada uma busca que explora tanto quanto possível cada um dos seus nós..

(30) 1 – Introdução. 25 o. Busca Manual: Realizou-se através de buscas em profundidade a partir de. referências-chave. Também foram incluídas referências indicadas e/ou produzidas por membros do grupo ProSE. o. Busca Automática: Foi realizada utilizando os seguintes termos-chave e. engenho de busca: . Termos-chave:. Software. productivity,. software. engineering. productivity, software productivity improvement, software development productivity, software development effort, software development cost, software productivity impacts, productivity factors, factors affecting software productivity. Para cada termo-chave utilizado, apenas as 10 primeiras indicações do engenho de busca foram recuperadas. . Engenho de busca: Google Scholar (scholar.google.com).. As buscas resultaram em um conjunto de 146 referências, tendo como principais fontes os portais ACM Digital Library, IEEE Xplore, IEEE Computer Society, Science Direct e Springer. Nesse resultado, já estão excluídas algumas referências que não puderem ser obtidas, pois não estavam disponíveis gratuitamente para download ou o acesso não foi possível. Fase III: Após uma leitura resumida feita pelo título e abstract, um subconjunto de 78 referências foi selecionado para uma leitura completa. À medida que uma referência era lida e constatava-se que os fatores que influenciam a produtividade eram abordados, a mesma ia fazendo parte do mapeamento (Referência X Fatores) realizado nesta dissertação, conforme pode ser visto na Seção 3.6. Alguns fatores foram identificados, porém não fizeram parte do mapeamento por dois motivos: eram muito específicos para o contexto do estudo, a exemplo do fator país, ou porque, não influenciam mais na produtividade, como por exemplo, experiência com o sistema operacional, devido à padronização do hardware. Para publicações que apresentaram os resultados do mesmo estudo (geralmente os mesmos autores) em diferentes conferências, assim como livros que tiveram mais de uma edição, apenas.

(31) 1 – Introdução. 26. uma referência foi incluída no mapeamento. Portanto, no total, 61 referências e 27 fatores foram mapeados. A Figura 1.8 representa a distribuição dessas referências por década.. Figura 1.8 – Distribuição, por década, das referências mapeadas.. Fase IV: Concluído o mapeamento, o total de citações de cada fator foi calculado. Diante da quantidade de fatores mapeados (27) foi necessário utilizar um critério de seleção para definir quais fatores fariam parte do catálogo, pois endereçar todos esses fatores tornaria o catálogo muito extenso. Diante disso, o critério adotado foi: o fator deve apresentar, no mínimo, 15 citações para fazer parte do catálogo. Atenderam a esse critério 10 fatores. A escolha do valor 15 se deu através da observação do quantitativo de citações de cada fator e qual o valor que os diferenciava dos mais e menos citados. Nessa fase também foi definida a estrutura do catálogo. Por fim, após essas duas atividades, uma releitura foi realizada no subconjunto de 78 referências, desta vez focando na captação de conteúdo sobre os fatores selecionados e pontos abordados no catálogo..

(32) 1 – Introdução. 1.8. 27. Estrutura da Dissertação Esta dissertação encontra-se estruturada da seguinte maneira: Capítulo 1: INTRODUÇÃO O primeiro capítulo apresentou a motivação para realização deste trabalho, o problema abordado, os objetivos da pesquisa, bem como o contexto no qual ele está inserido. Os trabalhos relacionados, as contribuições e a metodologia da pesquisa também são descritas. Finalmente, mostrou como está estruturado o restante da presente dissertação. Capítulo 2: PRODUTIVIDADE O objetivo deste capítulo é definir os principais conceitos e fundamentos que envolvem o tema Produtividade. Complementando o capítulo, é feita uma análise, baseada em dados da literatura, sobre o comportamento da produtividade em projetos de software ao longo dos anos. Capítulo. 3:. FATORES. QUE. INFLUENCIAM. A. PRODUTIVIDADE. NO. DESENVOLVIMENTO DE SOFTWARE Este capítulo descreve, a partir da revisão bibliográfica, os principais estudos sobre os fatores que influenciam a produtividade de projetos de software, agrupados por década.. Também é apresentado o mapeamento realizado entre Referências e. Fatores. Capítulo 4: CATÁLOGO DE FATORES QUE INFLUENCIAM A PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE Este capítulo apresenta a solução proposta por este trabalho através de um catálogo contendo diversas informações sobre os principais fatores que influenciam a produtividade no desenvolvimento de software..

(33) 1 – Introdução. 28. Capítulo 5: ANÁLISE CRÍTICA DA PROPOSTA Este capítulo descreve como foi realizada a análise crítica da proposta desta dissertação, a metodologia utilizada, os resultados, bem como as limitações da análise. Capítulo 6: CONCLUSÕES Este capítulo apresenta as conclusões desta dissertação, resumindo o problema identificado, como os objetivos propostos foram alcançados, as limitações da pesquisa e indicações para trabalhos futuros..

(34) Capítulo. 2 2. PRODUTIVIDADE O objetivo deste capítulo é descrever os principais conceitos e fundamentos relacionados ao tema produtividade, além de apresentar as principais métricas utilizadas para avaliá-la. Por fim, é feita uma análise, baseada em dados da literatura, sobre o comportamento da produtividade em projetos de software ao longo dos anos..

(35) Capítulo 2 – Produtividade. 30. 2.1 Definição Diversas são as maneiras de definir produtividade. Segundo o dicionário Michaelis4, produtividade é o rendimento de uma atividade econômica em função de tempo, área, capital, pessoal e outros fatores de produção. Já na economia, produtividade é a relação entre a quantidade produzida de bens ou serviços e a despesa ou trabalho necessário para produzi-los. Portanto, na engenharia de software, produtividade é comumente definida como a razão entre outputs produzidos e inputs consumidos (WALSTON E FELIX, 1977; BOEHM, 1987; YU, SMITH E HUANG, 1991; STENSRUD E MYRTVEIT, 2003; MACCORMACK et al., 2003) (Equação 2.1).. Alguns outputs típicos são programas-fonte, documentações do usuário e funções do software entregues. Já inputs podem ser esforço de desenvolvimento (em pessoa-ano, por exemplo), custos (em dólares, por exemplo) com computadores e infra-estrutura para desenvolvimento e teste, e custos com empregados (YU, SMITH E HUANG, 1991). Assim, usando a Equação 2.1, uma organização pode aumentar sua produtividade focando no aumento dos outputs, na redução dos inputs ou em ambos. Aparentemente, o conceito de produtividade parece simples, porém no contexto de projetos de software não é. O maior problema está em definir o que são outputs (BOEHM, 1987). Cada organização tem uma maneira de trabalho própria e diferentes pontos de vista para definir quais são os outputs produzidos como resultado do projeto de software. Por exemplo, para o gerente de projeto, o output utilizado por ele para calcular a produtividade pode ser o número de funcionalidades entregues. Já a área de tecnologia pode usar o grau de inovação tecnológica envolvida no projeto. O responsável pelo setor de recursos humanos pode utilizar a satisfação da equipe, assim como o gerente de qualidade pode levar em consideração a qualidade do produto gerado. Portanto, dependendo do tipo e do. 4. Disponível em: <michaelis.uol.com.br>. Acesso em: 27/01/2010..

(36) Capítulo 2 – Produtividade. 31. propósito da organização, das pessoas envolvidas ou ainda do tipo de projeto, os outputs podem ser diversos para o mesmo produto gerado (AQUINO JÚNIOR, 2010). Para Maxwell (2003), a atividade de desenvolvimento de software consiste na transformação de idéias em produtos. Diante dessa visão, ela propõe outras definições de produtividade no desenvolvimento de software: Para empresas que desenvolvem e vendem software como um produto, produtividade pode ser definida como renda gerada por empregado; Para organizações internas de TI, produtividade pode ser definida como aumento das receitas realizadas pela empresa apoiada por dólar gasto pela organização de TI. Na visão de Aquino Júnior (2010), produtividade é um fenômeno relativo e por essa razão é necessário ser definida e analisada apenas em um contexto particular, porque isso envolve estratégia e cultura organizacional, modus operandi, além dos interesses e conhecimento daquelas pessoas diretamente envolvidas na medição e avaliação da produtividade. Este trabalho se identifica com a definição de produtividade adotada por diversos pesquisadores (WALSTON E FELIX, 1977; VOSBURG et al., 1984; BOEHM, 1987; YU, SMITH E HUANG, 1991; BLACKBURN, SCUDDER E WASSENHOVE, 1996 MAXWELL E FORSELIUS, 2000; KITCHENHAM E MENDES, 2004, WAGNER E RUHE, 2008), a de output/input, porém não se prende a nenhuma métrica específica, pois o uso do catálogo não requer essa definição.. 2.2 Principais Métricas Utilizadas O IEEE Standard Glossary (1990) define métrica como uma medida quantitativa do grau de um sistema, componente ou processo que possui um dado atributo. Para Tom DeMarco (1982) é um número que atribuem a uma idéia. Mais precisamente, métrica é uma indicação mensurável de algum aspecto quantitativo de um sistema..

(37) Capítulo 2 – Produtividade. 32. Medir a produtividade de software tem sido, historicamente, um processo difícil. As inúmeras métricas existentes, as várias discussões sobre quais são as mais adequadas e as críticas feitas sobre cada uma delas refletem essa dificuldade (BOEHM, 1987; MAXWELL, WASSENHOVE E DUTTA, 1996; AQUINO JÚNIOR E MEIRA, 2009b). Conforme apresentado na Figura 1.5, essa questão é também uma das partes que integram o problema da produtividade. Segundo Scacchi (1995), existem diversos estudos sobre métricas de produtividade de software que são inadequados e enganosos. Dependendo de como e quais indicadores de produtividade de software são medidos, é possível alcançar resultados bem diferentes. Logo, para melhorar a produtividade do processo de desenvolvimento, medições precisas de input e output devem ser feitas, pois sem boas métricas, o progresso é improvável (YU, SMITH E HUANG, 1991). Apesar da dificuldade em medir a produtividade dos projetos de software, muito esforço tem sido realizado na tentativa de obter meios para melhor avaliar a produtividade, isso é visível através do grande número de estudos realizados sobre o assunto (WALSTON E FELIX, 1977; JONES, 1978; ALBRECHT, 1979; BEHRENS, 1983; YU, SMITH E HUANG, 1991; KITCHENHAM E MENDES, 2004; AQUINO JÚNIOR E MEIRA, 2009a). Destacando um trabalho mais recente sobre o assunto, temos o realizado por Aquino Júnior (2010), onde, como parte da sua tese de doutorado, ele fez um agrupamento das principais métricas de produtividade ou métricas de outputs identificadas na literatura. Elas foram classificadas em quatro categorias: Físicas: Tomam como base Source Lines of Code (SLOC), suas variações ou derivações como, Delivery Source Instructions (DSI), Delivery Source Lines (DSL), Machine Instructions, Executable Lines Of Code (ELOC), Developed Statements (DS), dentre outras. Exemplos de uso: SLOC/Hora, SLOC/Pessoa-Dia, SLOC/Homem-Mês, DSI/Homem-Mês, DS/Pessoa-Ano, Developed Non-Comment SLOC/ProgramadorHora, ELOC/$. Funcionais: Métricas baseadas no número de características percebidas pelo usuário. As métricas mais comuns desse tipo são Pontos de Função (PF) (ALBRECHT,.

(38) Capítulo 2 – Produtividade. 33. 1979) e Pontos de Caso de Uso (PCU) (KARNER, 1993). Exemplos de uso: Hora/PF, PF/Pessoa-Dia, PCU/Homem-Mês. Valor: Utiliza um ponto de vista mais moderno para avaliar a produtividade, usando métricas com base no valor ou usando modelos multidimensionais que avaliam diferentes aspectos do que é produzido em um projeto de software. Exemplos dessas métricas são Vector Size Measure (VSM) (HASTINGS E SAJEEV, 2001), Data Envelopment Analysis (DEA) (STENSRUD E MYRTVEIT, 2003) e Quality factor, Economic, Social and Technical dimensions (QEST) (BUGLIONE E ABRAN, 1999). Design: Métricas relacionadas ao design do projeto, tais como o número de módulos ou classes. As mais conhecidas são Change Points (CHATMAN, 1995) e System Meter (MOSER E NIERSTRASZ, 1996). Essas métricas têm uma correlação com SLOC, mas a contagem é baseada em elementos diferentes. Inclusive, o autor fez uma análise sobre a evolução do uso dessas métricas, conforme mostra a Figura 2.1, onde observa-se que, ao longo dos anos, as métricas físicas têm perdido espaço, principalmente para as métricas baseadas em valor, que têm se apresentado como uma alternativa às demais.. Física Funcional Valor Design. Figura 2.1 – Distribuição dos estudos de métricas de produtividade ao longo das décadas. [Fonte: Adaptada de AQUINO JÚNIOR (2010)].

(39) Capítulo 2 – Produtividade. 34. 2.3 Comportamento da produtividade ao longo dos anos Em 2005, Premraj et al. (2005) fizeram uma análise da tendência da produtividade em mais de 600 projetos da Finlândia finalizados entre 1978 e 2003 (Figura 2.2). Os projetos5 variavam em tamanho (6 – 5000+ pontos de função), setor de negócio (seguro, banco, administração pública, etc) e tipo (novo desenvolvimento ou manutenção). Embora as tendências de produtividade por ano mostrem alguma flutuação, vê-se uma forte evidência de melhoria durante os anos de 1980 e início de 1990, seguida de taxas de melhoria mais fracas nos anos subseqüentes. 1.25 Upper and Lower Confidence Interval Bounds (95%) 1.2. 0.885 53. 0.862. 0.885 49. 0.870. 0.866 60. 69. 63. 0.913. 0.915. 34. 0.934. 0.911. 30. 0.909. 0.944. 38. 0.9. 0.881. 0.943. 39. 0.975 16. 0.95. 0.943. 0.969 0.918. 1. 22. 1.039. 1.054. 1.05 0.977. Beta Coefficients. 1.1. 1.007. 1.12. 1.15. Beta Coefficients Beta Coefficients (Lowess Smooth). 0.8. 0 ’78. ’82 ’83. 45. 3. 17. 16. 15. 18. 1. 11 11. 1. 1. 11. 0.85. ’85 ’86 ’87 ’88 ’89 ’90 ’91 ’92 ’93 ’94 ’95 ’96 ’97 ’98 ’99 ’00 ’01 ’02 ’03 Years. Figura 2.2 – Tendências da produtividade de projetos de software (1987-2003). [Fonte: Reproduzida de PREMRAJ et al. (2005)]. Jiang, Naudé e Comstock (2007), usando o repositório do ISBSG6 (release 10) avaliaram a produtividade de 4106 projetos no período de 1995 a 2005. Como PDR7 é uma medida inversa de produtividade, observa-se que o ponto mais alto (2005) da Figura 2.3, na. 5. O número total de projetos para um determinado ano é apresentado abaixo da plotagem. Disponível em: <http://www.isbsg.org/>. Acesso em: 03/04/2010. 7 PDR = Normalized Work Effort / Adjusted Function Points. Medida inversa da produtividade, onde um alto valor de PDR, na realidade, significa baixa produtividade. 6.

(40) Capítulo 2 – Produtividade. 35. realidade, representa o ano em que a produtividade teve a sua menor média, ou seja, para entregar 1 ponto de função eram necessários 13.6 homens-hora. Já em 1997, para entregar 1 ponto de função eram necessários 7.4 homens-hora. De modo geral, constatou-se que a produtividade no desenvolvimento de software apresentou variações irregulares entre esses. PDR Média. anos e que não tem melhorado com o passar do tempo.. 123* 102 132 264 419 544 235 335 182 257 231. * Número de observações. Ano. Figura 2.3 – Tendência da PDR, entre os anos de 1995 e 2005. [Fonte: Adaptada de JIANG, NAUDÉ E COMSTOCK (2007)]. No artigo Is the software industry’s productivity declining?, Groth (2004) discutiu com representantes de grandes organizações da área de software sobre os dados apresentados pela Enomomy.com8 sobre a produtividade de software nos Estados Unidos entre os anos de 1998 e 2003 (Figura 2.4). Os resultados mostraram uma queda de 0.9% ao ano. Os representantes que concordaram com os resultados dizem que a complexidade das aplicações tem aumentado drasticamente ao longo dos últimos cinco anos, tornando difícil ser mais produtivo. Já os que discordam, contestam a maneira como a produtividade foi calculada e alegam que hoje, aplicações muito mais sofisticadas estão sendo desenvolvidas em pouco espaço de tempo e com menos pessoas, isso é ser mais produtivo.. 8. Disponível em: <http://www.economy.com>. Acesso em: 03/04/2010..

(41) Capítulo 2 – Produtividade. 36. Figura 2.4 – Taxas de crescimento anual da produtividade para as indústrias, entre os anos de 1998 e 2003. [Fonte: Reproduzida de GROTH (2004)]. 2.4 Considerações Finais Este capítulo apresentou os principais conceitos e fundamentos relacionados ao tema produtividade. Como pôde ser visto, o conceito de produtividade na engenharia de software não é tão simples como parece, porque outputs são diversos e muitas vezes difíceis de definir. Porém, “qualquer coisa que você precise quantificar pode ser medida de alguma forma, que é melhor do que não medí-la.” (Tom Gilb, apud DEMARCO e LISTER, 1999). Apoiando esta declaração, Lord Kelvin (apud ANSELMO E LEDGARD, 2003) defende que “Quando você pode medir o que você está falando, ... Você sabe algo sobre ele; mas quando você não consegue medi-lo, ... O seu conhecimento é do tipo frágil e insatisfatório” e DeMarco (1982) complementa dizendo “você não pode controlar o que não pode medir”. Essas célebres frases demonstram a importância e necessidade das medições. Não se pode esperar melhoria na produtividade de software sem medi-la (ANSELMO E LEDGARD, 2003). Portanto, medir a produtividade é fundamental para buscar sua melhoria..

(42) Capítulo 2 – Produtividade. 37. Quanto à variação da produtividade, comparando os resultados dos três estudos apresentados, observa-se que, de maneira geral, independente da métrica utilizada, a produtividade vem declinando ao longo dos anos, principalmente na última década, o que mostra a necessidade de novas ações que possam ajudar a melhorar esses resultados..

(43) Capítulo. 3 3. FATORES QUE INFLUENCIAM A PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE Este capítulo, através de uma revisão do estado da arte, descreve e analisa os principais trabalhos que estudam ou apontam os fatores que afetam a produtividade no desenvolvimento de software. Esta análise é feita década a década, considerando os trabalhos dos últimos 40 anos. Por fim, é feita uma consolidação desses fatores e um resumo das principais descobertas oriundas desta revisão..

Referências

Documentos relacionados

Escolha do Consumidor ‘18: atribuída pela ConsumerChoice Lda, através de estudos de avaliação dos atributos mais relevantes de Leites Infantis em Pó (excepto leites para lactentes

3 Verificar o papel das NETs no controle da carga parasitária in vitro, em neutrófilos humanos Observamos que os indivíduos DTH + são os que produzem menor quantidade de NETs sem

Informando a este Poder, a celebração do Contrato de Repasse destinado à transferência de recursos do Orçamento Geral da União, que tem por finalidade a Implantação

Temos como objetivo expor metodologias e alguns jogos matemáticos desenvolvidos nas atividades do projeto de extensão do Departamento de Matemática da Universidade

Parágrafo Segundo - A empresa no âmbito da representação do presente Acordo não acatará guia quitada de Contribuição Sindical em valor inferior ao estipulado nesta cláusula, e,

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE PÓS-GRADUAÇÃO EM DIREITO ÁREA DE CONCENTRAÇÃO: DI REITO DO ESTADO.. O DIREITO PAISAGÍSTICO E DOS VALORES ESTÉTICOS: efetividade e

iii) Emprego da simulação de grandes escalas (SGE) para a previsão numérica de um jato plano turbulento;.. iv) Solução do campo acústico a partir dos resultados numéricos

[r]