UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE SISTEMAS DE INFORMAÇÃO Desenvolvimento de um Sistema para Planejamento de Projetos de Software em Micro e Pequenas Empresas Luis Henrique Spoladore Amaral Resumo do trabalho de conclusão de curso de Rafael Savi em Ciência da Computação – UFSC. Florianópolis - SC 2005/2 O trabalho de conclusão de curso estudado descreve o desenvolvimento de um Sistema de Planejamento de Projetos de Software em Micro e Pequenas empresas, implementando um modelo que permita a obtenção de cronograma e custos realísticos considerando as características de tais empresas. As micro e pequenas empresas correspondem de 60% a 70% das empresas do setor de software do Brasil. Têm como principais características: pouca experiência acumulada, equipe pequena exigindo que o pessoal assuma vários papéis, foco principal no desenvolvimento de produtos , falta de atividades de gerência, de aperfeiçoamento dos processos e do controle de qualidade. Quanto ao ciclo de vida de um software é importante ressaltar que o custo de manutenção é muito alto. 75% dos sistemas não funcionam como o planejado ou nunca serão usados, 57% dos sistemas são entregues sabendo que eles têm defeitos. A falta de planejamento e de controle provoca atraso na entrega do produto, de qualidade duvidosa, o que implica em desperdício de trabalho. 68% dos projetos não mantêm os prazos. Com uma produção ineficiente a empresa deve se dedicar aos problemas causados por falta de organização, impossibilitando seu crescimento já que não consegue administrar um número crescente de clientes. A falta de controle de qualidade permite que sejam gerados sistemas defeituosos que deverão ser ajustados durante a fase de manutenção que é cara. Tais problemas podem ser explicados em grande parte pela falta de atividades de gerência. Entre as micro empresas apenas 30% a 35% possuem atividades de gerência e entre as pequenas empresas, 40% possuem tais atividades. Alguns dos motivos levantados para essa falta de gerência são falta de experiência da equipe, falta de recursos, já que todos estão alocados para a produção, e ainda a falta de uma metodologia de desenvolvimento. O objetivo do trabalho é desenvolver um sistema de planejamento de projetos de software adaptado às necessidades e características específicas de micro e pequenas empresas, visando facilitar o estabelecimento, aumentar a qualidade dos produtos e melhorar a produtividade e organização através de um planejamento sistemático. Está delimitado apenas às atividades de fase de planejamento e na gerência de projetos de software. Foram levantadas as definições dos conceitos básicos de gerência de projetos de software: Projeto: “um projeto é um empreendimento temporário com o objetivo de criar um produto ou serviço único.” Gerência de Projetos: “é a aplicação de conhecimentos, habilidades e técnicas para projetar tarefas que visem atingir ou exceder as necessidades e expectativas das partes envolvidas em um projeto.” Processo: “é um conjunto de tarefas cujo objetivo principal é o desenvolvimento ou evolução de um produto.” Os processos podem ser agrupados em: processos de iniciação, processos de planejamento, processos de execução, processos de controle e processos de encerramento. No trabalho foram abordados os processos de planejamento. Planejamento: “planejamento é a destinação de recursos avaliados visando atingir determinados objetivos a curto, médio ou longo prazo.” Work Breakdown Structure – WBS: “Modelo que formula um diagrama hierárquico (na forma de uma árvore) cuja finalidade é explicitar as etapas de trabalho que são necessárias para alcançar algum objetivo maior e, em última análise, o objetivo do projeto (FIALHO, 1988).” Após definidas as tarefas do projeto, pode-se estimar uma duração total para o mesmo. Essa estimativa, no entanto, será refinada após a etapa de sequenciamento das tarefas, onde são identificadas as interdependências das tarefas definidas. O WBS pode ser utilizado para especificar a definição de um projeto. No nível mais alto está a definição do projeto. Depois de refinado passa-se as definições das tarefas, depois recursos, custos e finalmente o resultado das tarefas. Após definidas as etapas do projeto e o sequenciamento das mesmas pode-se estimar uma duração total do projeto. Para apresentar a interdependência entre as tarefas a principal ferramenta adotada é o diagrama PERT. Project Evaluation and Review Technique – PERT : “Representação gráfica que consiste em uma rede onde as atividades e eventos do projeto são apresentados na forma de um grafo direcional (FIALHO, 1988) ponderado onde os vértices são os eventos e as arestas as atividades cujos pesos representam suas durações. O caminho máximo entre a fonte (vértice que representa o início do projeto) e o sumidouro (vértice que representa o término do projeto) indica o caminho crítico cujo comprimento ponderado indica o tempo mínimo no qual o projeto pode ser executado.” Depois do sequenciamento e verificação das interdependências entre as tarefas é possível definir um cronograma. O diagrama de Gantt é a ferramenta mais utilizada para apresentação do mesmo. Diagrama de Gantt: “Representação gráfica que apresenta o cronograma na forma de um gráfico de barras horizontais, onde o eixo horizontal representa o tempo e o vertical as tarefas.” Após o estudo bibliográfico e análise das necessidades das micro e pequenas empresas foram levantados os requisitos para o sistema. A seguir alguns deles: O Sistema deverá suportar o processo de planejamento de um Projeto de Software: caracterização da empresa, caracterização e metas do Projeto, Work Breakdown Structure (WBS), seleção de ferramentas e modelos técnicos , estimativa de esforço e duração utilizando Pert Chart e Gantt Chart, alocação de Pessoal, estimativa de Custos, gerar Relatórios, deverá ser apresentado como uma aplicação passo-a-passo, de uso intuitivo e de fácil aprendizado, não exigindo conhecimentos específicos. Na fase de pesquisa do estado da arte foram estudados alguns softwares existentes de gerência de projetos e depois comparados com os requisitos levantados para o sistema desejado. Dentre as categorias de softwares encontrados pode-se citar: softwares muito completos, porém muito caros e complexos para mirco e pequenas empresas, softwares para projetos mais genéricos que não atendem as necessidades dos projetos de software, softwares que abrangem apenas parte do processo de desenvolvimento de software. Os softwares analisados foram: Microsoft Project, Primavera Project Planner, Delegator e Bliner. Após a análise conclui-se que nenhum software existente atende todos os requisitos levantados para o sistema de planejamento de projetos de software para micro e pequenas empresas. Durante o processo de planejamento do projeto de software foi necessário encontrar um modelo de processos de software. Os modelos de processos de software mais conhecidos são direcionados para as grandes empresas. Modelos sofisticados e complexos demais para a realidade das micro e pequenas empresas de software que normalmente optam em não utilizá-los. O processo de planejamento adotado foi o modelo proposto por Gresse von Wangenheim, no Working Paper “Planejamento de Projetos de Software em Micro Empresas”. Os processos essenciais de planejamento incluem: caracterização da empresa, caracterização do projeto e dos objetivos, definição das tarefas, definir dependências entre tarefas, alocação de pessoal, estimativa de esforço, estimativa de cronograma e orçamento dos custos. Após o levantamento de requisitos, análise de softwares relacionados existentes e estudo dos processos de planejamento, iniciou-se o desenvolvimento da ferramenta SisGerente. Foi desenvolvido utilizando o paradigma de programação orientado à objetos em linguagem Smalltalk. A arquitetura se divide em três níveis: sistemas de arquivos, classes de bases e interfaces. Como forma de exemplificação foi exibido um caso prático de aplicação do sistema. Os principais passos citados durante a utilização do sistema foram: definição dos dados gerais (nome, área de atuação) da empresa, configuração do modelo WBS, cadastro dos funcionários juntamente com os horários de trabalho de cada um, criação de um projeto, definição das tarefas e suas dependências, exibição do diagrama Pert, alocação de pessoal e estimativa de esforço, visualização do caminho crítico, visualização do cronograma do projeto, estimativa de custo, esforço e duração. Concluiu-se que o software tem potencial para auxiliar as micro e pequenas empresas a diminuírem vários de seus problemas. Foram levantadas algumas recomendações futuras como: representações gráficas de Gantt Chart, módulos para trabalhar com todo processo de controle e monitoria de projetos e ainda acompanhar a utilização do SisGerente em algumas empresas e verificar sua influencia na gerencia de projetos. Através deste trabalho foi possível compreender alguns conceitos relacionados a gerência de projetos e também quanto ao estado da arte dos softwares existentes. Foi enfatizada a importância das atividades de gerencia e os problemas existentes pela falta das mesmas. Está claramente descrito o processo de desenvolvimento do software desde análise de requisitos, estudo de modelos de gerência, projeto do software, implementação e finalmente a exemplificação de um caso prático de uso. Bibliografia Savi, Rafael. Desenvolvimento de um Sistema para Planejamento de Projetos de Software em Micro e Pequenas Empresas. 2002. Trabalho de conclusão de curso Ciências da Computação - Universidade Federal de Santa Catarina. FIALHO, Lúcio Leão. Tasker: Sistema de Coordenação de Equipes. 1998. 128f.. Dissertação (Mestrado em Ciências) - Engenharia de Sistemas e Computação – UFRJ. Rio de Janeiro.