• Nenhum resultado encontrado

Definição de Processo de Acompanhamento de Projetos

4. Aplicação de Técnica de Estimativas na PITANG

4.4 Definição de Processo de Acompanhamento de Projetos

O acompanhamento dos projetos em execução na instituição estudo de caso é feito pela coleta de métricas destes projetos, sendo as métricas coletadas usadas para retroalimentar o processo de estimativas durante a pré-venda. As métricas coletadas são:

• Tamanho: tamanho do software em pontos de função, calculadas segundo o IFPUG, e com o apoio de planilha de Pontos de Função [SGQP-07];

• Esforço em horas: esforço dispendido no projeto em horas, obtido através de ferramenta de reportagem de tempo (Timesheet PITANG) usada por todas as equipes de projetos;

• Custo: custo do projeto obtido através de relatórios financeiros do sistema financeiro da empresa estudo de caso. Este custo envolve todos os custos ocorridos no projeto, como custo de pessoal, viagens, parceiros, compra de equipamentos, indiretos, entre outros.

Estas métricas são coletadas pelas equipes de projetos, com o apoio da área de qualidade, através do Engenheiro de Qualidade responsável pela garantia de qualidade de cada projeto. As métricas são registradas em um repositório comum de métricas, que é utilizado pelas equipes de projetos e de pré-vendas como fonte de lições aprendidas e para refinar seus processos de estimativas.

Centro de Informática – UFPE Página 120

4.5 Conclusão

Pode-se verificar que a simples escolha de uma técnica de estimativas, é apenas a ponta do iceberg de estimativas, pois a partir desta escolha vêm todas as demais etapas da implantação da técnica, com a definição de templates, ferramentas e processos que apóiem o uso da técnica escolhida, além da capacitação de estimadores na técnica e nas ferramentas e processos adotados. Neste capítulo detalhamos o processo definido para a empresa estudo de caso com seus respectivos templates e ferramentas. Este processo é utilizado em pré-vendas e no acompanhamento dos projetos em execução, para a realização de estimativas. Vimos também como derivar as estimativas de tamanho realizadas em esforço e custos.

Outro ponto importante a ser depreendido é a adoção de processos e ferramentas construídas internamente, adequadas à cultura da organização.

No próximo capítulo concluiremos esta dissertação, apontando suas contribuições e as necessidades de trabalhos futuros.

Centro de Informática – UFPE Página 121

Capítulo 5

5. Conclusão

"Não é preciso ter olhos abertos para ver o sol, nem é preciso ter ouvidos afiados para ouvir o trovão. Para ser vitorioso você precisa ver o que não está visível." - Sun Tzu – 496 A.C. Este trabalho foi motivado pela dificuldade atual de se praticar a estimativa de esforço de desenvolvimento de software. Embora o assunto de estimativas seja discutido há décadas, e a Engenharia de Software disponha de diversas técnicas de estimativa em utilização pelo mercado, não existe uma técnica que seja universal, adequada a qualquer realidade e contexto de utilização. Cada empresa deve definir a técnica que irá utilizar entre as diversas oferecidas, incluindo os métodos ad hoc. Como vimos anteriormente, a estimativa de tamanho de projeto de software ainda está em evolução nas empresas brasileiras. Pesquisa de qualidade e produtividade no setor de software brasileiro, realizada anualmente pela Secretaria de Política de Informática do Ministério da Ciência e Tecnologia (MCT) vem demonstrando a gradual adoção de técnicas de estimativa (ver Tabela 3.2 [MCT-06]). A última pesquisa divulgada (6ª edição) demonstrou que em uma amostra de 701 organizações do mercado de software brasileiro, apenas 35% utilizavam algum tipo de métrica para medir a produtividade e a qualidade dos processos de software. Dentre essas, 16% utilizavam a FPA e 19% utilizavam a

UCP [MCT-06]. Isto reforça a constatação que ainda não existe uma prática consolidada. Sendo

