Os avanços da tecnologia ocorridos nas últimas décadas têm proporcionado aos gestores de negócios um grande volume de ferramentas que os auxiliem na tomada de decisões. Soluções em Tecnologia da Informação têm surgido de forma acelerada fazendo com que o mercado de desenvolvimento de software, ao mesmo tempo em que se torna um dos que mais cresce no país, seja também um dos mais concorridos.
Esse novo cenário de negócios tem obrigado as empresas desenvolvedoras a buscarem constantemente tecnologias e métodos que lhes permitam garantir a qualidade dos produtos oferecidos para que não percam competitividade no mercado em que atuam. Neste contexto, a utilização de métricas que possam definir o desempenho dos projetos, bem como dos produtos resultantes dos mesmos, tem assumido um papel cada vez mais importante no setor e, conseqüentemente, no meio acadêmico que se prepara para enfrentar os desafios propostos por estas organizações. No entanto, conforme poderá ser observado no presente trabalho, a definição de métodos de medição apenas não são suficientes para a garantia da qualidade.
Faz-se necessário também o devido monitoramento e controle de todos os processos e indicadores resultantes dos mesmos.
Palavras-chaves: Projetos, PMI, Infra-estrutura, Escopo, Gestão, RUP, Métricas, Qualidade, Monitoramento e Controle.
1 INTRODUÇÃO
Os últimos 20 anos foram marcados por grandes avanços tecnológicos que proporcionaram ao mundo atual um cenário empresarial muito mais dinâmico e ávido por ferramentas que auxiliem os gestores nas tomadas de decisões. O resultado disto foi o aumento do número de empresas investindo em Tecnologia da Informação e, conseqüentemente, da quantidade de empresas desenvolvedoras de software. Isto porque, segundo Rezende (2002, p. 122): “a formulação de estratégia de qualquer negócio é feita à partir de informações disponíveis e, portanto, nenhuma estratégia consegue ser melhor do que a informação da qual é derivada”.
Diante deste contexto, a indústria de software tem sido uma das que mais tem crescido nos últimos anos. Segundo Mizuno (1993), a demanda pelo software tem apresentado um crescimento de até cerca de 10 vezes por década gerando um ambiente de alta competitividade entre as empresas do setor. Neste contexto, as empresas desenvolvedoras vêm se preocupando cada vez mais com a qualidade dos produtos oferecidos. Tal fato tem feito com que novas técnicas e ferramentas fossem sendo desenvolvidas com a finalidade de melhorar o desempenho das organizações que desenvolvem software (FENTON, 1994).
Dentre as tecnologias que vêem sendo desenvolvidas encontram-se, as de gerenciamento de projetos de desenvolvimento. Isto porque, segundo Boehm (1987), um gerenciamento ineficiente pode gerar custos desnecessários ao empreendimento. Estes, por sua vez serão convertidos em preços mais altos fazendo com que a empresa desenvolvedora perca competitividade no mercado.
No entanto, para avaliar a qualidade de um produto, faz-se necessário a identificação e definição de meios de medi-la para que se quantifique o grau de alcance da qualidade. Diante disto, para computar uma característica de qualidade, é essencial que se estabeleçam métricas capazes de quantificá-la e fazer uma medicação para determinar a medida, resultado da aplicação métrica. (DUARTE, 2000).
2 REFERENCIAL TEÓRICO
2.1 Gerenciamento de Projeto de Software
Conforme apresentado anteriormente, para que se obtenha um software de qualidade, faz-se necessário o gerenciamento eficiente do seu projeto de desenvolvimento. Para isto, é muito importante que se entenda que um projeto é um empreendimento repetitivo, caracterizado por uma seqüência clara e lógica de eventos que, com o objetivo de criar um novo produto ou serviço, deve ser conduzido através de parâmetros pré-definidos de tempo, custos, recursos e qualidade. (PMI, 2004, VARGAS, 2005).
Na área de desenvolvimento de software, um projeto é uma atividade que envolve trabalho intenso para que os critérios de qualidade estabelecidos atendam aos requisitos dos clientes ou usuários. Diante disto, Pressman (1995) afirma que para que um projeto de desenvolvimento de software seja bem sucedido, é necessário que alguns parâmetros sejam previamente analisados como, por exemplo, o seu escopo, os riscos aos quais o projeto está envolvido, os recursos que serão necessários para que os objetivos estabelecidos sejam atendidos, as tarefas que deverão ser executadas e os indicadores a serem acompanhados, ou seja, métricas devem ser estabelecidas e monitoradas.
Neste acompanhamento consiste o gerenciamento do projeto que, segundo Ince (1993), é parte integrante do desenvolvimento de um projeto de software. Evidencia-se, portanto, que a utilização de metodologias de gerenciamento de projetos tem se tornado um fator fundamental para o sucesso de empreendimentos na área de tecnologia. Segundo Ghisolf (2004):
Hoje, em torno de 70% do mercado de gerência de projetos é representado por empresas do setor. Isso devido ao grau de dificuldade dos projetos de tecnologia. Existem problemas muito sérios em relação à definição dos projetos, requisitos e gerenciamento. Os projetos de tecnologia geralmente possuem problemas em relação à locação dos recursos; normalmente, as pessoas trabalham em mais de um projeto ao mesmo tempo, o que traz um impacto bastante significativo. Esse mercado acaba ficando carente, pois precisa melhorar sua capacidade de administração. (GHISOLF, 2004)
Entretanto, antes que as métricas sejam definidas e os processos de gerenciamento sejam estabelecidos, é muito importante selecionar o modelo de processo de desenvolvimento do software que definirá as atividades que serão desenvolvidas durante todo o ciclo de vida do projeto. O ideal numa organização é desenvolver o menor número possível de modelos de processo de software de tal forma que os membros do projeto se tornem mais eficientes e produtivos usando um modelo que eles já compreendem e tem experiência.
2.2 Métricas de Desenvolvimento de Software
Definidos os processos que serão utilizados no desenvolvimento de um software, pode-se, então, definir as métricas que deverão ser adotadas para o acompanhamento do projeto e para verificar se os critérios de qualidade estabelecidos estão sendo alcançados, bem como os custos e os prazos estipulados.
Segundo Mello Filho (2002, p. 4):
Atributo mensurável de uma entidade. Define-se métrica primitiva como sendo aquele atributo mensurável que pode, por leitura direta, ser obtido da própria entidade. Define-se métrica derivada como aquele atributo mensurável que é obtido por cálculo a partir de métricas primitivas. (MELLO FILHO, 2002, p. 4)
Pode-se dizer, portanto, que as métricas servem para administração e controle do processo de desenvolvimento para determinar os resultados obtidos. Pressmam (1987) cita algumas razões pelas quais é importante medir o software:
• Indicar a qualidade do produto.
• Avaliar a produtividade das pessoas que produzem o produto.
• Avaliar os benefícios (em termos de qualidade e produtividade) derivados de novos métodos e ferramentas de software.
• Formar uma linha básica para estimativas.
• Ajudar a justificar os requerimentos de novas ferramentas ou treinamento adicional
Segundo Mello Filho (2002, p. 6):
A visão do RUP sobre métricas parte de uma questão fundamental: Porque medimos? A primeira e mais importante resposta é que medimos para ganhar controle sobre o projeto e, portanto, para sermos capazes de gerenciá-lo. Secundariamente medimos para melhor estimar novos projetos. Finalmente, medimos para saber como estamos evoluindo em determinadas áreas de nosso projeto ou Organização. (MELLO FILHO, 2002, p. 6)
Os benefícios contemplados pela implementação de métricas no desenvolvimento de software são a possibilidade de indicar a qualidade do produto, avaliar a produtividade das pessoas que trabalham na produção e formar uma linha básica de estimativas e também ajudar a justificar os pedidos de novas ferramentas e treinamentos para a equipe alocada no projeto. (PRESSMAN, 1995).
Como exemplo de métrica que pode ser utilizada no desenvolvimento de software pode ser citado o número de solicitações de mudanças, que indicará como está o andamento do gerenciamento do escopo do projeto e determinará a estabilidade dos requisitos de um projeto.
Segundo RUP (2000) podemos categorizar os objetivos da medição da seguinte forma:
• Objetivos da organização: Os objetivos de uma organização precisam, geralmente, estarem relacionados aos seus custos por produto, tempo de desenvolvimento e qualidade dos seus produtos. Como exemplos de métricas relevantes à organização, podemos citar: custo por ponto de função, custo por caso de uso, custo por linha de código, esforço por linha de código ou por ponto de função, defeitos por linha de código.
• Objetivos dos Projetos: Projetos devem ser entregues com os requisitos funcionais e não-funcionais dos seus clientes atendidos, no prazo e orçamento definidos e atendendo às restrições do cliente. Para tal, é necessário o uso de métricas para responder a perguntas como: O projeto está atendendo aos milestones definidos? Como estão os esforços e custos atuais do projeto comparados ao planejado? Os requisitos funcionais estão completos? O sistema está atendendo o desempenho desejado? Além de definir as métricas para auxiliar nessas questões, é preciso definir interpretações e ações a serem tomadas com base nos resultados das métricas, mas isso só poderá ser possível a partir de avaliações dos dados históricos de projetos passados.
• Objetivos Técnicos: Definem métricas para as necessidades técnicas são de características estruturais e comportamentais. Alguns exemplos dessas métricas são: freqüência de mudança de requisitos (volatilidade), requisitos corretos e completos (validade, completude), projeto realizando todos os requisitos (completude), estabilidade da arquitetura, extensão dos testes para cobrir todo o sistema, incidência de defeitos por atividade e fases. Mello Filho (2002) afirma ainda que muitas métricas podem ser desenvolvidas e utilizadas, mas em se tratando de desenvolvimento de software, existem sete métricas básicas para qualquer projeto deste tipo. Mello Filho (2002, p. 8) afirma que: Estes indicadores têm a virtude de serem simples, fáceis de coletar e de interpretar e são divididos em dois grupos, indicadores de gerenciamento e de qualidade.
Indicadores de Gerenciamento
• Trabalho e Progresso.
• Orçamento e Despesas.
• Alocação e Rotatividade na Equipe.
Indicadores de Qualidade
• Fluxo de Mudanças e Estabilidade.
• Fragmentação e Modularidade.
• Retrabalho e Adaptabilidade.
• Tempo médio entre falhas e Maturidade.
Vale lembrar, no entanto, que para se definir as métricas de qualidade, a empresa deve, inicialmente, identificar quais são os atributos do produto mais valorizados pelos clientes e como tornar os atributos do produto da empresa mais atrativos, em relação aos dos concorrentes. Isto porque nem sempre os critérios estabelecidos pela organização são os mesmos identificados como importantes pelo cliente.
2.3 Monitoramento e Controle
Tão importante quanto a definição de métricas é o monitoramento e controle das mesmas. Afinal, de nada adianta definir indicadores de desempenho para um projeto se estes não forem acompanhados para que seja feita uma análise do projeto e do produto desenvolvido. Esta fase do projeto tem como foco principal assegurar que as atividades, os prazos, os custos e os demais parâmetros estabelecidos durante o planejamento do projeto sejam cumpridos e forneçam subsídios ao Gerente de Projeto para que o mesmo possa tomar suas decisões. Vargas (2005, p. 34) afirma que:
É a fase que acontece paralelamente ao planejamento operacional e à execução do projeto. Tem como objetivo acompanhar e controlar aquilo que está sendo realizado pelo projeto, de modo a propor ações corretivas e preventivas no menor espaço de tempo possível após a detecção da anormalidade.
Almeida (2006, p. 32) ainda afirma que essa fase é caracterizada por:
• Controle da qualidade
• Controle de alterações do escopo e qualidades
• Atualizações e revisões dos cronogramas físicos e financeiros
• Retroalimentação do planejamento
Pode-se dizer, portanto, que na fase de monitoramento é onde serão acompanhadas as métricas estabelecidas na fase de planejamento e, portanto, sendo a etapa do projeto essencial para a garantia da qualidade do mesmo.
3 CONSIDERAÇÕES FINAIS
Conforme pôde ser observado durante a realização e estudo do presente trabalho, pôde-se verificar que o mercado de software, devido à grande demanda por soluções, tem se tornado cada vez mais competitivo e as empresas do setor têm sido obrigadas a buscar métodos e estratégias que possibilitem o desenvolvimento de softwares com altos padrões de qualidade e os valores oferecidos pelos seus clientes. Diante disto, as empresas que se destacam são aquelas que têm capacidade de inovar e de se aprimorarem constantemente, criando assim, uma vantagem competitiva frente aos seus concorrentes.
Em face deste novo cenário, as organizações têm voltado suas atenções para o desenvolvimento de produtos fazendo uso de metodologias de gerenciamento de projetos. Dentre as metodologias existentes para o setor, uma das que tem se destacado é a do uso de métricas de qualidade que permitam, por meio da definição de indicadores de desempenho, mensurar os custos, os prazos e as atividades a serem desenvolvidas e, após iniciado o empreendimento, monitorar a execução do projeto para identificação do desempenho, tanto dos profissionais alocados no projeto, quanto do produto final e do projeto também. Conclui-se, portanto, que a utilização de métricas no controle de projetos de desenvolvimento de software se tornou um fator fundamental para o sucesso dos mesmos.
4 REFERÊNCIAS BIBLIOGRÁFICAS
ALMEIDA, J. Técnicas de Planejamento e Controle. Rio Grande: FURG – CTI, 2006
BOEHM, B., Improving Software Productivity, Computer, EUA, set. 1987.
Duarte, K.C., Falbo, R.A. (2000) Uma Ontologia de Qualidade de Software. Anais do Workshop de Qualidade de Software. Simpósio Brasileiro de Engenharia de Software, João Pessoa.
FENTON, N., Pfleeger, S. and Glass, R., Science and Substance: A Challenge to Software Engineering, IEEE Software, vol.11, n.4, 1994.
GHISOLF, A. Projeto com início, meio e fim. Disponível em: <www.baguete.com.br> 19/07/2004. Acesso em 02 de dezembro de 2008.
INCE, D., Introduction to Software Project management and Quality Assurance, London: Mc Graw-Hill, 1993.
MELO FILHO, M. C. de. Aplicando as Sete Métricas de Controle de Projetos. Disponível em: < http://www.pro2associados.com.br/pro-pdf/Aplicando_as7Metricas.pdf> Acesso em 12 de janeiro de 2009.
MIZUNO, Y., Software Quality Improvement, Computer, vol.16, n.3, EUA, mar, 1993.
PMI – PROJECT MANAGEMENT INSTITUTE – PMI-PMBOK. A guide to the Project management body of knowledge. Newtown Square: PMI, 2004
PRESSMAN, R. Engenharia de Software. São Paulo: Makron Books, 1995.
Rational Unified Process 2000, propriedade e direitos reservados da Rational Software Corporation.
VARGAS, Ricardo Viana. Gerenciamento de projetos: estabelecendo diferenciais competitivos. Brasport, Rio de Janeiro, 2005.
WHITTEN, N.; Managing Software Development Project. New York: Wiley & Sons, Inc, 1995.
Autor
Daniel Trindade Ituassú
Pós-Graduado em Gestão de Projetos pelo Ietec