CENTRO UNIVERSITÁRIO FEEVALE MAURICE MINOSSI POZZO - PDF
CENTRO UNIVERSITÁRIO FEEVALE MAURICE MINOSSI POZZO
Download "CENTRO UNIVERSITÁRIO FEEVALE MAURICE MINOSSI POZZO"
Simone Imperial Maranhão
1 CENTRO UNIVERSITÁRIO FEEVALE MAURICE MINOSSI POZZO PROPOSTA DE UM FRAMEWORK PARA UTILIZAÇÃO DE APF Novo Hamburgo, novembro de 2008.
2 MAURICE MINOSSI POZZO PROPOSTA DE UM FRAMEWORK PARA UTILIZAÇÃO DE APF Centro Universitário Feevale Instituto de Ciências Exatas e Tecnológicas Curso de Sistemas de Informação Trabalho de Conclusão de Curso Professor Orientador: Sandra Teresinha Miorelli Novo Hamburgo, novembro de 2008.
3 AGRADECIMENTOS Gostaria de agradecer a todos os que, de alguma maneira, contribuíram para a realização desse trabalho de conclusão, em especial: A minha esposa, companheira de uma vida e que soube administrar bem esse ano muito difícil e de muitas ausências. Te amo muito! À Deus, meu companheiro inseparável e aos meus pais, que me oportunizaram educação e sempre incentivaram meu estudo. À minha orientadora e meus avaliadores, o meu agradecimento pelo tempo e paciência destinados.
4 RESUMO Este trabalho de pesquisa expõe a dificuldade da empresa Calçados Bottero em relação a contratação de serviços terceirizados para desenvolvimento de software, no que diz respeito a estimativas de tempo e custos. No momento a empresa utiliza um sistema de ERP contratado no mercado, porém, com várias customizações mensais. Essas customizações são geradas pelas áreas internas da Bottero através de suas necessidades conforme a gestão de negócios. A dificuldade da empresa na contratação do prestador de serviços subcontratado não está em quantidade ou qualidade, mas sim em estimar prazos e custos, conseguindo atender as demandas internas com prazos definidos e aceitáveis, além de custos justos. Não são aplicadas no momento, métricas com possibilidades de sanar essas dificuldades e o único parâmetro na contratação de um projeto de desenvolvimento de software é a disponibilidade de verba no orçamento. Os prazos são aceitos conforme sugeridos pela software-house e a única forma de negociação é a pressa na conclusão do serviço. A utilização de métricas para estimativas de custos e esforço é uma necessidade no atual momento da empresa, que tem toda a sua estrutura de TI subcontratada (exceto gerência e suporte). O foco deste trabalho de pesquisa é estudar a técnica de APF, e desenvolver uma metodologia para seu uso, de forma a colaborar com a forma de negociação da empresa com suas empresas subcontratadas. Foram realizadas pesquisas em empresas que aplicam esta técnica, fez-se contato com autores de livros e artigos que dizem respeito ao uso desta técnica. Palavras-chave: Bottero. Software-house. Subcontratação. Projetos. APF.
5 ABSTRACT This research exposes the difficulty of the enterprise Calçados Bottero in contracting third-party work for the development of pieces of software, concerning the estimate of time and costs. Currently the enterprise uses an ERP system that has been contracted from the domestic market, however, with several monthly customizations. These customizations are generated by the internal areas of Bottero through their necessities according to their business management. The difficulty of the enterprise in contracting the third-party work is not related to quantity or quality, but to the estimate of time limits and costs, fulfilling internal requests regarding defined and acceptable time limits, besides fair cost prices. At the present moment metrics with the possibility of solving these difficulties are not being applied, and the only parameter to contract a project for the development of software is the availability of funds from the budget. The time limits are accepted according to what is suggested by the software houses and the only way of negotiation is the haste of having the work finished. The use of metrics for estimate of costs and efforts is a must in the current situation of the enterprise, that has all their IT structure done by third-party work (except management and support). The aim of this research is to study the FPA technique and to develop a methodology for its use, in order to cooperate with the way the enterprise negotiates with their third-party providers. Researches have been done in enterprises that use this technique, we have made contact with authors of books and articles that concern the use of this technique. Key words: Bottero. Software-house. Subcontracting. Projects. FPA.
6 LISTA DE FIGURAS Figura 1.1 Tabela de prioridades nos atendimentos a cliente Figura 1.2 Exemplo de tela do sistema de chamados/serviços Figura 1.3 Representação gráfica dos desenvolvimentos de software no ano de Figura 1.4 Representação gráfica dos desenvolvimentos de software no ano de Figura 1.5 Representação gráfica dos desenvolvimentos de software no ano de Figura 1.6 Mapa mental dos processos do departamento de TI da Bottero Figura 1.7 Planejamento do escopo: entradas, ferramentas e técnicas, e saídas Figura 1.8 Visão geral do gerenciamento do escopo do projeto Figura 1.9 Fluxograma de processo do gerenciamento do escopo do projeto Figura 2.1 Definição do escopo: entradas, ferramentas e técnicas, e saídas Figura 2.2 Criar EAP: entradas, ferramentas e técnicas, e saídas Figura 2.3 Exemplo de estrutura analítica do projeto com alguns ramos decompostos até o... nível de pacotes de trabalho Figura 2.4 Exemplo de projeto gerenciado pelo WBS ChartPro... 73
7 LISTA DE QUADROS Quadro 1 - Vantagens e desvantagens da contratação de horas para o desenvolvimento de software Quadro 2 Vantagens e desvantagens na contratação a preço global fixo Quadro 3 Vantagens e desvantagens na comunicação Quadro 4 cronograma de desenvolvimentos... 40
8 LISTA DE ABREVIATURAS E SIGLAS APF Análise de Pontos de Função BFPUG Brazilian Function Point User Group B2B Business to Business CFPS Especialistas Certificados em Pontos de Função CMM Capability Maturity Model COSMIC Common Software Measurement International Consortium CPM Counting Practices Manual EDI Eletronic Data Interchange ERP Enterprise Resource Planning FFP Full Function Points FFPA Fuzzy Function Point Analisys IEC International Engineering Consortium IEEE Transactions on software engineering IFPUG International Function Point User Group ISO International Organization for Standardization JTC1 Joint Technical Committee One NEFPUG Netherlands Function Point User Group NESMA Netherlands Software Metrics Users Association PHP Hipertext Preprocessor PMI Project Management Institute SC7 Sun Committee Seven UKSMA Associação de Métricas do Reino Unido UML Unified Modeling Language WG12 Working Group 12
9 SUMÁRIO INTRODUÇÃO A NECESSIDADE DE MEDIR SOFTWARE Por que medir software? Métricas funcionais NESMA MARK II COSMIC-FFP FFPA APF Conceitos da APF Definindo a atuação de APF AS DIVERSAS FORMAS DE CONTRATAÇÃO Modalidade de contratação homem/hora Modalidade de contratação preço global fixo (ou projeto fechado) Modalidade de contratação preço unitário Ponto de função como unidade padrão Pontos de função facilitando a comunicação O Preço de um ponto de função Fator de crescimento O Problema de contratar mão-de-obra em desenvolvimento ESTUDO DE CASO A forma de contratação Subcontratação x terceirização A subcontratação na Bottero A utilização de APF pela Gadbrivia A utilização de APF pela Feevale PROBLEMAS NA CONTRATANTE Forma de contratação Insoft Forma de contratação Safetech Forma de contratação Metadados Documentos utilizados Históricos e gráficos de desenvolvimentos Recursos financeiros Custo fixo Custo variável Investimentos em projetos... 48
10 4.3.7 Antigos e recentes Solicitações dos usuários PROPOSTA Definição de requisitos Especificação de requisitos Documentos Gerência de projetos Gerenciamento do escopo preliminar Gerenciamento do escopo do projeto Planejamento do escopo Planejamento do escopo: Entradas Planejamento do escopo: Saídas Definição do escopo Definição do escopo: Entradas Definição do escopo: Ferramentas e técnicas Definição do escopo: Saídas Criar EAP (estrutura analítica de projeto) Criar EAP: ferramentas e técnicas Ferramentas Nova forma de contratação APF 74 CONCLUSÃO REFERÊNCIAS BIBLIOGRÁFICAS ANEXOS Anexo 1 Documento de implantação Safetech Anexo 2 Documento de definição Safetech Anexo 3 Matriz de requisitos Anexo 4 Organograma da empresa da Bottero Anexo 5 Caso de uso Anexo 6 Declaração de escopo Anexo 7 - Documento de especificação de requisitos Anexo 8 Fechamento de versão Insoft Anexo 9 Exemplo de modelo ER
11 INTRODUÇÃO Este trabalho de pesquisa tem como motivação a busca por uma ou mais soluções capazes de resolver os problemas de estimativas da empresa Calçados Bottero no que tange a contratação de serviços subcontratados para o desenvolvimento de software. A empresa Bottero se enquadra num grupo de empresas que optam por subcontratar o seu departamento de TI (tecnologia da informação), contratando todo o tipo de serviço, principalmente desenvolvimento de software. A empresa mantém internamente somente a área de gestão de TI e suporte à infra-estrutura de TI. Para que sejam justificadas essas demandas e, conseqüentemente, o problema em contratar serviços no mercado, é importante citar a estrutura da empresa em questão. São aproximadamente cento e cinqüenta usuários de sistemas, distribuídos entre a matriz, três filiais e vinte e dois escritórios de representações comerciais espalhados por todo o Brasil, além de um centro de distribuição na Bolívia. Os serviços de infra-estrutura de TI são contratados no mercado por empresas especialistas em cada função. Quanto a necessidade de desenvolvimento de software, os casos são tratados de forma mais específica. A empresa subcontratada para fornecer o software de folha de pagamento, por exemplo, atua com foco específico neste segmento, tendo possibilidade de prestar consultoria para sistema e processo ligado a essa área. O mesmo caso ocorre com os demais sistemas, são eles: sistema de ponto eletrônico, sistema comercial móvel, transmissão eletrônica de dados e o ERP (Enterprise Resource Planning). A maior dificuldade da empresa, por hora, está no sistema de gestão. As áreas internas da empresa, como departamento de compras, financeiro, planejamento e controle da produção, estoques, vendas, etc, geram demandas de desenvolvimento de software que exigem necessidades de customização. A software-house que fornece o sistema de gestão, sendo remunerada pelo direito de uso, concorda em trabalhar no formato onde o cliente solicita as customizações que desejar. Porém, o formato da cobrança é realizada pelo valor
12 12 hora para estes desenvolvimentos, a partir desse momento o que parece solução se torna um problema para a contratante. A empresa Bottero cresce a cada ano e conseqüentemente, gera necessidades no que diz respeito a estratégias e controles administrativos. Cabe a alta gestão da empresa avaliar os resultados e tomar as decisões. Assim sendo, a maioria das solicitações surgem deste nível organizacional. Pois bem, mas onde está o problema, sendo que a empresa Bottero não tem equipe interna e paga pelo desenvolvimento terceirizado em comum acordo com o prestador de serviços? O problema está em custo, prazo e também na falta de qualificação dos requisitos. Na medida em que a demanda pela contratação de serviços aumenta, os valores e os prazos aumentam proporcionalmente. A partir deste cenário a alta gestão da contratante deixa de achar o modelo de trabalho em parceria externa, um bom negócio, e, contesta os serviços alegando que se tornaram caros e demorados. O gestor de TI da empresa Bottero tem a tarefa de viabilizar sistematicamente as necessidades das outras áreas da empresa, mas fica dependente das estimativas de custos e tempos dos subcontratados. Com esta situação, surge a demanda pela busca de métricas capazes de suprir as estimativas onde se possam justificar os investimentos no desenvolvimento de software. A técnica de APF (análise de pontos de função) foi a escolhida por tratar justamente de estimativas de custos e esforço no desenvolvimento de softwares. Existe também o desejo da empresa Bottero em desenvolver uma metodologia onde a técnica de APF possa ser eficaz quando aplicada, porém, ao estudar a técnica durante esse trabalho de pesquisa foi constatado que não será possível o uso de APF sem antes construir-se uma metodologia para análise/levantamento dos requisitos. E, para isso, existe a necessidade de uma avaliação em todo o processo de desenvolvimento de software principalmente na fase de análise de requisitos. A técnica de APF é um cálculo matemático baseado em fórmulas onde são contados os pontos definidos para que se chegue ao resultado do esforço no desenvolvimento de softwares. Mas para ter-se sucesso na contagem dos pontos de função é dada a relevância a fase de levantamento de requisitos. A partir dos requisitos (PRESSMAN, 2002) é feito o levantamento do que deve ser desenvolvido, para então chegar-se ao número de pontos de função a serem implementados no projeto. No caso da empresa Bottero, a fase de levantamento de requisitos é feita internamente pelo gerente de TI. Participam os analistas da
13 13 software-house num segundo momento, já com os requisitos definidos ou em casos complexos já na fase inicial dos levantamentos. O primeiro capítulo deste trabalho abordará o assunto métricas e explicará o histórico e conceito da técnica de APF.
14 1 A NECESSIDADE DE MEDIR SOFTWARE Este capítulo apresenta considerações sobre as necessidades de medir software. Assim como os prestadores de serviços de desenvolvimento de softwares já iniciaram as suas buscas por métricas e metodologias capaz de auxiliar na qualidade do produto e do serviço, quem contrata também já está atento e qualificando as empresas conforme a sua capacidade de executar projetos de desenvolvimento de software. Porém, surgem as dúvidas, existem metodologias para melhores práticas, gestão de projetos, entre outros. Mas, por que medir software? 1.1 Por que medir software? O fato de parte ou todo trabalho envolvido no desenvolvimento e manutenção de sistemas estar terceirizado não elimina a demanda de medir-se, muito pelo contrário. Conforme Vasquez, Simões e Albert (2005, p.24) tanto no corpo de conhecimento em gerência de projetos PMBOK (Project Management Institute), quanto no CMM (Capability Maturity Model) do SEI (Software Engineering Institute) a aplicação de métricas é um aspecto determinante no relacionamento entre a empresa que contrata e a empresa contratada. Além de vencer a concorrência, resultado de conjunto de esforços da empresa, devese observar que antes disso a empresa precisa que todos seus colaboradores tenham ciência dos processos da empresa e seus papéis dentro do processo. Segundo o PMI (Project Management Institute), um projeto é um empreendimento temporário posto em execução para criar um único produto ou serviço. Dentro dos projetos encontram-se três passos comuns que são: 1) o planejamento; 2) execução; 3) controle. O planejamento 1) visa traçar os objetivos do projeto e o caminho a ser seguido; 2) a execução, trata do gerenciamento de pessoas e recursos para dar vida ao projeto. Por fim, 3) o controle garante que o planejamento foi seguido, monitorado e medido, identificando as variações durante a execução e quando
15 15 necessário, tomar ações corretivas para que o planejamento seja seguido. O planejamento, para Vasquez, Simões e Albert (2005, p.19): [...] em sua fase inicial que compreende o levantamento de requisitos, ainda não há o conhecimento completo das características do produto que permita a apuração de sua futura dimensão. Nesse caso é necessário estimar. A análise de pontos de função além de permitir medir o tamanho da aplicação pelo ponto de vista do usuário, pode ser utilizada para estimar seu tamanho em qualquer fase do ciclo de vida da aplicação desde sua concepção até futuras reestruturações e melhorias. No controle, segundo Vasquez, Simões e Albert (2005, p.21): [...] é de suma importância que a definição de meios para a comparação do progresso real com o planejado seja parte do planejamento do projeto. O controle é uma das principais atividades envolvidas na gerência de projetos. Trazendo estes conceitos para o contexto de um projeto de desenvolvimento de sistemas, é possível ter algumas idéias interessantes na busca da resposta de por que medir software. Afinal, não se consegue controlar o que não se consegue medir. Segundo Hazan (2007), as razões para se medir software são: indicar a qualidade do produto ao usuário, avaliar a produtividade do processo, melhorar a gerência de projetos e relacionamento com clientes, formar uma baseline para estimativas e gerenciar contratos de software. Conforme citações dos autores, ficam explícitas a necessidade de medir software e o resultado positivo que isso pode trazer aos projetos. As medições podem e devem ser feitas no início e durante o projeto. A Brivia Gestão Digital e Tecnologia da Informação faz uma estimativa no inicio do desenvolvimento e mais três durante, apresentando o projeto em ciclos aos seus clientes evitando dessa forma choques aos usuários em caso de requisito mal definido e/ou mudança dos requisitos no andamento do projeto. Além de servir como metodologia para mensurar e controlar projetos, a APF pode ser utilizada para cálculo da remuneração e avaliação da produtividade da equipe de desenvolvimento. Encontramos a APF também em licitações públicas na área de TI, onde os projetos das empresas candidatas são avaliados através da metodologia (HAZAN, 2003). 1.2 Métricas funcionais Através da popularização da APF, surgiram outras métricas de medição funcional e que serão apresentadas a seguir:
16 NESMA A associação de métricas da Holanda, NESMA (Netherlands Software Metrics Users Association), considerado como um dos maiores grupos de usuários de pontos de função da Europa, foi fundada em Maio de 1989 com nome inicial de NEFPUG (Netherlands Function Point Users Group). A entidade inspirou-se nas características e objetivos do IFPUG (International Function Point Users Group), inclusive a entidade mantém relacionamento muito próximo com esta entidade. Apesar desta proximidade, a NESMA mantém seu próprio manual de contagem, criado em 1990 baseando-se no manual do IFPUG. Para Vasquez, Simões e Albert, os manuais utilizam a mesma filosofia, conceitos, termos e regras, porém com diretrizes diferentes, podendo utilizar as duas técnicas de medição em projetos e chegar a resultados bem próximos. A diferença maior entre as técnicas está na contagem em projetos de melhoria de software, onde as entidades possuem abordagens distintas para aplicação da análise de pontos de função MARK II A técnica MARK II ou MK II foi criada por Charles Symons em meados da década de 80, baseando-se também na proposta de Albrecht, ficando conhecida em 1988 após a publicação na revista IEEE (Transactions on software engineering). Esta técnica atualmente é de domínio público, cuja organização responsável pela manutenção do padrão é a UKSMA, associação de métricas do Reino Unido, seguindo a mesma linha do IFPUG. Esta técnica não se difundiu no mundo devido ao seu método de aplicação ser restrito ao Reino Unido COSMIC-FFP Na universidade de Quebec, Canadá, os pesquisadores Denis St-Pierre, Marcela Maya, Alain Abran, Jean Marc Desharnais e Pierre Bourque criaram em 1997 um método de medição funcional para sistemas de tempo real, conhecido então como FFP (Full Function Points). Visa-se a aplicação deste método em sistemas tradicionais, o grupo seguiu trabalhando na sua evolução. Um outro grupo de pesquisadores em 1998, liderados por Alain Abran e Charles Symons, pai do MARK II, criaram o COSMIC (Common Software Measurement International Consortium), visa desenvolver um novo método de medição e busca as melhores características dos métodos existentes e que incorporasse novas idéias. Em 2000
17 17 então foi apresentado o resultado deste estudo, batizado de COSMIC-FFP, que é considerado um refinamento do FFP FFPA Na busca por números mais precisos na contagem de pontos de função, surgiu a teoria FFPA (Fuzzy Function Point Analisys) análise de pontos de função fuzzy. Esta teoria busca construir uma estrutura quantitativa, procurando capturar possíveis imprecisões do conhecimento humano. No entanto, ainda há resistência quanto à utilização desta teoria APF Os conceitos sobre Pontos de Função foram inicialmente introduzidos por Allan Albrecht da IBM, em uma conferência da 1 Guide/Share em Posteriormente, esses conceitos foram refinados em uma metodologia formal e publicados no domínio público em Subseqüentemente, uma comunidade de ávidos usuários resolveu efetuar padronizações adicionais nas regras de contagem de Pontos de Função, sendo formado o IFPUG, como um grupo formalmente constituído e sem finalidades lucrativas, em Desde então, o IFPUG tem sido líder no estabelecimento e publicação de documentos relacionados a Pontos de Função, incluindo o CPM (atualmente na versão 4.0), o Guia Para Medição de Software (atualmente em sua versão 1.1, tendo substituído o documento Pontos de Função como um Ativo) e diversos estudos de casos detalhados. (BFPUG). No momento, o IFPUG permanece como uma organização composta de voluntários que participam ativamente do grupo de trabalho da ISO sobre Medidas Funcionais de Tamanho (ISO/IEC JTC1 SC7 WG12), administra-se a certificação de materiais para treinamento em pontos de função, especialistas certificados em pontos de função (CFPS), software sobre pontos de função, mantém seu site na internet, (http://www.ifpug.org), cuida da instrução em mensuração de software e promovendo pelo menos duas conferências anuais. Atualmente, membros de mais de treze países participam do IFPUG servindo em comitês, ou comparecendo a conferências e treinamentos. (DEKKERS, 1998). 1 Guide/Share, acesso em <http://www.gse.org/>
18 Conceitos da APF A técnica de APF utiliza como unidade de medida o ponto de função. Esta metodologia independe de tecnologia empregada. A contagem dos pontos de função é baseada na avaliação dos requisitos do usuário, sendo que ela representa exclusivamente o tamanho funcional da aplicação Definindo a atuação de APF Da mesma maneira que a medida em metros quadrados do tamanho de uma casa não permite deduzir a velocidade com a qual a casa pode ser construída ou o seu tempo de construção, o tamanho em pontos de função não mede a produtividade ou o esforço de desenvolvimento. Pontos de função medem o tamanho do que o software faz, ao invés de como ele é desenvolvido e implementado. Isto significa que, dado um conjunto de requisitos de usuário, o tamanho funcional do software será o mesmo, seja ele desenvolvido com a utilização de COBOL ou DB2, usando RAD (desenvolvimento rápido de aplicações), ou métodos estruturados de desenvolvimento (DEKKERS, 1998). Neste trecho de artigo a autora sintetiza a contagem, exemplificando uma situação de tempo de projeto e esclarecendo a aplicação da técnica. Para Hazan (2007), APF é: [...] A APF (Análise de Pontos de Função) é um método padronizado para a medição de projetos de desenvolvimento de software, visando estabelecer uma medida de tamanho, em PF (Pontos de Função), considerando a funcionalidade implementada, sob o ponto de vista do usuário. [...] A necessidade de medir projetos de software é imediata, para que seja possível atender os requisitos, cumprir prazos e custos, além de iniciar a criação de uma base de conhecimento a fim de trabalhar com estimativas mais próximas da realidade. A contagem dos pontos de função é baseada na avaliação dos requisitos do usuário, sendo que ela representa exclusivamente o tamanho funcional da aplicação, servindo de base para que com outras variáveis possa ser calculado o esforço, prazo e o custo.
19 2 AS DIVERSAS FORMAS DE CONTRATAÇÃO O capítulo a seguir, apresenta as diversas formas de contratação. Preocupação, que interessa ao menos, para quem subcontrata serviços de desenvolvimento de software, já que existem variações de modalidades e por conseqüência reflete no valor final do serviço. O formato de contratação pode variar de uma empresa para outra. O que não muda é o problema em estimar custos, esforço e prazos. APF é uma metodologia atuante nos casos que a seguir apresenta-se, com possibilidade de diminuir os problemas. 2.1 Modalidade de contratação homem/hora A modalidade de contratação homem/hora oferece pontos positivos e negativos. Quando contrata-se mão-de-obra para desenvolvimento interno com alguma empresa no mercado, a contratante assume a gerencia e controle sobre o profissional disponibilizado pela empresa terceira. Este funcionário utiliza as instalações da contratante, mesmo sem ele ter um vínculo empregatício, em contraponto, a contratante ganha em flexibilidade, uma vez que os profissionais ficam sob seu comando. Mudança de requisitos é a maior flexibilidade, pois não havendo mudança de escopo, pode ser tratada internamente, sem a necessidade de uma nova reunião para renegociação. Outra situação, que poder ser citada como ponto negativo é a eficiência dos profissionais que também fica sob gerência de quem contrata. Esse fator, não é exatamente um ponto negativo, pois através de APF é possível monitorar a equipe, porém, são necessários dois dados para executar o cálculo, esforço (horas) e resultado (pontos de função). Esta modalidade de contratação, apesar de alguns pontos contra, é de fácil administração cujo tamanho funcional não ultrapasse 50 pontos de função. Com APF é possível visualizar queda de produtividade e, neste caso direcionar para outros rumos na contratação. Por exemplo, projetos com preço fechado. (Vasquez, Simões e Albert, 2005).
20 20 Quadro 1 - Vantagens e desvantagens da contratação de horas para o desenvolvimento de software. Vantagens Desvantagens Visibilidade sobre o Trabalho - Geralmente o desenvolvimento do projeto é feito internamente, facilitando sua supervisão. Contudo, esse trabalho acaba por deslocar profissionais internos à organização de atividades fim de seu negócio. Simplicidade - Pouca tramitação burocrática e esforço na negociação da alocação de recursos no caso de mudanças de requisitos ou outros aspectos conjunturais. Fonte: Vasquez, Simões e Albert (2005) Controle sobre a Produtividade - O contratante é responsável pelo acompanhamento da produtividade do serviço. Problemas Trabalhistas - A questão de haver ou não a caracterização do vínculo empregatício pode ser levantada em eventuais litígios. Ausência de Garantia - Dificuldade de identificar a responsabilidade e, como conseqüência, exigir a garantia do serviço quando ele é realizado por equipes mistas de várias empresas. 2.2 Modalidade de contratação preço global fixo (ou projeto fechado) Esta modalidade é de certa forma, de fácil negociação entre contratante e contratada. O contratante, supostamente não tem surpresas com orçamento, já que o preço está fixado. O contratado, como forma de levar vantagem sobre a concorrência, aceita essa condição sabendo que toda renegociação de prazo e valores durante um projeto traz desgaste para ambos os lados. Mas é também a modalidade que pode representar grandes problemas, pois exige organização de ambas as partes e os requisitos devem ser bem definidos. O escopo do projeto é um fator de muita importância, tendo definição clara referente ao início e fim do projeto. O contratante não deve assumir o risco de negociar com o contratado de que os requisitos não vão mudar. O contratado, por sua vez, não dispõe de todas as informações e pode subdimensionar o orçamento a fim de vencer a concorrência. Para Vasquez, Simões e Albert, 2005, em projetos de longa duração é recomendado estabelecer pontos de controle por meio dos quais a empresa contratante possa controlar o progresso do projeto. Uma aplicação da análise de pontos de função nesses casos é a sua utilização como um fator de normalização. A empresa pode dimensionar o projeto originalmente contratado e, com base no resultado da contagem dos pontos de função, pode calcular o valor unitário cobrado pela empresa contratada. O serviço adicional para o qual se
21 21 solicitou uma proposta pode também ser dimensionado em pontos de função aplicado o valor unitário calculado para o projeto original. Se o preço resultante for significativamente diferente do valor cobrado pelo fornecedor, a empresa contratante pode questionar as causas para essa discrepância. Quadro 2 Vantagens e desvantagens na contratação a preço global fixo Vantagens Transferências de Riscos - Variações na produtividade e escopo durante a execução do projeto são de responsabilidade do fornecedor Previsibilidade de Custos - Se os requisitos foram definidos de forma adequada e as mudanças forem pequenas, o orçamento será cumprido. Garantia - Após a entrega do produto, a responsabilidade de garantia sobre eventuais problemas de conformidade à especificação é bem definida e pode ser cobrada, inclusive, se necessário, com amparo legal. Tal fato faz com que seja interesse mútuo a qualidade do produto. Fonte: Vasquez, Simões e Albert (2005) Desvantagens Preço contingenciado - Para absorver os riscos de requisitos mal definidos ou de um crescimento de escopo, o fornecedor acrescenta margens de segurança à proposta comercial. Desgaste com o Fornecedor - Se os requisitos forem nebulosos ou o fornecedor subestimar o custo, haverá um desgaste em renegociações contratuais. Dependência - Se não houver a transferência adequada de conhecimento do projeto, o cliente pode ficar "refém" do fornecedor. 2.3 Modalidade de contratação preço unitário Conforme Vasquez, Simões e Albert, 2005, esta modalidade define uma remuneração para o fornecedor baseada nos elementos do projeto. Esses elementos podem assumir várias formas, tela, relatório, tabela, caso de uso, linha de código, stored procedure ou ponto de função. Em tese é um modelo que procura equilibrar as deficiências dos dois anteriores citados. O grande desafio dessa abordagem é encontrar um elemento que possa ser reconhecido de maneira inequívoca, uniforme e consistente por ambos, cliente e fornecedor, e que também possua uma natureza não excessivamente técnica. 2.4 Ponto de função como unidade padrão A análise de pontos de função é um método padrão de medição funcional. Centenas de empresas e profissionais de todo o mundo participam das ações do IFPUG, que é a organização responsável pela manutenção e evolução da técnica. Essas ações procuram garantir a consistência e a uniformidade da aplicação do método. Experiências de governos e
22 22 empresas de todo o mundo relatam casos de sucesso em sua aplicação. (VASQUEZ, SIMÕES e ALBERT, 2005). 2.5 Pontos de função facilitando a comunicação O vocabulário da análise de pontos de função utiliza terminologia e define objetos de contagem que independem da tecnologia utilizada para o desenvolvimento do software. A eliminação dessas tecnicidades facilita a compreensão entre as partes e é um importante fator de alavancagem da comunicação entre elas. Não é relevante para a análise de pontos de função se determinado grupamento lógico de dados foi implementado em dois, três ou quantos arquivos forem convenientes. Não é relevante se no espaço de uma tela não couberam todos os campos necessários para a conclusão de um processo elementar no negócio. O relevante é a perspectiva do negócio como entendido e validado pelo usuário. (VASQUEZ, SIMÕES e ALBERT, 2005). Quadro 3 Vantagens e desvantagens na comunicação Vantagens Desvantagens Melhor distribuição de Necessidade de pessoal qualificado na responsabilidades - Atribuição da técnica de APF - Nessa abordagem há a responsabilidade pelas variações da necessidade de pessoal qualificado na produtividade e escopo aqueles que técnica (preferencialmente especialistas efetivamente as causam. Paga-se pelo que certificados) tanto no cliente quanto no se recebe. fornecedor. As vantagens apresentadas para os projetos a preço fixo aplicam-se também aos contratados por pontos de função. Fonte: Vasquez, Simões e Albert (2005) Tamanho mínimo de projeto - Para projetos pequenos, por exemplo 50 pontos de função, há uma distorção entre o tamanho funcional e o esforço envolvido. 2.6 O Preço de um ponto de função O preço de um ponto de função varia conforme o trabalho proposto em um projeto. Especificação de requisitos, análise, desenvolvimento, documentação, entre outros, vão determinar a parametrização da composição do valor do ponto de função. Quando a organização decide contratar serviços de desenvolvimento de sistemas, uma métrica fundamental é o preço por ponto de função. A decisão de passar a trabalhar com pontos de função deve trazer benefícios na relação entre o custo total, incluídos não só o preço pago ao fornecedor, mas todas as despesas acessórias envolvidas, como a utilização de
23 23 recursos internos e as despesas administrativas, e a qualidade dos produtos entregues. Um dos objetivos que a administração determina é que, ao comparar os resultados entre a contratação com base em pontos de função e a contratação do mesmo projeto a preço global fixo, a primeira deve trazer melhores resultados que a segunda. (VASQUEZ, SIMÕES e ALBERT, 2005). Os responsáveis pela condução desse processo devem determinar métricas que se possa, se não responder esta pergunta, pelo menos dar indícios quanto às expectativas de preço e outros indicadores que devem ser colocados e acordos de nível de serviço. A determinação do preço por pontos de função, se não a mais importante, é certamente muito relevante ao processo. Atualmente, já existe um acúmulo de experiência no mercado para consultar preços comparativos, principalmente no setor governamental. Contudo, esses valores podem não ser compatíveis com a realidade da organização e do contexto em que se pretende contratar o serviço. (VASQUEZ, SIMÕES e ALBERT, 2005). Um exercício recomendado é a engenharia reversa do preço do ponto de função. Contratar projetos a preço global fixo é um caso geral da organização que tem a intenção de contratar pontos de função. Uma informação certamente disponível é o quanto se pagou ao fornecedor por um projeto passado e quais atividades ele compreendia. Provavelmente, não haverá disponível o tamanho funcional do sistema produto desse projeto. Essa informação pode ser obtida a partir de uma contagem ou estimativa. Com a realização desse exercício em sistemas e projetos semelhantes ao que se pretende contratar, é possível ter a noção do preço por ponto de função que os fornecedores da organização costumam praticar. A mesma consideração é certamente válida para o fornecedor que ainda não tem historia na utilização de pontos de função como unidade de medição de seus serviços. Afinal, sua utilização visa facilitar um relacionamento benéfico para ambos. (VASQUEZ, SIMÕES e ALBERT, 2005). Quando o cliente pergunta para um fornecedor o seu preço por ponto de função, antes de qualquer resposta, o fornecedor deve estar ciente do contexto em que será realizado o serviço. Uma analogia muito comum de ponto de função é com o metro quadrado da construção civil. Ao se perguntar o preço do metro quadrado a um corretor de imóveis, certamente ele fornecerá não um, mas vários preços: de acordo com a região, tipo de acabamento, infra-estrutura adicional do imóvel, etc. (VASQUEZ, SIMÕES e ALBERT, 2005).
24 24 Com ponto de função a situação é bem parecida. O preço irá variar de acordo com o trabalho requerido para a construção de um ponto de função e dos subprodutos a serem também entregues. Por exemplo, ao contratar uma empresa apenas para o trabalho de codificação e testes de unidade de um sistema, espera-se que o preço do ponto de função seja inferior ao caso da contratação da mesma empresa para a realização de todo o ciclo de desenvolvimento do sistema. (VASQUEZ, SIMÕES e ALBERT, 2005). Ou ainda, o preço do ponto de função para a entrega apenas do software certamente é inferior ao preço do ponto de função em que, além do software, devem ser entregues vários documentos (subprodutos) como: modelo UML (Unified Modeling Language), manual de usuário, ajuda on-line e outros. É também bastante comum no mercado a diferenciação do preço do ponto de função de acordo com a plataforma tecnológica (mainframe, internet, cliente-servidor, etc.). (VASQUEZ, SIMÕES e ALBERT, 2005). Deve-se destacar também que pode haver diferenciação de preço do ponto de função em projetos de melhoria para funcionalidades novas, para funcionalidades alteradas e para funcionalidades excluídas. Em resumo, não existe um preço único para ponto de função. Deve-se avaliar o conjunto de atividades relativas à disponibilização das funcionalidades medidas em pontos de função, o modelo de contrato que ditará a remuneração de um ponto de função e também os aspectos não-funcionais que são desconsiderados na medição dos pontos de função. 2.7 Fator de crescimento Sempre que se fala na utilização de pontos de função na contratação de serviços de desenvolvimento de software, é destacada a flexibilidade no tratamento de variações de escopo. Contudo, há um orçamento limitado para o contrato. Não é tarefa fácil justificar um crescimento significativo de orçamento, por mais que novas funcionalidades sejam identificadas. Portanto, o escopo deve ser gerenciado para que o orçamento seja cumprido. Por outro lado, quando o orçamento é elaborado, a estimativa de valor deve ser a mais próxima possível da realidade. Nesse caso, analisar o crescimento funcional da fase inicial à entrega de sistemas e projetos empreendidos no passado é de extremo valor. Basicamente, esses projetos devem ser identificados e agrupados por similaridade. Quando possível, recupere os documentos com
25 25 seus requisitos funcionais iniciais. Faça a medição desses projetos desde suas fases iniciais até o momento em que foram entregues. Se desejar, simplifique utilizando apenas dois pontos de medição: após a conclusão da especificação e após a sua implantação. Analise as causas da variação de tamanho entre esses pontos utilize essa variação o fator de crescimento na estimativa de valor para o orçamento da organização. 2.8 O Problema de contratar mão-de-obra em desenvolvimento O problema em contratar serviços de mão-de-obra para desenvolvimento está basicamente em tempo, prazos, custos, qualidade e funcionalidade. O problema inicial chamado tempo, ocorre no desenvolvimento para atender a necessidade criada ou comprar? Nos dois casos, há o tempo de avaliação. Porém, num deles há, o tempo de desenvolvimento; e, no outro, o tempo de implantação (de forma resumida, nos dois casos), no caso da compra. É o que os autores classificam como Make or buy. O caso dos prazos é uma constante nos projetos de todos os fornecedores. Dificuldade do cumprimento do cronograma é uma prática entre vários fornecedores e existe uma dificuldade muito grande de quem contrata os serviços em contestar e auxiliar nas melhorias tentando evitar os atrasos que comprometem os projetos. Na medida em que os cronogramas não são cumpridos os custos ultrapassam o que foi previsto. Mas falando em custos, o problema não é só esse. Quem garante que os custos apresentados pelo prestador de serviços estão coerentes com o serviço prestado? Atualmente, não há como medir isso. O prestador apresenta o valor, que é calculado referente horas trabalhadas multiplicado pelo valor hora/contratado. Toda via quem contrata não tem como saber qual foi o desempenho do profissional destinado a codificação e, em alguns casos nem mesmo o chefe direto desse profissional sabe. O problema da Bottero é justamente um mesclado de todos os fatores citados. Por opção da empresa não existe desenvolvimento próprio. A equipe de TI é responsável por gerenciar, administrar contratos, prestar suporte básico e buscar no mercado os serviços terceirizados capazes de suprir as demandas internas. O problema maior está nas customizações de software para o ERP. Existe uma grande demanda anual e não pratica-se nenhuma métrica onde é possível garantir-se que os prazos e os custos que esta-se praticando são os ideais, além de determinar o tamanho exato de um sistema e/ou customização. Com a alta demanda de desenvolvimento e este sendo terceirizado, faz-se necessária a medição do esforço dos profissionais envolvidos e remunerados pelo seu trabalho.
26 26 No próximo capítulo será apresentado o estudo de caso a fim de esclarecer os pontos fortes e fracos da subcontratação e seus problemas.
27 3 ESTUDO DE CASO Conforme Eisenhardt, 1989 duas contribuições para a literatura, são: 1º) Roadmap para a construção da teoria através do estudo de caso. Sintetiza trabalho prévio sobre análise qualitativa. 2º) É o posicionamento da construção da teoria do estudo de caso para dentro da pesquisa da ciência social. Há diferentes estratégias de pesquisa para a realização do estudo de caso. Pode-se utilizar cada estratégia para três propósitos diferentes: Explaratório, descritivo e explanatório. A empresa citada nesse estudo de caso é a Calçados Bottero 2 Ltda, empresa que conta com serviços terceirizados na área de TI. A sua equipe interna é composta pelo gerente de TI, analista de suporte e administrador de rede. Todo o serviço de desenvolvimento é externo, executado por empresas especializadas. As software-houses Metadados Informática, Insoft4 Informática e Safetech Informática atuam nos segmentos de folha de pagamento, ponto eletrônico e sistema de gestão (ERP), respectivamente. A Bottero utiliza os sistemas dessas três empresas e customiza, quando necessário, já que o contrato entre contratante e contratada prevê as customizações. 2
28 A forma de contratação A Bottero buscou no mercado sistemas especializados em atender funções específicas da empresa. O contrato com as software-houses foi feito de modo a permitir customizações no software fornecido mediante regime de valor hora de desenvolvimento. 3.2 Subcontratação x terceirização A subcontratação apresenta-se ao mercado como uma ótima solução para pequenas e médias empresas por estar diretamente relacionada a um custo mais acessível, considerandose o serviço prestado versus uma equipe de TI completa. A subcontratação de muitos ou todos os serviços de TI dentro das empresas já é uma realidade. Organizações onde a TI é uma atividade meio não têm interesse em investir valores elevados para contar com um time completo de analistas, desenvolvedores, técnicos, etc. Custos, recursos especializados, ferramentas, técnicas, métodos, prazos e quantidade de recursos são fatores que contribuem para a subcontratação parcial ou total. Mas com tantas vantagens, qual o problema em subcontratar? O problema em subcontratar pode estar no momento da escolha do contratado. Não tomar todos os cuidados pode gerar uma conta alta no futuro e uma variação entre as empresas na definição entre subcontratar e terceirizar. Para HAZAN, subcontratação é a gerencia sob o contrato. Terceirização de mão-de-obra é gerência sobre as pessoas que realizam o serviço. Essa indefinição entre os direitos e deveres de cada empresa pode ocorrer se a empresa subcontratada não adotar como padrão alguns métodos capazes de assegurar a contratada de que ela está contratando um serviço justo, por um preço justo. Gestão sobre projetos, garantindo prazos e cronogramas é um exemplo. APF é outro exemplo, para estimativas. Na contratação da subcontratada, devem ficar estabelecidos os compromissos, as pré-condições, as atividades, medições e análises e as verificações. De forma genérica, seriam esses fatores a serem verificados. 3.3 A subcontratação na Bottero A empresa Calçados Bottero tem como estratégia subcontratar áreas que não tenham relação direta com seu negócio, produção de calçados. Uma das áreas que a empresa optou por subcontratar foi TI, no que diz respeito ao desenvolvimento de software. A empresa mantém internamente funcionários que dão suporte aos sistemas terceirizados no nível
29 29 operacional. A empresa também possui uma pessoa responsável pela área de TI que no organograma ocupa a posição de gerente de TI. No anexo 4, apresenta-se o organograma da empresa. Não há desenvolvimento de softwares internamente e nem suporte de infra-estrutura. Esses recursos são captados no mercado através de empresas terceiras que atuam no formato de contrato de prestação de serviços. Atualmente, são onze empresas subcontratadas prestadoras de serviços de TI na empresa. Na parte relacionada a software, atuam na empresa Bottero software-houses responsáveis pelos seguintes sistemas: sistema de gestão ERP, sistema de ponto eletrônico, sistema de folha de pagamento, sistema de transmissão de dados via EDI (eletronic data interchange) e sistema móvel para área comercial. Na área ligada a hardware, as empresas prestam serviços de suporte a infra-estrutura de: rádios e antenas de conexão com a internet, impressoras, servidores e projetos. Além destes suportes as empresas também atuam com suporte aos níveis mais críticos, impossíveis de serem atendidos internamente, como por exemplo: administração de banco de dados e administração de sistemas operacionais dos servidores. A empresa Bottero gera uma demanda média de desenvolvimento de software de duzentas e cinqüenta horas por mês. Este total de horas de serviço são atendidos por empresas terceirizadas. As software-houses concordam em atuar no formato de solicitação de customizações e moldar o sistema ao cliente, mediante pagamento por valor hora. O problema (que é maior neste caso, mas também acontece com as outras software-houses com menor fluxo de customizações) é a falta de uma métrica para medir o esforço e o custo no desenvolvimento dessas customizações dificultando assim a crença sobre o real custo de desenvolvimento. Durante este trabalho, também constatou-se que não seria possível utilizar APF sem inicialmente definir uma metolologia e/ou documentação de requisitos. No momento, a disponibilidade financeira da empresa Bottero é o único parâmetro para definição entre executar ou não um projeto de desenvolvimento, no que diz respeito a custos. A partir do exposto iniciam-se as dificuldades na contratação dos serviços. Essa demanda de desenvolvimento é entendida pela alta gestão da empresa Bottero como cara, e demorada, e desta forma sinaliza a necessidade pela busca de uma métrica capaz de auxiliar na tomada de decisão e discussão com os fornecedores no intuito de medir o esforço e o custo nos projetos de desenvolvimento. A qualidade do software também é uma preocupação constante da empresa contratante, e a má definição dos requisitos contribui para a baixa
30 30 qualidade. Neste caso os recursos, de tempo e investimento, devem ser realocados dentro do que a empresa Bottero julga como justo. A métrica escolhida para aplicação nas demandas da empresa Bottero foi APF. O objetivo deste trabalho inicialmente era a aplicação de APF para estimar tempo e custo, mas, durante o andamento do trabalho de pesquisa constatou-se uma necessidade anterior a aplicação da APF. O problema dá-se em relação a falta de padronização de requisitos. Para isto utilizar-se-à exemplos de metodologias de outras empresas que usuárias de APF. Esclarecendo o processo interno, é oportuno citar que, atualmente os levantamentos de requisitos são feitos internamente pelo gerente de TI. O gerente utiliza técnicas de entrevistas com os usuários para a coleta de dados e, somente em casos de solicitações complexas, o analista de sistemas da empresa subcontratada é convidado a participar das reuniões. Ainda não existe um padrão definido para o levantamento de requisitos, para que dessa forma seja possível facilitar a implementação da técnica de APF. Para isso, esse trabalho tem como proposta a criação de um padrão de documentos (conforme anexos 5, 6 e 7) para especificação de requisitos, a fim de viabilizar o uso da técnica, além de, buscar a qualidade dos desenvolvimentos realizados pelas software-houses. Conclui-se que a métrica atende as expectativas da empresa Bottero, a idéia a ser posta em prática é de que os requisitos sejam levantados, os pontos de função contados e repassados a software-house para que ela faça a sua estimativa, seja pela contagem de pontos de função, ou por feeling. É através do feeling que a software-house proprietária do sistema de ERP, principal sistema de informação da empresa Bottero, realiza as suas estimativas. O uso desta técnica pode auxiliar em caso de discrepância de estimativas entre as informações da contratante e contratada. A empresa utilizará a metodologia definida neste trabalho para auxílio também na escolha dos prestadores de serviços. 3.4 A utilização de APF pela Gadbrivia Assim como as empresas contratantes de serviços, soluções e produtos estão em busca de metodologias que possam apoiar a tomada de decisão, algumas empresas de TI já atentaram para técnicas disponíveis no mercado e que podem ser aplicadas com intuito de dar algumas garantias de sucesso a projetos. A Gadbrivia Gestão Digital e Tecnologia da Informação utiliza a técnica de APF para dimensionar custo e esforço dos seus profissionais,
31 31 envolvidos num grande número de projetos em vários segmentos de negócio. Mas com qual objetivo a Brivia utiliza a técnica? A Brivia nasceu da fusão de três empresas de TI, todas elas em segmentos diferentes de atuação no mercado, mas todas com foco em negócios. Com a fusão entre elas, foi necessário criar metodologias e padrões para desenvolvimento de software e gestão de projetos na empresa, para que desta forma fosse possível comprometer-se com o mercado de forma eficaz e íntegra. As três empresas que se fundiram para criação da Brivia foram, Casa Interativa, WBuild e OrionDB. Neste momento a Brivia tem dois de existência. Na fusão entre as empresas, vieram junto as formas de trabalho, conceitos e costumes de cada uma, mas nenhuma metodologia reconhecida no mercado é capaz de suprir a necessidade de organização, visto a alta demanda por projetos. A Brivia possui um ERP próprio, destinado ao setor coureiro-calçadista e trabalha também com comunicação digital. Com tamanha diversidade nos projetos, foi necessária a implantação de APF e de mais alguns parâmetros para que a métrica não ficasse com resultados distorcidos. Um exemplo desses parâmetros são requisitos muito bem definidos. No início da implementação das metodologias da Brivia, não existia outra forma de fazer estimativas de projetos que não fosse através do feeling dos profissionais envolvidos e com isso alguns erros de estimativas de tempo de projeto e custos. Com o passar do tempo, foi gerada uma base de conhecimento e é nesta base que são coletadas as informações e estimativas em projetos já concluídos. Esta base serve de parâmetro para estimar novos projetos. Exemplo: desenvolvimento de um aplicativo que basea-se na linguagem PHP (Hipertext Preprocessor). Baseado em projetos anteriores com a mesma característica, são feitas as primeiras estimativas. A metodologia da Gadbrivia prevê uma estimativa no inicio do projeto e mais três durante. A metodologia proposta traça um plano da seguinte forma: dada a relevância a fase de levantamento de requisitos é de extrema importância que todas as informações estejam especificadas. Existe um formulário padrão próprio para utilização no momento da entrevista, com foco bem detalhado. Num primeiro contato, a entrevista com usuários ou gerentes de área é feita pelo contato comercial da Brivia. Num segundo momento, pela área técnica, normalmente pelo gerente de projetos. Os programadores não são envolvidos em nenhuma fase de levantamento de requisitos perante o cliente. Na seqüência, existe a utilização do
32 32 documento use case onde constarão as regras de negócios do cliente, fluxo processual e interfaces. O projeto é conduzido em ciclos, com objetivo de ser apresentado em etapas ao cliente evitando possível choque em caso de requisito mal definido ou alteração de escopo por parte do cliente, gerando discrepância entre usuários e desenvolvedores. A métrica de APF tem como objetivo medir o esforço de cada membro da equipe e o tempo de projeto. A empresa conta com oitenta profissionais na equipe desenvolvendo em várias tecnologias como: PHP, Oracle e.net. Todos os projetos da Brivia tem essas metodologias aplicadas, desde projetos de sites com nível de criticidade pequeno até sites de B2B de grandes empresas e implantação de ERP em indústrias. Os formulários utilizados pela Brivia são: planilha de cálculo de APF, testes e Use Cases. B2B é a sigla de business to business. O conceito do e-commerce B2B, ou comércio eletrônico entre empresas, pode ser definido como a substituição dos processos físicos que envolvem as transações comerciais, por processos eletronicos. Pontos de função são aplicados em pontos críticos e o que pode ser considerado como problema no negócio (aqueles programas que não podem parar de funcionar). Um ponto crítico de projeto pode ser uma análise de requisitos mal entendida. Os esforços dos profissionais da Gadbrivia estão distribuídos da seguinte forma: 10% teste, 55% construção, 15% análise de requisitos, 10% gerência de projetos, 5% gerência de configuração (infra-estrutura) e 5% arquitetura (modelagem). Esses são os tempos em percentuais que a Brivia destina a cada etapa de projeto. 3.5 A utilização de APF pela Feevale O Centro Universitário Feevale utiliza a métrica de APF para realizar estimativas nos projetos de desenvolvimento de softwares internos e também na contratação de serviços no mercado. A instituição tem como objetivo estimar o tamanho e esforço em projetos de desenvolvimento de software, podendo evoluir para estimativas de custos. Para os casos de desenvolvimento interno são feitos os levantamentos de requisitos, casos de uso, modelo ER e em alguns casos prototipação de telas. A partir disso, são definidos e contados os pontos de função para que se chegue ao esforço e ao tempo de desenvolvimento. A Feevale iniciou suas experiências em contagens de pontos de função através de um terceiro, a empresa Brivia Gestão Digital e Tecnologia da Informação, também citada neste trabalho de pesquisa. Nos dois anos em que a Feevale utiliza a técnica de APF por conta própria e um determinado momento das contagens já realizadas, alcançou 100% de
33 33 acerto na estimativa de determinado projeto. É regra fazer algumas apresentações referentes ao desenvolvimento do software ao usuário solicitante. Ao contrário da Brivia, que conta somente os pontos críticos do projeto, a Feevale conta todos os pontos, sem exceções. As contagens são realizadas através de planilha Excel montada pelos profissionais da própria instituição.
34 4 PROBLEMAS NA CONTRATANTE Este capítulo aborda os problema internos e externos que apresentam-se no formato de subcontratação de desenvolvimento de software, além de, expor o método de trabalho adotado entre contratante e contratadas. As formas de contratação, os documentos utilizados, históricos e gráficos de desenvolvimentos e os recursos financeiros são os assuntos apresentados. 4.1 Forma de contratação Insoft4 A empresa de desenvolvimento de software, Insoft4, foi fundada em abril de 2000, tem sede em Sapiranga no Rio Grande do Sul. Seus fundadores possuem larga experiência em desenvolvimento de sistemas de informática em empresas de grande porte. Eles desenvolvem sistemas e projetos utilizando ferramentas Developer e Designer para banco de dados Oracle em ambiente Windows e Unix. Os sistemas desenvolvidos pela Insoft4 formam o pacote chamado Ponto Soft. O Ponto Soft é o sistema que controla as seguintes áreas organizacionais da Bottero: controle de acesso de visitantes e fornecedores às dependências da empresa, ponto eletrônico, transporte para funcionários, refeitório, empréstimos e rateio de funcionários entre setores da empresa, compensações quando há troca de feriados e finais de semana por dias úteis e, circulação de veículos a serviço da empresa. A empresa Insoft4 presta serviços a Bottero desde o ano de A forma de negociação comercial entre a Bottero e a Insoft4 é em regime de contrato mensal e valor fixo de horas de desenvolvimento acordado entre as partes. A empresa Insoft4 é a responsável pelo desenvolvimento de programas customizados e específicos para atender a realidade da empresa. O pagamento dos serviços é realizado na modalidade valor/hora. O fluxo de customizações dos sistemas da Insoft4 na Bottero não é muito significativo. A Insoft4 atua também em projetos sob demanda, no formato de consultoria, fazendo análise de sistemas e desenvolvimentos conforme a demanda do cliente. Treinamentos e suporte também são os
35 35 serviços disponibilizados aos clientes, mas esses são aplicáveis somente ao produto Ponto Soft. A Insoft4 declara que no momento faz as suas estimativas baseadas no feeling de seus analistas. Muito embora, está oportunizando a um de seus profissionais uma pósgraduação em gerência de projetos a fim de desenvolver conhecimentos capazes de aplicar metodologias para orçamentos, construção e gerenciamento de projetos, controle de mão-deobra, gerenciamento de conflitos e gerenciamento da necessidade de contratação. Os treinamentos aos usuários do sistema, quando necessários, são acordados entre a Insoft4 e as gerências de TI e RH da Bottero. Os treinamentos são realizados nas dependências da Insoft4 ou In-company. O suporte aos usuários está disponível por telefone em horário normal de expediente e pode ser solicitado pelo usuário, no formato on-site. O suporte, ao contrário dos treinamentos, não necessita da interação das gerências de TI e RH. A Insoft4 disponibilizou a Bottero uma lista (conforme figura que apresenta-se a seguir) contendo os tempos de resposta e solução aos chamados abertos pelos usuários. Os chamados são controlados pelas gerências de TI e RH conforme relatório enviado ao final de cada mês pela Insoft4. Chamados, é a denominação dada para bug s do sistema que necessitam de correção da software-house. O suporte, solicitado pelos usuários, também tem um registro de chamado, mesmo quando trata-se somente de dúvidas.
36 36 Figura 1.1 Tabela de prioridades nos atendimentos a cliente Fonte: Insoft4 Informática A figura 1.1 representa a forma com que a software-house trata seu cadastro de prioridades de atendimento de suporte e/ou customização. Estão definidos seis tipos de prioridades onde cada uma possui três níveis de detalhamento conforme seguem abaixo: Tempo de resposta, item 1, é o prazo entre a data e hora da abertura do chamado pelo cliente até o início do seu atendimento (suporte). Tempo de retorno, o item 2, é o prazo entre a data da abertura do chamado pelo cliente até o fechamento do seu atendimento (suporte).
37 37 Tempo de serviço, o item 3, é o prazo para manutenção de programas (desenvolvimento). Prioridade, o item 4 é um número seqüencial e que aumenta conforme os cadastros vão ocorrendo. A descrição complementa esse cadastro. Apresenta-se e explica-se o tratamento que a software-house dá aos seus clientes através da tabela de prioridades, como já citado, são seis níveis. Exemplificando, a prioridade 1 (urgente). Conforme o item 1, um chamado urgente tem tempo de resposta de até 1 hora, ou seja, esse é o tempo limite para que seja iniciado o seu atendimento por um profissional da software-house. Conseqüentemente, o tempo de retorno ao cliente ou fechamento da solução é de no máximo 24 horas, como previsto no item 2. O campo serviço, exposto no item 3, é o tempo previsto para desenvolvimentos e não se aplica para os chamados. Neste exemplo, está preenchido com 120 horas apenas para efeito de exemplo. Com relação ao desenvolvimento e implantação de programas, a Insoft4 tem um padrão de que todos os erros ocorridos pós-implantação são considerados urgentes. Porém, como os usuários de todas as áreas que utilizam o sistema já estão devidamente treinados e conhecedores dos recursos disponíveis pelo sistema, as customizações ocorrem com pouca freqüência. As situações onde são necessárias customizações são aquelas onde novos projetos precisam ser contemplados no sistema. A necessidade de customização específica de software para a Bottero, atende-se demanda de usuário, normalmente inicia com uma reunião entre gerentes de RH e TI da Bottero e com um analista de sistemas da Insoft4. Nesta reunião, são especificados os requisitos necessários à customização. Após a reunião, a empresa Insoft4 retorna a Bottero uma proposta de customização contendo tempo, em horas, para desenvolvimento da customização e o valor a ser pago pelo projeto. Quando aprovado, o desenvolvimento é realizado. Os testes são feitos pelo usuário solicitante da Bottero. Toda implantação é acompanhada de documentação fornecida pela Insoft4. Como apresenta-se no anexo 9, o modelo de documento de implantação de release. Não existe documento específico e formal para especificação de requisitos. 4.2 Forma de contratação Safetech A Software-house Safetech é a empresa desenvolvedora do software de ERP que a Bottero utiliza. A forma de contratação dos serviços de desenvolvimento de software entre
38 38 Safetech e Bottero é sob demanda, tanto para suporte, customizações específicas e novos projetos de desenvolvimento. O contrato com a Bottero está definido com um valor fixo mensal. Esse contrato prevê a utilização do software através de direito de uso e não compra/venda. Acordou-se entre as empresas que 65% do valor mensal são destinados ao pagamento de suporte e evolução tecnológica. Os outros 35%, correspondem a 120 horas de desenvolvimento de software de direito da Bottero. Mesmo a Bottero não tendo comprado o sistema, a software-house aceita trabalhar no formato de customizações em seu ERP, desde que, as horas consumidas para tal sejam faturadas contra a contratante. O suporte aos usuários é disponibilizado por telefone ou através de visita on-site quando solicitado pela Bottero. A demanda de customização ocorre quando o usuário solicita uma implementação de software ao gerente de TI da Bottero. O gerente faz a primeira análise da solicitação e quando há correções a fazer, são feitas junto ao solicitante antes do encaminhamento dos requisitos a Safetech. No atual modelo de negócio entre as áreas internas, as solicitações podem partir de qualquer usuário do sistema e cabe ao gerente de TI a análise sobre o andamento da mesma. O gerente de TI valida a solicitação junto ao gerente responsável pelo usuário solicitante, ou então, a partir de sua experiência dá andamento a solicitação somente pelo conhecimento de negócio que o mesmo possui. O próximo passo é o levantamento de requisitos. Os requisitos são documentados em reunião no formato de entrevista, participando o solicitante, o gerente de TI da Bottero, o analista de sistemas da software-house e o analista de negócios da software-house. Após, a software-house faz uma definição dos requisitos e envia por um parecer descritivo e a quantidade de horas que serão necessárias para execução. Para especificação de requisitos e, retorno da software-house com as estimativas de prazo e custo, não existem documentos definidos. Nos anexos 4 e 5 apresenta-se os modelos de documentos utilizados na implantação das customizações e definições. Entende-se por definição, os requisitos de projeto, de forma mínima. No início da parceria entre as duas empresas, não haviam metodologias de trabalho definidas. Os requisitos ora eram especificados de uma forma, ora de outra. As implantações ocorriam a todo o momento numa condição mínima de testes ocasionando erros e dúvida geral nos usuários. O documento de implantação e atualização de sistema foi criado por exigência da Bottero a fim de expor ao usuário a sua solicitação através do entendimento do desenvolvedor o que está sendo entregue. Os testes estão baseados neste documento e nas anotações da especificação dos requisitos. O uso deste documento é obrigatório desde então para as implantações.
39 39 Junto com o documento, definiu-se que as implantações das customizações ocorrem somente uma vez ao mês. A software-house não trabalha no formato de releases e por isso a Bottero solicita que qualquer modificação no software que não seja solicitada por ela, seja explicada e apresentada aos seus usuários, mesmo que, não seja de interesse de uso imediato. Em relação às estimativas de tempo, esforço e projetos, a Safetech não trabalha com metodologias existentes no mercado, com justificativa de que o tempo para as análises são cada vez mais curtos, o que complica na definição dos projetos pela falta de tempo hábil e também pelo tempo que deveria ser destinado para treinamento da equipe. Todas as definições e análises são baseadas no feeling dos seus profissionais. 4.3 Forma de contratação Metadados A Metadados é uma empresa com larga experiência em sistemas para rotinas de departamento de pessoal e recursos humanos. A forma de contrato de trabalho com essa empresa tem valor fixo mensal as quais disponibiliza somente o direito de uso, sem os códigos fontes. Presta suporte telefônico, on-site e treinamentos in-company. Em algumas situações, a Bottero solicita customizações, na maioria das vezes em relação à criação de relatórios. Este trabalho tem valor hora por serviço prestado. Não existem documentos definidos para os trabalhos de solicitação e entrega de customizações de software. A única forma de documentação é o uso de recebido pelo usuário master do sistema, que no caso da Bottero é um usuário chave do sistema, comunicando a disponibilização de uma nova versão disponível para download no site da software-house. A software-house utiliza métodos ágeis de desenvolvimento em seus projetos. Em entrevista com o diretor técnico da empresa, o mesmo relatou que a empresa criou uma base de conhecimento e baseia-se no feeling da equipe nas estimativas. A técnica de APF não foi adotada porque a empresa entendeu como uma fórmula complexa e que é mais produtivo mesclar uma metodologia própria com os métodos ágeis. Os pré-requisitos nos projetos da Metadados estão direcionados para medidores de capacidade e esforço, definição de escopo, estimativa de cronograma, ponto de esforço e variação de capacidade. No item estimativa de cronograma, as rotinas de cada membro da equipe são repartidas em tarefas menores. No item de ponto de esforço, são no máximo três pontos de esforço por implementação. Os tempos de cada etapa são avaliados conforme cada projeto, incluindo testes e infra-estrutura.
40 Documentos utilizados No relacionamento entre Bottero e Safetech utilizam-se alguns documentos que auxiliam no processo de solicitação e atendimento de serviços de desenvolvimento de software, são eles: documento de implantação e planilha que contém o cronograma de desenvolvimento. Também são utilizados, como forma de especificação de requisitos, s entre as duas empresas. Procedimento este que, de uma forma ou outra, colabora como forma de documentação de requisitos. O documento de implantação conforme apresenta-se no anexo 1 deste trabalho, acompanha as implantações dos programas customizados e/ou projetos e tem como objetivo, além de descrever os programas implantados e alterações no banco de dados, a possibilidade de consulta aos requisitos. Necessidade normalmente criada pela área de TI, a fim de, justificar-se com as áreas solicitantes que por ventura tenham dúvida em relação ao projeto entregue e os requisitos. O nível de detalhamento do requisito neste documento é mínimo e serve somente de consulta ao departamento de TI. A planilha que contém o cronograma é simples e está divida entre os meses do ano. Ela contém informações referentes às quantidades de horas utilizadas em projetos, solicitante, data prevista para implantação, entre outras. No quadro 4, apresenta-se um exemplo da planilha de cronograma. Quadro 4 cronograma de desenvolvimentos Mês Nro Serviço Implantação Status Solicitante Horas Saldo Observações Abril May Ok João 16 Implantado May Ok Maria 24 Implantado May - José - Somente encerrado May Ok Roberto 12 Implantado May Ok Scheid 12 Implantado May Ok Sandra 2 Implantado May Ok Pretz Implantado Maio Jun Ok Maurice 4 Implantado Jun Ok Patrícia 4 Implantado Jun Ok Alanis 24 Implantado Jun Ok Lulu 8 Na base de teste Jun Ok Rihana 48 Implantado Jun Ok Humberto 28 4 Implantado
41 41 A planilha apresentada no quadro 4 é de uso da Bottero e o responsável pelo preenchimento é o gerente de TI. Serve como controle do cronograma em andamento e montagem dos futuros. A seguir apresenta-se um descritivo de cada campo: Mês, refere-se ao cronograma em andamento ou programado para o mês citado. A conclusão do cronograma sempre ocorre no início do mês seguinte ao cronograma; Nro serviço, é o controle identificado através de numeração. É o mesmo número contido no sistema de chamados/serviços, conforme apresentado na figura 1.2; Implantação é o campo onde consta a data prevista para a implantação do programa. Normalmente, a data de conclusão é única para o cronograma inteiro, mas pode ocorrer datas diferentes dentro de um cronograma por motivos de urgência ou atrasos por mudanças nos requisitos; Status é preenchido após a implantação e sinaliza se o desenvolvimento atendeu as expectativas e está liberado ao usuário ou não. Quando está ok é porque foi testado, implantado, demonstrado e liberado para o usuário; Solicitante, é o usuário e/ou gerente solicitante do serviço; Horas é o campo que contém a estimativa de horas previstas pela softwarehouse; Saldo é a diferença entre as 120 horas (que é a disponibilidade de demanda da software-house Safetech com a Bottero previsto em contrato), menos o consumo do cronograma em questão. Esta planilha é utilizada somente com essa software-house, devido à alta demanda de desenvolvimento; Observações é um campo que serve para anotações que se fizerem necessárias antes, durante e depois da implantação do software; Para a etapa de especificação de requisitos não possuía-se formalmente nenhum documento interno, de onde surge a demanda, e nem um documento de negociação com a empresa prestadora de serviços. As especificações são documentadas em papéis pelos participantes de ambas as empresas em reuniões específicas. Pode-se dizer que, formalmente, os únicos tipos de registros de especificação de requisitos que existe são s trocados entre as empresas. Os requisitos, depois de confirmados, são inseridos em um sistema
42 42 computacional. Este sistema replica sua base de informações com a software-house, que possui o mesmo sistema em outro banco de dados. Essa replicação acontece em formato de texto enviado por . A atualização dessas informações na software-house são manuais. Na figura 1.2 apresenta-se a interface desse sistema. Figura 1.2 Exemplo de tela do sistema de chamados/serviços Fonte: Departamento de TI Calçados Bottero Ltda Este sistema de controle foi cedido a Bottero pela software-house Safetech e é a única fonte de registro para a especificação de requisitos. De acordo com a figura 1.2, apresenta-se a seguir o explicativo de todos os campos. Item 1 é a identificação do chamado ou serviço. Classifica-se chamado o que é bug e serviço as solicitações de customizações da Bottero. Item 2 não é preenchido manualmente. Após a confirmação do chamado ou serviço o sistema grava automaticamente a data e hora do dia. Item 3 é o que classifica se é chamado ou serviço. Essa classificação é de escolha do usuário desse sistema no momento do registro da informação.
43 43 Item 4 é o que informa o solicitante. Item 5 só é marcado quando o registro é feito com urgência. Desta forma, a software-house dá prioridade no atendimento. Item 6 serve para que a software-house insira o número do chamado ou serviço do cliente, vinculando ao registro dela. Os sistemas não são interligados, então existem dois números, o do cliente (Bottero) e da software-house. Item 7 é o local onde se encontra o usuário solicitante, pois existem unidades produtivas em vários locais. Item 8 é o grupo que este setor pertence. Grupo ou departamento. Item 9 refere-se ao destino do chamado e foi criado pela software-house com a possibilidade de uso do cliente com outros subcontratados. Item 10 sinaliza o tipo de ocorrência. Item 11 campo problema significa o local onde está o problema ou customização. Item 12 mostra o atendente do chamado ou serviço. Item 13 é a data prevista para a solução do chamado ou serviço. Item 14 campo data solicitação atendimento, trata-se do início do atendimento, seja ele chamado ou serviço. Item 15 campo resolvido por, é preenchido pela software-house e mostra o atendente que finalizou um chamado ou serviço. Item 16 é o campo disponível para a digitação do problema quando é chamado e digitação dos requisitos quando trata-se de customização. Item 17 é o campo onde constará a descrição da solução Históricos e gráficos de desenvolvimentos Os desenvolvimentos solicitados pelos usuários da Bottero estão direcionados ao sistema ERP, de propriedade da software-house Safetech Informática. O ERP é subdividido entre os seguintes módulos: industrial, administrativo e comercial. Esses módulos são a base
44 44 para os demais como: contabilidade, escrita fiscal, engenharia de produtos, entre outros. Os sistemas de folha de pagamento e ponto eletrônico praticamente não possuem demanda de customizações e/ou projetos e por esse motivo não há histórico. Na situação do ERP é totalmente o inverso. Esse sistema está ligado diretamente as regras de negócios da empresa e por esse motivo há um número considerável de customizações e projetos que acabam necessitando de integração com o ERP. Como é uma premissa de um sistema ERP a integração entre as áreas da empresa, isso também pode ser considerado como um fator de crescimento de demanda, pois uma solicitação de customização no meio da cadeia, por exemplo, o sistema comercial, pode influenciar numa grande demanda. Na tabela 1, apresenta-se um quadro dos desenvolvimentos dos últimos três anos. Tabela 1 Histórico de desenvolvimento baseado em carga horária. Mês/Ano Qtd de Horas Mês/Ano Qtd de Horas Mês/Ano Qtd de Horas Janeiro 60 Janeiro 126 Janeiro 98 Fevereiro 50 Fevereiro 40 Fevereiro 163 Março 84 Março 200 Março 92 Abril 58 Abril 143 Abril 106 Maio 90 Maio 305 Maio 116 Junho 28 Junho 210 Junho 195 Julho 36 Julho 250 Julho 68 Agosto 32 Agosto 360 Agosto 116 Setembro 38 Setembro 180 Setembro 200 Outubro 35 Outubro 151 Outubro Novembro 37 Novembro 62 Novembro Dezembro 38 Dezembro 80 Dezembro Total 586 Total 2107 Total Fonte: Departamento de TI Calçados Bottero Ltda 1154 Na tabela 1, apresenta-se o somatório de horas consumidas de forma geral pela empresa, mês-a-mês. No ano de 2007, houve aumento da carga horária porque os desenvolvimentos estavam direcionados a projetos ocorridos naquele ano, enquanto que em 2006 e 2008 a carga horária estava direcionada em customizações. Em 2009, projetos como o SPED (sistema público de escrituração digital) e NFe (nota fiscal eletrônica) devem elevar novamente a carga horária de desenvolvimento. As figuras 1.3, 1.4 e 1.5 demonstram o consumo de horas por setor referentes aos anos de 2006, 2007 e 2008 respectivamente, separando as demandas por desenvolvimento de cada área da empresa.
45 45 Todos os percentuais estão baseados na carga horária de desenvolvimento. Os quatro departamentos apresentados: industrial, administrativo, engenharia de produtos e comercial são os maiores consumidores na empresa. A figura a seguir representa graficamente os desenvolvimentos de software realizados pela Safetech no ano de Histórico de desenvolvimentos no ano de 2006 separados por área 18% 52% 27% Industrial Administrativo Engenharia de produto Comercial 3% Figura 1.3 Representação gráfica dos desenvolvimentos de software no ano de Fonte: Departamento de TI Calçados Bottero Ltda A figura 1.4 apresenta a representação gráfica referente ao histórico de desenvolvimento de software do ano de Neste ano, há uma inversão na maior fatia de consumo nos desenvolvimentos. O departamento industrial, que é formado por planejamento e controle da produção, compras, estoque, atelier, requisição interna, entre outros, foi quem mais consumiu, já que neste ano, especificamente, a empresa apresentou crescimento na produção, gerando demanda no negócio e com envolvimento integral da área de TI.
46 46 Histórico de desenvolvimentos no ano de 2007 separados por área 23% 6% 50% Industrial Administrativo Engenharia de produto Comercial 21% Figura 1.4 Representação gráfica dos desenvolvimentos de software no ano de Fonte: Departamento de TI Calçados Bottero Ltda No ano de 2008, a área industrial continua liderando os históricos de demanda por novos desenvolvimentos de software. Muito embora este seja o ano mais expressivo tratandose da engenharia de produto. Essa situação deve-se as modificações de mercado e que fatalmente são contempladas no ERP para possibilidade de desenvolvimento e criação de novos produtos.
47 47 Histórico de desenvolvimentos no ano de 2008 separados por área 28% 13% 48% Industrial Administrativo Engenharia de produto Comercial 11% Figura 1.5 Representação gráfica dos desenvolvimentos de software no ano de Fonte: Departamento de TI Calçados Bottero Ltda O módulo administrativo, que também aparece nas representações gráficas acima, é composto pelos sistemas de contabilidade, escrita fiscal, patrimônio, exportação, contas a pagar, contas a receber e controle de gastos. O módulo comercial, também apresentado, é composto pelos sistemas de vendas da fábrica e sistema de vendas dos representantes Recursos financeiros A Bottero disponibiliza os recursos financeiros à área de TI de três formas: 1) custo fixo para os contratos firmados com empresas parceiras de negócios; 2) custo variável para as manutenções de software, hardware e infra-estrutura; 3) e os investimentos em projetos. A seguir apresenta-se um descritivo do formato dos recursos: Custo fixo Valor definido no orçamento da empresa e destinado ao pagamento dos valores de contratos mensais, semestrais e anuais. A única variação que esses valores podem apresentar durante o ano é o reajuste conforme índice estipulado em contrato entre as empresas. Situações onde o custo pode sofrer aumento de valores são expostas à diretoria da empresa para avaliação.
48 Custo variável O custo variável está baseado estatisticamente mês-a-mês em anos anteriores, observando o crescimento da demanda. Desta forma, os valores aumentam ou diminuem de um mês para o outro. Essas variações estão previstas no orçamento da empresa e são avaliadas ao final de cada semestre, não podendo o valor total ultrapassar o previsto. Quando há a necessidade de ultrapassar, trata-se da seguinte forma, até 20% do estimado a gerência de TI autoriza e justifica posteriormente. A partir de 21%, o assunto é levado a diretoria para análise da situação Investimentos em projetos A Bottero é uma empresa em constante crescimento e por isso o desenvolvimento de novos projetos já é uma prática comum em todos os semestres. Neste item, investimentos em projetos, há uma diferença comparando-se aos anteriormente citados. Os projetos são avaliados individualmente pela diretoria, atendendo ao pré-requisito objetivo e não somente o custo de investimento. Desta forma, a empresa disponibiliza os recursos para a implementação dos projetos Antigos e recentes O exemplo nomeado como antigo na verdade é a realidade da empresa no momento. A especificação de requisitos atende apenas o princípio básico da entrevista com o usuário. Não existe um padrão de documentação para a especificação de requisitos e para os testes ao final do desenvolvimento, algumas definições ocorrem via e outras através de um documento da própria software-house. Casos de uso e modelo ER nunca foram feitos. No anexo 2, apresenta-se uma definição dada como antiga, para efeito de exemplo. Com base no exemplo, pode-se citar alguns problemas para uma estimativa mais próxima da realidade de custos e tempo de projeto, além de testes. O primeiro problema está na estimativa baseada no feeling do analista de sistemas da software-house. Não foi apresentado o modelo ER, os atributos das tabelas não são conhecidos pelo cliente, que também não tem o dicionário de dados da aplicação. A estimativa citada foi de 40 horas de desenvolvimento, para um report que estava pronto e deve somente fazer um rateio de valores, baseado em títulos a receber do sistema financeiro da empresa. Diante dessa situação o que o cliente que contrata e paga pelos serviços deve pensar? Que está super estimado, já que o programador deve somente montar um rateio de valores? Ou, que além do rateio dos
49 49 valores, há também alteração de rotinas como o envio do arquivo texto ao banco que deve atender um layout padrão pré-determinado pelas instituições bancárias e também validação de taxas e por isso justificaria esse tempo? Entende-se que é uma dúvida que poderá ser esclarecida com a adoção de um modelo de trabalho estabelecido entre as duas empresas, melhorando a especificação dos requisitos e adotando políticas de divulgação de informações entre os usuários e as duas empresas, já que as mesmas estão sob o comando exclusivo da parte técnica da software-house. O teste sob uma solicitação de desenvolvimento é uma parte importante no fechamento do projeto. Baseado no exemplo apresentado, o único teste possível de ser feito é a conferência manual dos valores apresentados no relatório. Sem um caso de uso torna-se impossível evoluir em outros testes. No capítulo a seguir, apresenta-se um modelo de trabalho como proposta, sendo possível comparar o momento atual e as evoluções futuras Solicitações dos usuários As solicitações de customizações nos sistemas podem ser feitas por qualquer funcionário e usuário de sistema da empresa inclusive representantes comerciais. Alguns requisitos são avaliados na solicitação como: integridade e sigilo das informações (para que nenhum usuário solicite informação que não lhe compete) e objetivo condizente com a realidade ao processo da empresa. Não existe um momento definido para as solicitações de customizações de software ocorrerem. No momento em que há demanda de negócios da empresa e necessidades dos departamentos, são solicitadas melhorias no sistema existente e/ou de novas implementações (projetos). Assim que as solicitações vão chegando ao departamento de TI da empresa, o gerente de TI monta um cronograma de trabalho de até três meses para frente, conforme exemplo no quadro 4. Quando os desenvolvimentos ultrapassam o limite de 360 horas em três meses à frente, todos os desenvolvimentos ficam registrados com status aguardando definição. Definição é o momento das reuniões de análise, especificação de requisitos, estimativa de horas de projeto e montagem de cronograma. O cronograma, no caso da Bottero, está restrito a estimativa de horas e data de implantação, que é a mesma data de conclusão do projeto. O cronograma de acompanhamento de desenvolvimento, análise, etc, é feito pela própria software-house e é de uso próprio.
50 50 O gerente de cada área é quem autoriza ou não a solicitação da sua equipe. Os usuários podem sugerir, uma espécie de brainstorming, porém, nenhuma solicitação é posta em prática sem avaliação do gerente de TI e o gerente da área solicitante. Os processos de trabalho e funcionamento do sistema ERP na Bottero não estão documentados/formalizados. Entende-se por processo de trabalho o funcionamento do sistema, aliado ao formato de trabalho de um departamento. Por exemplo, a inclusão de uma nota fiscal de compra de matéria-prima tem uma seqüência de sistema. O usuário faz a inclusão no sistema que a partir da gravação desta entrada gera saldo em estoque, informações para a contabilidade e lançamento no contas a pagar na conta de fornecedores. O fluxo de trabalho deste exemplo é inclusão da nota fiscal no depósito correto em relação ao seu almoxarifado (já que existe separação entre empresas do grupo), itens, quantidades, valores e impostos para que seja possível a utilização no abastecimento para as fábricas posteriormente. A contabilidade e o contas a pagar também dependem dos lançamentos corretos, do contrário não há possibilidade de dar seqüência aos seus trabalhos. Por isso, o envolvimento do maior número possível de pessoas num projeto é essencial, para que desta forma não ocorra o fato de requisitos não serem bem definidos, já que existe a integração entre os departamentos. Os processos estão, literalmente, na cabeça dos gestores de cada área e isso é o maior agravante na especificação dos requisitos. Em relação ao suporte dos sistemas de informação, o departamento de TI colabora com o suporte aos usuários em nível de macro-processos, pois conhece a integração de todos módulos do sistema. Até o momento a única regra, acordada entre todas as gerências em relação as solicitação de customizações de software, é que os gerentes somente poderão fazer solicitações referentes aos processos aos quais são responsáveis. Com base em todas as situações apresentadas até aqui nesta pesquisa, a seguir apresenta-se o capítulo com a proposta de melhoria para os processos da empresa.
51 5 PROPOSTA A partir da idéia de metodologia própria com a finalidade de suprir as dificuldades da empresa contratante, a Calçados Bottero, serão utilizadas algumas práticas de gerência de projetos. Não exatamente o que descreve o PMBOK passo-a-passo em seu conceito completo, mas algumas práticas capazes de proporcionar uma condução profissional dos projetos, aliando metodologia com idéias próprias, um framework. Esse framework contemplará documentação para especificação de requisitos baseado na 3ª edição do PMBOK, um modelo de projetos através de EAP (estrutura analítica de projetos), visa-se a possibilidade futura da aplicação da contagem de pontos de função com base no IFPUG. Tamanha a importância da especificação dos requisitos para o desenvolvimento de software, que a próxima versão do PMBOK, a 4ª edição, aborda o processo de gerenciamento de escopo denominado coletar os requisitos. Segundo a revista Mundo PM (edição de agosto/setembro de 2008), que noticiou este novo processo do PMBOK, dada a relevância do assunto em relação ao sucesso do projeto. A seguir apresenta-se os sub-capítulos referentes a proposta. 5.1 Definição de requisitos O fluxo de Requisitos reúne as atividades que visa obter o enunciado completo, claro e preciso dos requisitos de um produto de software. Esses requisitos devem ser levantados pela equipe de projeto, em conjunto com representantes do cliente, usuários chaves e outros especialistas da área de aplicação. O conjunto de técnicas empregadas para levantar, detalhar, documentar e validar os requisitos de um produto forma a Engenharia de Requisitos. O resultado principal do fluxo dos requisitos é um documento de Especificação de Requisitos de Software. Projetos de produtos mais complexos geralmente precisam de maior investimento em engenharia de requisitos do que projetos de produtos mais simples. A engenharia de requisitos é também mais complexa no caso de produtos novos. Quando um projeto visa desenvolver uma nova versão de um projeto existente, a experiência dos usuários
52 52 com as versões anteriores permite identificar de forma rápida e clara as necessidades prioritárias. No caso de um novo produto, é mais difícil para os usuários identificar quais as características de maior valor, e complicado para os desenvolvedores entender claramente o que os usuários desejam. (FILHO, Wilson de Pádua Paula, 2003) No caso da empresa Bottero, existem as duas possibilidades de projetos. Novos produtos (softwares) a serem agregados aos softwares já existentes e também a manutenção (novas versões) nos produtos/funcionalidades de softwares já existentes. Uma boa engenharia de requisitos é um passo essencial para o desenvolvimento de um bom produto, em qualquer caso. (FILHO, Wilson de Pádua Paula, 2003) A especificação de requisitos de software é o documento oficial de descrição dos requisitos de um projeto de software. Ela pode se referir a um produto indivisível de software, ou a um conjunto de componentes de software, que forma um produto quando usados em conjunto (por exemplo, um módulo de cliente e um módulo servidor). A especificação dos requisitos do software deve ser descrita por membros da equipe de desenvolvimento de um projeto, com a participação obrigatória de um ou mais usuários chaves do produto em pauta. O usuário chave é aquele que é indicado pelo cliente como pessoa capacitada a definir requisitos do produto. Normalmente, os usuários chaves são escolhidos entre profissionais experientes das diversas áreas que usarão o produto. Esses devem ser devidamente informados e treinados sobre as técnicas e notações que serão utilizadas no fluxo de requisitos. Geralmente, nem desenvolvedores nem clientes (ou usuários) são qualificados para escrever por si sós a especificação dos requisitos do software. Por que: Os clientes nem sempre entendem os processos de desenvolvimento de software em grau suficiente para produzir uma especificação de requisitos de implementação viável; Os desenvolvedores nem sempre entendem a área de aplicação de forma suficiente para produzir uma especificação de requisitos satisfatória; Os usuários chaves devem ser conscientizados do papel essencial que desempenham na especificação dos requisitos do software. Deve-se, também, comunicar-lhes o papel que terão no restante do projeto, tal como no desenho
53 53 das interfaces de usuário (inclusive estudos de usabilidade), nas revisões técnicas e de apresentação, na avaliação das liberações, nos testes de aceitação e em todos os procedimentos de implantação. Na Bottero, a realidade é um mixto dos itens citados anteriormente. A especificação dos requisitos é escrita em conjunto entre o gerente de TI da Bottero, (praticamente todas às vezes atua como um analista de negócios), pelo analista de sistemas da software-house (que também tem um feeling de negócios) e pelo usuário solicitante, já que ainda não temos definidos usuários chaves nos departamentos. Os requisitos de um produto podem alterar-se ao longo de seu desenvolvimento, por diversos motivos, entre eles: Descoberta de defeitos e inadequações nos requisitos originais, Falta de detalhes suficientes nos requisitos originais, Alterações incontornáveis no contexto do projeto (por exemplo, mudanças de legislação). Na empresa Bottero, aplica-se a situação comum ao mercado, ou seja, a mudança nos requisitos quando o projeto já está em andamento é uma constante. Os motivos são variados, e atendem as três situações citadas anteriormente. Assim sendo, é importante citar que há situações onde os requisitos são alterados com o projeto em andamento por necessidades de mercado, alinhamento a estratégia da empresa e novos negócios. 5.2 Especificação de requisitos O processo de especificação de requisitos é a base para um projeto de desenvolvimento de software de sucesso. É muito importante que nesta fase todas as situações possíveis e necessárias sejam expostas, assim, como as regras de negócios, os requisitos funcionais e não-funcionais. Nos casos onde o projeto envolve integração de sistemas, também é importante a participação dos usuários de outros departamentos que possam ser afetados ou até mesmo beneficiados. O problema não é juntar todos esses profissionais a fim de contribuir com um projeto e sua especificação dos requisitos. O entendimento é o fator mais crítico. A seguir, apresenta-se uma frase que sintetiza a dificuldade de especificarem-se os requisitos de um projeto de desenvolvimento de software.
54 54 Eu sei que você acredita que entendeu o que você pensa que eu disse, mas eu não estou certo de que você compreendeu que o que você ouviu não é o que eu quis dizer. (autor anônimo). Na informática, em especial na criação de um software, os requisitos devem ser explícitos. O usuário, mesmo que inconsciente, faz solicitações a equipe de projetos e acaba ocultando informações importantes para o sucesso do mesmo. Por este motivo, técnicas para especificações de requisitos devem ser aplicadas a fim de obter as informações necessárias e suficientes para minimizar o impacto da falta de levantamento de requisitos nas necessidades do usuário. Segundo a revista Mundo PM (edição de agosto/setembro de 2008), a 4ª edição do PMBOK, que será lançada no Brasil no mês de novembro de 2008 aborda o processo de gerenciamento de escopo denominado coletar os requisitos. Desta forma, fica clara a preocupação e dificuldade que os profissionais da área de projetos tem enfrentado com essa premissa que parece tão simples. Para isso, apresentam-se algumas técnicas a fim de melhorar o processo de coleta dos requisitos baseados no PMBOK. Algumas técnicas podem ser usadas para ajudar na definição das especificações, funcionalidades e objetivos dos produtos do projeto, são elas: Brainstorming (tempestade de idéias): Consiste na geração de idéias sem restrições. Qualquer pensamento relacionado ao projeto deve ser coletado. No momento seguinte, os analistas de sistemas e/ou analistas de negócios selecionam quais idéias podem ser aplicadas ao projeto. A técnica de brainstorming é aplicada na empresa Bottero, quando há a necessidade de informatização de um processo ainda não definido. Os usuários e gestores envolvidos são reunidos, onde acontece a tempestade de idéias. Na seqüência, a equipe de projeto e o gestor do departamento interessado reúnem-se para avaliar todas as idéias e quais serão aproveitadas e quais serão descartadas. Tomada de decisão em grupo: Técnica de tomada de decisão é um processo de avaliação das alternativas capazes de atingir o objetivo desejado do projeto. A tomada de decisão pode ser feita de diversas formas, unânime (quando todos optam por uma única alternativa), majoritária (quando mais de 50% opta por uma alternativa), consenso (quando a maioria decide e a
55 55 minoria concorda em aceitar), pluralidade (quando o maior grupo opta por uma alternativa mesmo que a maioria não tenha sido atingida) e ditatorial (quando uma pessoa toma a decisão por todos). Nesta pesquisa, as duas técnicas citadas podem ser aplicadas, a fim de obter os melhores resultados na coleta dos requisitos. Outras técnicas adicionais também podem ser aplicadas quando necessário. São elas, questionamento e pesquisa e técnicas de observação: Técnicas de questionamento e pesquisa: acumular informações relevantes de forma rápida e abrangendo um grande número de participantes. Técnicas de observação: o desempenho das pessoas que executam uma determinada tarefa. Esta técnica é usada quando o procedimento a ser analisado tem uma grande complexidade de detalhes, ou quando as pessoas que executam as tarefas tem dificuldade de definir as especificações que realizam. Na Bottero também utiliza-se a técnica de tomada de decisão em grupo, quando a informatização de um processo envolve mais de um departamento. Neste caso, os gestores dos departamentos envolvidos são reunidos para discussão de idéias para que se chegue num consenso do processo e definir os requisitos. Há situações onde a maioria opta por uma definição e a minoria concorda em aceitar; também há situações onde a técnica ditatorial é executada. Essa acontece com menor freqüência e quando há a necessidade é o gerente de TI quem define a especificação dos requisitos. A técnica de observação não foi utilizada até o momento na empresa. O PMBOK apresenta também outras técnicas, mas as citadas atendem ao perfil da empresa e por isso serão as utilizadas. Dentre elas, a tomada de decisão em grupo é a mais utilizada e tende há continuar sendo. Para isso, um conjunto de fatores está sendo exposto e proposto neste trabalho de pesquisa a fim de obter melhores resultados na especificação dos requisitos, que além de oportunizar a possibilidade de sucesso em um projeto, também é premissa básica para a contagem de pontos de função. O mapa mental, conforme apresenta-se na figura 1.5 também é um facilitador para o entendimento dos processos da área de TI da Bottero e as software-houses.
56 56 Figura 1.6 Mapa mental dos processos do departamento de TI da Bottero Fonte: desenvolvido pelo autor deste documento Uma situação comum nos projetos de desenvolvimento de software é a mudança de um ou mais requisitos com o projeto já em andamento. Essa situação ocorre e não há como evitar, mais dia, menos dia acontecerá e os envolvidos no projeto de desenvolvimento de sistemas deverão saber como conduzir essa situação. Uma ferramenta capaz de auxiliar na mudança e gerência dos requisitos é a matriz de requisitos. As bibliografias pesquisadas não apresentaram um formato de mercado definido e homologado para a construção. O formato aplicado neste trabalho de pesquisa, conforme o anexo 3, é uma planilha do Microsoft Excel. Nesta planilha, é possível fazer controle sobre a interação do solicitante, ciclo do requisito e ter o histórico das versões dos requisitos, um código de identificação para que seja possível ordená-los, o nome do requisito, a descrição, prioridade, status, a classificação (funcional ou não-funcional), caso de uso (se houver algum que implemente o requisito), data da solicitação do requisito, quem solicitou e quem aprovou. Com a utilização da matriz tem-se como objetivo gerenciar as mudanças de requisitos e analisar o impacto.
57 Documentos Os documentos contidos nos anexos 5, 6 e 7 tem o objetivo de formalizar, organizar e fazer-se entendível pelos participantes dos projetos entre a Bottero e as software-houses. Nos anexos estão contidos os documentos de caso de uso, declaração de escopo e especificação de requisitos. 5.4 Gerência de projetos Gerência é uma palavra que deriva de gerir, originária do latim, gerere que significa trazer, produzir, criar, executar e administrar. Em resumo, gerir é planejar, executar e controlar. De acordo com o PMI, um projeto é um empreendimento temporário posto em execução para criar um único produto ou serviço. Na condução desse empreendimento, existem vários processos que visam permitir sua gerência. Esses processos são agrupados em alguns passos básicos, dos quais destacam-se três: Planejamento: os objetivos são definidos e refinados e o melhor curso de ação é selecionado, Execução: coordenação de pessoas e outros recursos para executar o plano, Controle: garantia de que os objetivos são alcançados, por meio do monitoramento e medição regular do processo, identificando as variações no plano e tomando as ações corretivas conforme a necessidade. (VASQUEZ, SIMÕES e ALBERT, 2005) Gerenciamento do escopo preliminar A declaração do escopo preliminar do projeto é desenvolvida a partir das informações fornecidas pelo gerente de projetos, gerente de TI da Bottero ou pelo patrocinador. A equipe de gerenciamento de projetos no processo definição do escopo refina mais a declaração do escopo preliminar do projeto para obter a declaração do escopo do projeto. O conteúdo da declaração do escopo do projeto irá variar dependendo da área de aplicação e complexidade do projeto Gerenciamento do escopo do projeto O gerenciamento do escopo do projeto inclui os processos necessários para garantir que o projeto inclua todo o trabalho necessário, e somente ele, para terminar o projeto com
58 58 sucesso. O gerenciamento do escopo do projeto trata principalmente da definição e controle do que está e do que não está incluído no projeto. A Figura 1.6 fornece um fluxograma desses processos e suas entradas e saídas, além de outros processos de área de conhecimento relacionados. Os processos definidos no PMBOK referente a gerenciamento de escopo são: Planejamento do escopo criação de um plano de gerenciamento do escopo do projeto que documenta como o escopo do projeto será definido, verificado e controlado e como a EAP será criada e definida. Definição do escopo desenvolvimento de uma declaração do escopo detalhada do projeto como a base para futuras decisões do projeto. Criar EAP subdivisão das principais entregas do projeto e do trabalho do projeto em componentes menores e mais facilmente gerenciáveis. Verificação do escopo formalização da aceitação das entregas do projeto terminadas. Controle do escopo controle das mudanças no escopo do projeto. No contexto do projeto, o termo escopo pode se referir a: Escopo do produto: As características e funções que descrevem um produto, serviço ou resultado. Escopo do projeto: O trabalho que precisa ser realizado para entregar um produto, serviço ou resultado com as características e funções especificadas Planejamento do escopo A definição e o gerenciamento do escopo do projeto, conforme PMBOK, influenciam o sucesso total do projeto. Cada projeto exige um balanceamento cuidadoso de ferramentas, fontes de dados, metodologias, processos e procedimentos, e de outros fatores, para garantir que o esforço gasto nas atividades de determinação do escopo esteja de acordo com o tamanho, complexidade e importância do projeto. Por exemplo, um projeto crítico poderia merecer atividades de determinação do escopo formais detalhadas e que consomem muito tempo, enquanto um projeto rotineiro exigiria bem menos documentação e verificação. O tipo de projeto da empresa Bottero pode ser considerado como projeto do tipo rotineiro. A equipe de gerenciamento de projetos documenta essas decisões de gerenciamento do escopo
59 59 no plano de gerenciamento do escopo do projeto. O plano de gerenciamento do escopo do projeto é uma ferramenta de planejamento que descreve como a equipe irá definir o escopo do projeto, desenvolver a declaração do escopo detalhada do projeto, definir e desenvolver a estrutura analítica do projeto, verificar o escopo do projeto e controlar o escopo do projeto. O desenvolvimento do plano de gerenciamento do escopo do projeto e o detalhamento desse escopo do projeto se iniciam pela análise das informações contidas no termo de abertura do projeto, pela declaração do escopo preliminar do projeto, pela última versão aprovada do plano de gerenciamento do projeto, pelas informações históricas contidas nos ativos de processos organizacionais e por quaisquer fatores ambientais relevantes para a empresa. Figura 1.7 Planejamento do escopo: entradas, ferramentas e técnicas, e saídas. Fonte: PMBOK 3ª edição Planejamento do escopo: Entradas Fatores ambientais da empresa: Os fatores ambientais da empresa incluem itens como cultura da organização, infra-estrutura, ferramentas, recursos humanos, políticas de pessoal e condições de mercado, que poderiam afetar a forma como o escopo do projeto é gerenciado. Ativos de processos organizacionais: Os ativos de processos organizacionais são políticas, procedimentos e diretrizes formais e informais que poderiam afetar o modo como o escopo do projeto é gerenciado. Os ativos de interesse especial para o planejamento do escopo do projeto incluem: Políticas organizacionais, pois pertencem ao gerenciamento e planejamento do escopo do projeto;
60 60 Procedimentos organizacionais relacionados ao gerenciamento e planejamento do escopo do projeto; Informações históricas sobre os projetos anteriores que podem estar localizadas na base de conhecimento de lições aprendidas. Não será desenvolvido para cada demanda de desenvolvimento de sistemas, um plano de escopo. Os ativos citados serão utilizados para desenvolver a metodologia de gerência de requisitos da Bottero.
61 Figura 1.8 Visão geral do gerenciamento do escopo do projeto Fonte: PMBOK 3ª edição 61
62 62 Figura 1.9 Fluxograma de processo do gerenciamento do escopo do projeto Fonte: PMBOK 3ª edição Planejamento do escopo: Ferramentas e técnicas Opinião especializada: A opinião especializada, relacionada ao modo como projetos equivalentes realizaram o gerenciamento do escopo, é usada no desenvolvimento do plano de gerenciamento do escopo do projeto; Modelos, formulários, normas: Os modelos podem incluir modelos da estrutura analítica do projeto, modelos do plano de gerenciamento do escopo e formulários do controle de mudanças no escopo do projeto.
63 Planejamento do escopo: Saídas O plano de gerenciamento do escopo do projeto fornece orientação sobre como o escopo do projeto será definido, documentado, verificado, gerenciado e controlado pela equipe de gerenciamento de projetos. Os componentes de um plano de gerenciamento do escopo do projeto incluem: Um processo para preparar uma declaração do escopo detalhada do projeto, com base na declaração do escopo preliminar do projeto; Um processo que permite a criação da EAP a partir da declaração do escopo detalhada do projeto e que determina como a EAP será mantida e aprovada; Um processo que especifica como serão obtidas a verificação e a aceitação formais das entregas do projeto terminadas; Um processo para controlar como serão processadas as solicitações de mudanças da declaração do escopo detalhada do projeto. Este processo está diretamente ligado ao processo de controle integrado de mudanças. Um plano de gerenciamento do escopo do projeto está contido no plano de gerenciamento do projeto ou é um plano auxiliar dele. O plano de gerenciamento do escopo do projeto pode ser informal e genérico ou formal e bem detalhado, com base nas necessidades do projeto. Neste sub-capítulo, a EAP e a mudança de escopo serão os pontos aplicados na empresa Bottero através do documento de declaração de escopo, conforme apresenta-se no anexo Definição do escopo A preparação de uma declaração do escopo detalhada do projeto é essencial para o sucesso do projeto e é desenvolvida a partir das principais entregas, premissas e restrições, que são documentadas durante a iniciação do projeto, na declaração do escopo preliminar do projeto. Durante o planejamento, o escopo do projeto é definido e descrito mais especificamente porque se conhecem mais informações sobre o projeto. Necessidades, desejos e expectativas das partes interessadas são analisados e convertidos em requisitos. As premissas e restrições são analisadas para garantir que estejam completas, adicionando-se mais premissas e restrições conforme necessário.
64 64 A equipe do projeto e outras partes interessadas, que possuem uma visão mais clara da declaração do escopo preliminar do projeto, podem realizar e preparar as análises. Figura 2.1 Definição do escopo: entradas, ferramentas e técnicas, e saídas. Fonte: PMBOK 3ª edição Definição do escopo: Entradas Ativos de processos organizacionais Termo de abertura do projeto: se um termo de abertura do projeto não for utilizado em uma organização executora, então um conjunto comparável de informações precisa ser adquirido ou desenvolvido e usado para desenvolver a declaração do escopo detalhada do projeto. Declaração do escopo preliminar do projeto: se uma declaração do escopo preliminar do projeto não for usada em uma organização executora, então um conjunto comparável de informações, inclusive a descrição do escopo do produto, precisa ser adquirido ou desenvolvido e usado para desenvolver a declaração do escopo detalhada do projeto. Solicitações de mudança aprovadas: as solicitações de mudança aprovadas podem ocasionar uma mudança no escopo do projeto, na qualidade do projeto, nos custos estimados ou no cronograma do projeto. As mudanças são freqüentemente identificadas e aprovadas enquanto o trabalho do projeto está em andamento. Aplicando-se esse sub-capítulo a realidade da empresa Bottero, quando o escopo preliminar não é desenvolvido, a base de conhecimento é a fonte de pesquisa para definição
65 65 de tempo, custo de projeto e montagem do cronograma. Quando há a solicitação para mudança nos requisitos, avalia-se o impacto no projeto como um todo e após define-se entre alterar os requisitos e o escopo de projeto ou a criação de um novo projeto, se essa solicitação for considerada complexa. Como proposta neste trabalho de pesquisa, o documento de declaração de escopo, conforme apresenta-se no anexo 6 será utilizado Definição do escopo: Ferramentas e técnicas Análise de produtos Cada área de aplicação possui um ou mais métodos geralmente aceitos para transformar os objetivos do projeto em requisitos e entregas tangíveis. A análise de produtos inclui técnicas, como decomposição do produto, análise de sistemas, engenharia de sistemas, engenharia de valor, análise de valor e análise funcional. Identificação de alternativas: a identificação de alternativas é uma técnica usada para gerar diferentes abordagens para executar e realizar o trabalho do projeto. Diversas técnicas de gerenciamento geral são freqüentemente usadas aqui, sendo as mais comuns brainstorming e pensamento lateral. Opinião especializada: cada área de aplicação possui especialistas que podem ser usados para desenvolver partes da declaração do escopo detalhada do projeto. Análise das partes interessadas: a análise das partes interessadas identifica a influência e os interesses das diversas partes interessadas e documenta suas necessidades, desejos e expectativas. A análise então seleciona, prioriza e quantifica as necessidades, desejos e expectativas para criar os requisitos. As expectativas que não podem ser quantificadas, como a satisfação do cliente, são subjetivas e envolvem um alto risco de não serem realizadas com sucesso. Os interesses das partes interessadas podem ser afetados de forma negativa ou positiva pela execução ou término do projeto e também podem exercer influência sobre o projeto e suas entregas. Neste sub-capítulo, aplica-se ao case Bottero a técnica de Brainstorming, onde todas as idéias são aceitas e consideradas num primeiro contato com os usuários solicitantes de um projeto. Análises posteriores, para definição do projeto descartam ou não essas idéias. A opinião especializada também é um item que será aplicado neste trabalho de pesquisa. Neste
66 66 caso, a opinião especializada virá de um usuário chave do departamento que estiver gerando uma demanda por desenvolvimento de software Definição do escopo: Saídas A declaração do escopo do projeto descreve, em detalhes, as entregas do projeto e o trabalho necessário para criar essas entregas. A declaração do escopo do projeto também fornece um entendimento comum do escopo do projeto a todas as partes interessadas no projeto e descreve os principais objetivos do projeto. Além disso, permite que a equipe do projeto realize um planejamento mais detalhado, orienta o trabalho da equipe do projeto durante a execução e fornece a linha de base para avaliar solicitações de mudanças ou trabalho adicional e verificar se estão contidos dentro ou fora dos limites do projeto. O grau e o nível de detalhe com que uma declaração do escopo do projeto define o trabalho que será realizado e o trabalho que será excluído podem determinar a eficácia com que a equipe de gerenciamento de projetos poderá controlar o escopo global do projeto. O gerenciamento do escopo do projeto, por sua vez, pode determinar e eficácia com que a equipe de gerenciamento de projetos poderá planejar, gerenciar e controlar a execução do projeto. A declaração do escopo detalhada do projeto inclui, diretamente ou referenciando outros documentos: Os objetivos do projeto incluem os critérios mensuráveis do sucesso do projeto. Os projetos podem possuir uma ampla variedade de objetivos técnicos, de negócios, custo, cronograma e qualidade. Os objetivos do projeto também podem incluir metas de custo, cronograma e qualidade. Cada objetivo do projeto possui atributos como custo, uma métrica como dólares e um valor absoluto ou relativo como inferior a 1,5 milhões de dólares. Descrição do escopo do produto: descreve as características do produto, serviço ou resultado para cuja criação o projeto foi realizado. Essas características terão normalmente menos detalhes nas fases iniciais e mais detalhes nas fases posteriores, conforme as características do produto forem progressivamente elaboradas. Embora a forma e o conteúdo das características variem, a descrição do escopo deve sempre fornecer detalhes suficientes para dar suporte ao planejamento posterior do escopo do projeto. Requisitos do projeto: descreve as condições ou capacidades que devem ser atendidas ou possuídas pelas entregas do projeto para satisfazer um contrato, norma, especificação ou outros documentos formalmente impostos. As análises das partes
67 67 interessadas de todas as suas necessidades, desejos e expectativas são convertidas em requisitos priorizados. Limites do projeto: normalmente identifica o que está incluído dentro do projeto. Declara de forma explícita o que está excluído do projeto, para evitar que uma parte interessada possa supor que um produto, serviço ou resultado específico é um componente do projeto. Entregas do projeto: as entregas incluem tanto as saídas que compõem o produto ou serviço do projeto, como resultados auxiliares, como documentação e relatórios de gerenciamento de projetos. Dependendo da declaração do escopo do projeto, as entregas podem ser descritas de forma sumarizada ou detalhada: Critérios de aceitação de produtos. Define o processo e os critérios para aceitar os produtos terminados. Restrições do projeto. Lista e descreve as restrições específicas do projeto associadas ao escopo do projeto que limitam as opções da equipe. Por exemplo, são incluídos um orçamento predefinido ou datas impostas (marcos do cronograma) divulgadas pelo cliente ou pela organização executora. Quando um projeto for realizado sob contrato, em geral as cláusulas contratuais se constituirão em restrições. As restrições listadas na declaração do escopo detalhada do projeto são normalmente mais numerosas e mais detalhadas do que as listadas no termo de abertura do projeto. Premissas do projeto: lista e descreve as premissas específicas do projeto associadas ao escopo do projeto e o impacto potencial dessas premissas, se não forem confirmadas. Freqüentemente, as equipes de projetos identificam, documentam e validam as premissas como parte do seu processo de planejamento. As premissas listadas na declaração do escopo detalhada do projeto são normalmente mais numerosas e mais detalhadas do que as listadas no termo de abertura do projeto. Organização inicial do projeto: são identificados os membros da equipe do projeto e as partes interessadas. A organização do projeto também é documentada: Riscos iniciais definidos; Identifica os riscos conhecidos;
68 68 Marcos do cronograma. O cliente ou a organização executora podem identificar marcos e colocar datas impostas nesses marcos do cronograma. Essas datas podem ser consideradas como restrições do cronograma. Limitação de fundos: descreve qualquer limitação dos recursos financeiros do projeto, uma limitação do valor total ou uma limitação imposta em prazos especificados. Estimativa de custos: a estimativa de custos do projeto indica o custo total esperado do projeto e é normalmente precedida de um modificador que fornece alguma indicação de exatidão como, por exemplo, conceitual ou definitiva. Requisitos do gerenciamento de configuração do projeto: Descreve o nível de gerenciamento de configuração e controle de mudanças que será implementado no projeto; Especificações do projeto; Identifica os documentos de especificação com os quais o projeto deve estar de acordo. Requisitos de aprovação: Identifica os requisitos de aprovação que podem ser aplicados a itens como objetivos, entregas, documentos e trabalho do projeto. Mudanças solicitadas: as mudanças solicitadas no plano de gerenciamento do projeto e nos seus planos auxiliares podem ser desenvolvidas durante o processo definição do escopo. As mudanças solicitadas são processadas para revisão e destinação pelo processo controle integrado de mudanças. Plano de gerenciamento do escopo do projeto (atualizações): quando as atualizações são geradas por mudanças consideráveis nos requisitos, a regra é criar um novo projeto e fazer toda a especificação novamente. Essa regra já sabida pela equipe da Bottero e pelas softwarehouses. Não são tratadas como mudanças consideráveis, aquelas que contemplam pequenos ajustes no requisito definido inicialmente. A partir disso, é requisito novo!
69 Criar EAP (estrutura analítica de projeto) A EAP é uma decomposição hierárquica orientada à entrega do trabalho a ser executado pela equipe do projeto, para atingir os objetivos do projeto e criar as entregas necessárias. A EAP organiza e define o escopo total do projeto. A EAP subdivide o trabalho do projeto em partes menores e mais facilmente gerenciáveis, em que cada nível descendente da EAP representa uma definição cada vez mais detalhada do trabalho do projeto. É possível agendar, estimar custos, monitorar e controlar o trabalho planejado contido nos componentes de nível mais baixo da EAP, denominados pacotes de trabalho. A EAP representa o trabalho especificado na declaração do escopo do projeto atual aprovada. Os componentes que compõem a EAP auxiliam as partes interessadas a visualizar as entregas do projeto. Figura 2.2 Criar EAP: entradas, ferramentas e técnicas, e saídas. Fonte: PMBOK 3ª edição Criar EAP: ferramentas e técnicas Embora cada projeto seja exclusivo, uma EAP de um projeto anterior pode freqüentemente ser usada como um modelo para um novo projeto, pois alguns projetos se assemelham até certo ponto a outro projeto anterior. Por exemplo, a maioria dos projetos dentro de uma determinada organização terá ciclos de vida do projeto iguais ou semelhantes e, portanto, terá entregas iguais ou semelhantes necessárias para cada fase. Muitas áreas de aplicação ou organizações executoras possuem modelos de EAP padrão.