assim, para adotar uma prática de estimativas foi necessário estudar as técnicas disponíveis, e verificar a adequação das mesmas às necessidades específicas de uma organização de software.

Vimos neste trabalho, como se deu o processo de seleção e implantação da abordagem de pontos de função (técnicas IFPUG e Nesma Estimada), escolhida pela organização estudo de caso. Adicionalmente também é usada a técnica UCP em situações em que seja necessário validar a estimativa realizada com pontos de função (ver Seção 3.2.4). Mostramos também como foi a definição e implantação de um processo de suporte à estimativa em momento de pré-venda e durante a execução do projeto.

O trabalho apresentado nesta dissertação também suporta o projeto de melhoria organizacional da empresa estudo de caso, que iniciou a implementação deste projeto estratégico desde a sua fundação, abrangendo todos os seus processos organizacionais.

Centro de Informática – UFPE Página 122 Outro aspecto, que foi um grande de motivador para esse trabalho, foi a experiência prática do autor durante oito anos, como responsável pelas atividades de pré-vendas de uma organização de desenvolvimento de software. No início desse período, atividades de estimativas foram realizadas de forma ad-hoc, sem a existência de um processo definido. Desta forma, nem sempre os resultados finais das atividades eram satisfatórios, implicando em estimativas que não correspondiam à realidade dos projetos executados. Esses problemas, além de motivadores para a realização deste trabalho, serviram como orientadores da definição do processo proposto. Questões a respeito de como resolver os problemas passados foram incorporadas no processo final.

Por fim, a aplicação prática deste processo demonstrou que o uso contínuo do mesmo, sendo refinado com as métricas coletadas pelos projetos em execução leva a um aumento da precisão do mesmo, conforme demonstrado pela Figura 5.1, que mostra a evolução do Índice de Acerto de Esforço para Java-Struts, no período que se inicia em setembro de 2005 até agosto de 2007 (ver mais detalhes na Seção 4.1).

Evolução do Índice de Acerto de Esforço para Java-Struts

0,5 0,55 0,6 0,65 0,7 0,75 0,8 0,85 0,9 0,95 1

nov/05 mar/06 jul/06 nov/06 mar/07 jul/07

IE

Figura 5.1 – Evolução do Índice de Acerto de Esforço para Java-Struts [SGQP-07]

As conclusões deste trabalho estão descritas neste capítulo, que está organizado da seguinte forma:

• Seção 5.1 - Principais Contribuições: relaciona as principais contribuições resultantes deste trabalho;

• Seção 5.2 - Trabalhos Relacionados: descreve trabalhos relacionados a este;

• Seção 5.3 - Trabalhos Futuros: descreve trabalhos que podem ser realizados tendo como base o presente trabalho;

Centro de Informática – UFPE Página 123

5.1 Principais Contribuições

Esta seção apresenta as principais contribuições do trabalho desenvolvido nesta dissertação, são elas:

• Definição de um modelo de seleção de técnicas, utilizada para selecionar a técnica de estimativa adotada pela empresa estudo de caso;

• Apresentação detalhada de um processo de estimativa de esforço de desenvolvimento de software, listando as ferramentas e templates utilizados, discorrendo sobre o aprendizado obtido a partir dos problemas enfrentados em projetos de desenvolvimento de software comerciais;

• Proposta de um modelo de pré-vendas objetivo, que visa contribuir com empresas que possuem a preocupação de disciplinar e melhorar a qualidade de seus processos de software, conforme recomendado por modelos de qualidade tradicionais.

Centro de Informática – UFPE Página 124

5.2 Trabalhos Relacionados

Esta seção apresenta alguns trabalhos relacionados com a área de estimativa de esforço de desenvolvimento de software que tem paralelos com o trabalho apresentado neste documento.

Edméia Andrade [Andrade-04] em sua dissertação de mestrado do programa de pós- graduação em Gestão do Conhecimento e Tecnologia da Informação da Universidade Católica de Brasília avalia o uso das técnicas de pontos de função e pontos de casos de uso, estudando a relação entre as mesmas. Este trabalho propôs uma melhor forma de estimar, revisar e recalcular o tamanho do projeto à medida que novos artefatos são disponibilizados durante o processo de desenvolvimento do projeto de software orientado a objetos. Foi definida uma equação que descreve a relação entre FP e UCP e que pode ser usada para projetar FP a partir de UCP e foi proposto um procedimento de contagem de FP e UCP para projetos de software OO, sendo estes procedimentos aplicados em 19 projetos desenvolvidos pela academia e indústria. Este trabalho relaciona-se a esta dissertação na medida em que estuda a relação entre as técnicas de pontos de função e pontos de casos de uso, avaliando pontos positivos e negativos das mesmas.

Tatiana Monteiro [Monteiro-05] em sua dissertação apresentada ao curso de mestrado em Informática Aplicada da Universidade de Fortaleza propõe uma extensão da técnica de Pontos de Casos de Uso, batizada de Technical Use Case Points (TUCP). A técnica proposta foi aplicada em cinco projetos de uma organização privada, apresentando um cálculo mais acurado para o esforço de projetos. Este trabalho relaciona-se a esta dissertação na medida em que analisa as deficiências da técnica original de pontos de casos de uso, pontos estes que também foram alvo de análise desta dissertação.

Kirsten Ribu [Ribu-01] em sua dissertação apresentada ao curso de mestrado do Departamento de Informática da Universidade de Oslo fez o estudo de implantação de uma técnica de estimativas (UCP) em organizações privadas e públicas, tendo acompanhado o uso da técnica em 12 projetos. Concluiu que a técnica é útil para projetos diversos, com uma acurácia adequada. Este trabalho relaciona-se a esta dissertação na medida em que acompanha a implantação de uma técnica de estimativas, e a conversão da estimativa de tamanho obtida, em esforço.

Mehwish Nasir e H. Farooq Ahmad [Nasir-06] discutem em artigo as práticas de estimativa de software existentes na indústria e literatura, analisando suas forças e fraquezas. O foco

Centro de Informática – UFPE Página 125 principal é a análise de lacunas da organização com respeito ao CMMI nível 3 para Engenharia de Sistemas (SE)/Engenharia de Software (SW)/Desenvolvimento Integrado de Produto e Processo (IPPD)/ Gerenciamento de Fornecedores (SS). A coleta de dados dos mesmos revela que a companhia faz uso de abordagens heurísticas nas quais julgamentos de especialistas suplementados com wideband Delphi, são os principais métodos usados para estimativa de software. À luz do CMMI Nível 3 para SE/SW, sugerem que métodos formais para estimar tamanho, esforço e custos para um projeto deveriam ser implementados separadamente das heurísticas usadas para estimativa. Concluem que metodologias diferentes de estimativa são aplicáveis em diferentes categorias de projetos. Nenhuma delas é 100% acurada, mas o uso próprio delas faz o processo de estimativa ser mais suave. O estudo conduzido e as conclusões a que os autores chegam são bastante similares às obtidas nesta dissertação.

M. A. Parthasarathy [Parthasarathy-07] usa a imensa experiência de campo da Infosys14, um dos maiores e mais respeitados provedores de soluções de TI do mundo, para gerar um guia detalhado para a estimativa de projetos de software. Ele demonstra como usar com sucesso a técnica de pontos de função (FP) em estudos de caso reais. No seu trabalho, ele sistematicamente identifica armadilhas que podem levar a estimativas não acuradas, e apresenta soluções usadas na Infosys para superar tais armadilhas. Este trabalho tem grande correlação com esta dissertação, pois cobre basicamente os mesmos aspectos: de estudo e seleção de uma técnica de estimativas, de definição e implantação de um processo de estimativas em uma empresa de desenvolvimento de software, de acompanhamento do resultado do uso deste processo nos projetos da empresa.

14

Centro de Informática – UFPE Página 126

5.3 Trabalhos Futuros

Esta seção apresenta alguns trabalhos futuros que podem complementar o processo de estimativa de software proposto nesta dissertação, de modo a possibilitar uma estimativa mais precisa em tempo de pré-venda e acompanhamento mais efetivo de projetos de software.

A relação abaixo detalha os trabalhos de extensão previstos:

• Calibrar os direcionadores de custo do COCOMO II conforme a base histórica da empresa estudo de caso, passando a utilizar os direcionadores de custo do COCOMO II em substituição aos fatores de ajuste do IFPUG.

• Estender a base de dados históricos da organização e o processo associado à sua alimentação. A organização deve manter uma base de dados que retêm e organiza historicamente as informações relativas a todos os projetos completados, que permita a recuperação de informações usando diferentes critérios de pesquisa. Este banco de dados histórico deve ser tratado como parte integral do processo de estimativa, e a equipe responsável pelas estimativas deve ter participação ativa na especificação e na sustentabilidade das informações armazenadas. As informações sobre custos e esforços devem indicar claramente quais partes do ciclo de vida e quais atividades foram cobertas pelas diferentes categorias de esforços e custos registrados. Uma vez criado o banco de dados histórico, a informação de cada projeto completado é inserida na base. Estimativas originais para tamanho, custo e prazos são retidas, e relatórios "postmortems" são realizados ao final de cada projeto, de forma a:

o Garantir que a informação registrada é válida;

o Garantir que os eventos que afetaram os custos/prazos sejam descritos e devidamente registrados enquanto ainda estão "claros" na mente das pessoas envolvidas no projeto.

• A métrica de pontos de função não considera em sua forma “pura” o reuso de software. Pretendemos estender o processo proposto neste trabalho, para considerar o reuso nas estimativas;

• O acompanhamento do desenvolvimento de software em execução pelas equipes de projetos ressente-se de uma métrica mais acurada que permita a aferição do trabalho realmente realizado. Existe uma dificuldade natural de dividir o trabalho realizado conforme se avança no desenvolvimento do software, pelo fato das transações de

Centro de Informática – UFPE Página 127 dados serem contabilizadas à parte na técnica de pontos de função. Como contabilizar o desenvolvimento destas funções? Quando elas são contabilizadas? Pretendemos responder a estas questões com o aprofundamento do uso da técnica de pontos de função para o acompanhamento de projetos na organização;

• Aprofundar estudos para definir como a contagem de pontos de função interpreta entidades criadas por herança e agregação, e como estas devem ser contabilizadas.

5.4 Considerações Finais

As práticas de estimativa de software aplicadas na empresa estudo de caso vêm demonstrando uma boa acurácia (ver Figura 5.1), permitindo uma menor exposição ao risco por parte da organização e dos clientes. Com base nas experiências obtidas a partir dos projetos acompanhados, utilizados como estudo de caso deste trabalho, podemos concluir que a utilização de práticas de estimativa é de grande relevância para a obtenção de sucesso em projetos de software.

Porém, a adoção de práticas de estimativas de software não é suficiente, sendo necessário o apoio das gerências sênior e de garantia da qualidade, as quais devem estar comprometidas com a viabilização dos recursos necessários para a realização das atividades e revisões dos artefatos produzidos no decorrer do projeto. Além disso, a alta gerência deve respaldar a obrigatoriedade da produção dos artefatos descritos nas metodologias adotadas, bem como a conformidade destes com os padrões adotados.

O processo detalhado nesta dissertação apresenta algumas restrições, devido ao fato de se basear em uma técnica que demanda a existência de funções de dados no software a ser desenvolvido. Algumas linhas de software não possuem funções de dados, ou tem formas muito particulares de tratá-las, tais como aplicações embarcadas em celular, TV digital, etc. Isto não chega a ser um problema para a instituição estudo de caso, pois praticamente todos os seus projetos de desenvolvimento são de aplicações baseadas na Web. No entanto a possibilidade de crescimento futuro da demanda por aplicações embarcadas como as citadas deverá fazer com que venha a ser necessário o uso de outras técnicas de estimativas, tais como UCP.

Consideramos por fim, que o processo detalhado neste trabalho vem ganhando maturidade de forma rápida na organização estudo de caso. A evolução natural do mesmo, com base nos trabalhos futuros sugeridos como próximos passos o consolidará ainda mais, contribuindo para empresas que possuam a preocupação de disciplinar e melhorar a qualidade de seus processos de software, conforme recomendado por modelos de qualidade tradicionais.

Centro de Informática – UFPE Página 128

Referências

Anda-01 Anda B., Dreiem D., Sjoberg D. and Jorgesen M., “Estimating Software Development Effort

Based on Use Cases – Experiences from Industry”, UML 2001 The Unified Modeling Language 4th International Conference, Toronto, Canadá, Outubro 2001

Andrade-04 Andrade E., “Pontos de Casos de Uso e Pontos de Função na Gestão de Estimativa de Tamanho de Projetos de Software Orientados a Objetos”, Dissertação de Mestrado em Gestão do Conhecimento e Tecnologia da Informação da Universidade Católica de Brasília, 2004

Armstrong-01 Armstrong J.S., “Principles of Forecasting: A Handbook for Researchers and Practitioners", The Wharton School, Univ. of Pennsylvania, 2001

Arnold-98 Arnold P. and Pedross P., “Software Size Measurement and Productivity Rating in a Large Scale Software Development Department”, Forging New Links, IEEE Computer Society, 1998 Beck-01 Beck K. e Fowler M.; “Planning Extreme Programming”; Addison-Wesley; 2001

Beck-04 Beck K., “Extreme Programming Explained: Embrace Change 2ª Edição”, Addison-Wesley, 2004

BFPUG-07 Brazilian Function Point Users Group (BFPUG) Web Site; http://www.bfpug.com.br/, Último acesso em 20/04/2007

Boehm-00 Boehm B., Abts C., Brown A.W., Chulani S., Clark B.K., Horowitz E., Madachy R., Reifer D. e Steece B.; “Software Cost Estimation With COCOMO II”; Prentice Hall; 2000

Boehm-81 Boehm B., “Software Engineering Economics”, Prentice Hall, 1981

Braungarten-05 Braungarten R., Kunz M., Dumke R.; “An Approach to Classify Software Measurement Storage Facilities”; Otto-von-Guericke University Magdeburg, Institute for Distributed Systems, Faculty of Computer Science, Magdeburg – Alemanha; 2005

Clark-99 Clark B.K.; “Effects of Process Maturity on Development Effort”; Center for Software Engineering - University of Southern California; 1999

Cockburn-00 Cockburn A.; “Writing Effective Use Cases”; Addison-Wesley; 2000

COCOMO-07 COCOMO Web site; http://sunset.usc.edu/research/COCOMOII/index.html, Último acesso em 20/04/2007

Coggins-93 Coggins G.A. e Russell R.C.; “Software Cost Estimating Models: A Comparative Study of What the Models Estimate (AFIT Thesis GCA/LAS/93S-4)”; Dayton, OH, Air Force Institute of Technology; 1993

DeMarco-82 DeMarco T., “Controlling Software Projects”, Yourdon Press, 1982

DOD-99 Department of Defense; “Parametric Estimating Handbook Second Edition”; Primavera 1999 Ferens-86 Ferens D.V.; "A Common Sense Approach to Software Cost Estimation"; ISPA Journal of

Parametrics, Volume VI, Number 2; June 1986

FISMA-07 Finnish Software Measurement Association (FISMA) Web Site; http://www.FISMA.fi/in- english/, Último acesso em 20/04/2007

Fowler-00 Fowler M.; “Planning Agile Projects”; ThoughtWorks; 2000

Garmus-01 Garmus D., Herron D.; “Function Point Analysis – Measurement Practices for Successful Software Projects”; Addison-Wesley; 2001

Gartner-02 Gartner Research; “Function Points Can Help Measure Application Size”; Research Note SPA-18-0878; 19-Novembro-2002

Hallows-01 Hallows J.E.; “The Project Management Office Toolkit”; Project Management Institute; 2001 Highsmith-02 Highsmith J.; "Project Estimating"; Cutter Consortium Agile Project Management E-Mail

Advisor; 2-Maio-2002

Hill-06 Hill P.; “Software Early Lifecycle – Functional Sizing”; The DoD Software Tech News, Vol. 9, Number 2; Junho 2006

IFPUG-02 International Function Point Users Group; “IT Measurement – Practical Advice from the Experts”; Addison-Wesley; 2002

Centro de Informática – UFPE Página 129 IFPUG-07 The International Function Point User’s Group (IFPUG) Web Site; http://www.IFPUG.org/,

Último acesso em 20/04/2007

ISBSG-07 The International Software Benchmarking Standards (ISBSG) Web Site; http://www.isbsg.org; Último acesso em 20/04/2007

ISO-07 International Organization for Standardization; http://www.iso.org/iso/en/iso9000- 14000/index.html; Último acesso em 20/04/2007

ISO/IEC 15939-07 ISO/IEC 15939, Software Engineering - Software Measurement Process; http://www.psmsc.com/ISO.asp; Último acesso em 20/04/2007

Jacobson-99 Jacobson I., Booch G. e Rumbaugh J.; “The Unified Software Development Process”; Addison-Wesley; 1999

Johnson-98 Johnson K.; “Software Cost Estimation: Metrics and Models”; Department of Computer Science, University of Calgary; Fevereiro 1998

Jones-07 Jones C.; “Software Estimating Rules of Thumb - Version 3”; Software Productivity Research, Inc.; 20-Março-2007

Jørgensen-02 Jørgensen M., Indahl U., Sjøberg D.; “Software Effort Estimation by Analogy and “Regression Toward the Mean””; Simula Research Laboratory, Oslo, Noruega; 2002

Jørgensen-021 Jørgensen M.; “A Review of Studies on Expert Estimation of Software Development Effort”; Simula Research Laboratory, Oslo, Noruega; 2002

Kan-03 Kan S.H.; “Metrics and Models in Software Quality Engineering 2nd Edition”; Addison-Wesley; 2003

Karner-93 Karner G.; “Resource Estimation for Objectory Projects”; Objective Systems; 17-Setembro- 1993

Kemerer-92 Kemerer C. e Porter B.; “Improving the Reliability of Function Point Measurement: An Empirical Study”; IEEE Transactions on Software Engineering, Vol. 18, No. 11, Página 1011; Novembro 1992

Kival-99 Kival C.W., Rocha A.R.C.; “Qualidade e Produtividade em Software. 3ª Edição”; Makron Books; 1999.

Laurie-00 Laurie R. e Radford P.; “Using Functional Sizing In Software Project Estimating”; Charismatek; Junho 2000

Lederer-92 Lederer A.L. e Prasad J.; “Nine Management Guidelines for Better Cost Estimating”; Communications of the ACM, Pág. 51-59; Fevereiro 1992

Lewis-01 Lewis J.P.; “Large Limits to Software Estimation”; ACM Software Engineering Notes; Vol 26, No. 4 p. 54-59; Julho 2001

Libby-78 Libby R. e Blashfield R.K.; “Performance of a Composite as a Function of the Number of Judges”; Organizational Behaviour and Human Performance 21(2): 121-129; 1978

Longstreet-04 Longstreet D.; “Function Points Analysis Training Course”; Longstreet Consulting Inc.; 2004 López-05 López P.A.P.; “COCOMO II Um modelo para estimativa de custos de Projetos de Software”;