FERRAMENTA DE ALOCAÇÃO DE RECURSOS HUMANOS EM PROJETOS Richard Vieira Gobo <[email protected]> Christiano Cadoná <[email protected]> – Orientador Universidade Luterana do Brasil (ULBRA) – Curso de Ciência da Computação– Campus Canoas Av. Farroupilha, 8.601 – Bairro São José – CEP 92425-900 – Canoas – RS 30 de novembro 2011 RESUMO Este artigo descreve um estudo e o desenvolvimento de uma ferramenta sobre recomendação de recursos humanos relacionados a gerenciamento de projetos, além de implementar uma técnica de RBC (raciocínio baseado em casos) na alocação de recursos humanos. O objetivo principal é auxiliar o gerente de projetos a alocar os recursos humanos apropriados a tarefas de um projeto. Palavras-chave: RBC, Gerenciamento de projetos, recomendação, recursos humanos. ABSTRACT Title: “Alocation Tool of human resourse’s in projects.” This article describes a study and development of a tool on the recommendation to human resource related in management projects and implement a technical CBR (case-based reasoning) in the allocation of human resources. The main objective is to assist the project manager to allocate appropriate resources to tasks in a project. Key-words: CBR, Project management, alocation,humans resources. 1 INTRODUÇÃO A área de gerenciamento de projetos tem adquirido maior espaço nas organizações, tendo em vista a necessidade de um melhor planejamento de controle de recursos humanos e das atividades. Podendo assim determinar o crescimento do negócio através da utilização de ferramentas computacionais que auxiliam a administração das tarefas a serem desenvolvidas no projeto. Utilizando estas informações como base, pode-se identificar, na gestão de projetos, não apenas um melhor planejamento das tarefas, mas também uma visão ampla dos processos. Assim pode ser visto o desempenho e qualidade no gerenciamento das atividades do projeto direcionado aos recursos humanos, desempenhando as tarefas satisfatoriamente. Técnicas de IA (inteligência artificial) estão sendo aplicadas em vários contextos, resultando em aplicações diferenciadas, pois subsidiam as soluções computacionais através de seus algoritmos, proporcionando recursos ou processos inteligentes. A técnica de RBC (raciocínio baseado em casos) é um exemplo de utilização dos dados armazenados, a fim de auxiliar na definição de uma solução para determinado problema. Com base no contexto apresentado, este documento mostra como foi realizada a implementação de um aplicativo que possui as características básicas de uma aplicação de gerenciamento de projetos focado no controle de recursos humanos. Mas também está sendo proposta a utilização de uma base de recursos humanos versus tarefas de projetos cadastradas como subsídio de informação para aplicação de RBC, tendo como resultado esperado, recomendações de recursos humanos para novos projetos. Este trabalho foi estruturado em cinco seções. O segundo capítulo apresenta uma pesquisa relacionada aos principais assuntos que envolvem o tema deste instrumento, como gerenciamento de projetos, alocação de recursos humanos e técnica de IA. No capítulo 3 são detalhadas as principais funcionalidades da ferramenta, apresentando o problema e sua solução, e aplicando essas funcionalidades no desenvolvimento da ferramenta. O capítulo 4 determina a validação e os testes realizados na utilização da ferramenta com as pessoas-chave, determinando o resultado através de um questionário direcionado a especialistas e gerentes de projetos. No capítulo 5 de conclusão, consiste em definir a justificativa do desenvolvimento do trabalho apresentado, determina se os objetivos foram cumpridos e indica o que será realizado em trabalhos futuros. 1 2 REFERENCIAL TEÓRICO Nos subitens está sendo apresentado o referencial teórico tomado como base para o presente estudo. Serão abordados temas relacionados a projetos, bem como seu conceito, suas fases e o ciclo de vida, o gerenciamento e suas áreas de conhecimento: integração, escopo, tempo, qualidade, recursos humanos do projeto, gerência de comunicação, gerência de riscos e aquisições. Também serão comentadas as metodologias de gestão de projetos, como algumas ferramentas de acordo com o PMI (Project Management Institute, Instituto de Gerenciamento de Projetos) e organizações. Finaliza com o detalhamento do processo de raciocínio baseado em casos e exemplifica com o ciclo de desenvolvimento RBC. 2.1 Conceito de projeto De acordo com Maximiano (2008), projeto é uma sequência de atividades com início, meio e fim programado, com o objetivo de gerar um produto único, com certas restrições de orçamento. Vargas (2000) complementa que é um empreendimento não repetitivo, que se destina a um claro objetivo previamente definido, que será conduzido por pessoas dentro de parâmetros pré-definidos de tempo, custo, recursos envolvidos e qualidade. Cleland (2002) acrescenta que um projeto é uma combinação de recursos organizacionais que, colocados juntos, têm o objetivo de criar ou desenvolver algo que ainda não existia, de modo a aperfeiçoar a capacidade de planejamento e a realização de estratégias organizacionais. 2.2 Gerenciamento de Projetos Conforme PMBOK (2004), nesta etapa é efetuada a aplicação de conhecimento, habilidades, ferramentas e técnicas relacionadas às atividades dos projetos, concluindo tarefas e satisfazendo seus requisitos. Para que se entenda melhor o conceito de gerenciamento de projetos devem-se estudar suas áreas de conhecimento, como gerenciamento da integração do projeto, gerenciamento do escopo do projeto, gerenciamento de tempo do projeto, gerenciamento de custos do projeto, gerenciamento da qualidade do projeto, gerenciamento de recursos humanos do projeto e o gerenciamento das comunicações do projeto. O gerenciamento de projetos é um conjunto de técnicas gerenciais que permite que a empresa desenvolva habilidades, incluindo conhecimento e capacidades individuais, destinados ao controle de eventos não repetitivos e únicos dentro de um tempo, custo e qualidade pré-determinados (VARGAS, 2000). O PMBOK (2004) revela que ao final da década de 60, mais precisamente em 1969, em Filadélfia (EUA), surge o PMI, uma organização internacional que tem o objetivo de promover o desenvolvimento da área de gerência de projetos. Para Kerzner (2006), gestão de projetos pode ser definida como o planejamento, programação e controle de uma série de tarefas de forma a atingir seus objetivos com sucesso. Maximiano (2008) afirma que o conceito de gerenciamento de projetos é similar ao conceito das funções do administrador de empresas. De acordo com essa afirmativa, são necessárias tanto as funções do administrador quanto as do gerente de projetos, tais como planejamento, organização, direção e controle, visando o atendimento ou a realização de uma ou várias tarefas, no tempo disponível e com o resultado esperado. Valeriano (2001) complementa, trazendo a evolução do gerenciamento de projetos composta por três períodos, o do gerenciamento empírico, o clássico ou tradicional e o moderno gerenciamento de projeto (MGP). Somente entre as décadas de 1940 e 1950 teve início o gerenciamento tradicional. Trata de projetos estruturados, planejados, executados e controlados, em que os gerentes administram os recursos humanos e os recursos materiais. Tem como característica serem projetos técnicos, com certa complexidade, com custos elevados e prazos de longa duração. É possível verificar que as definições do conceito de gerenciamento de projetos detalhados nesse item têm similaridade. Distinguindo-se pelas características principais de um gerente de projeto, como o desempenho e como a administração de custos e prazos. 2.2.1 Ciclo Vida e as fases de Projetos O ciclo de vida do projeto se resume a uma sequência de atividades, que geralmente são definidas em cinco fases. Estas fases são declaradas como iniciação, planejamento, execução, controle e encerramento. A iniciação é o levantamento das necessidades, um estudo de custos e prazos para determinado cliente. O 2 planejamento é a definição do escopo do projeto. A execução é colocar em prática tudo que foi definido no escopo do projeto. Para o controle o autor traz a vistoria das fases, podendo dar melhorias não especificadas no escopo do projeto, sem alterá-lo. O encerramento é a verificação, se o escopo definido na fase de planejamento, foi executado com êxito, para que o projeto seja encerrado (VALERIANO, 2005). Já para Maximiano (2008), o ciclo de vida de um projeto é composto por fases, cada fase tem início, meio e fim. Cada uma possui resultados próprios e ciclo de vida. Cada tipo de projeto tem um ciclo de vida e um número de fases específicas. O autor ainda coloca que, ao final de cada fase os resultados obtidos passam por uma avaliação, verificando se o projeto continua ou se é interrompido, podendo sofrer algum tipo de reformulação. No guia PMBOK (2004), o ciclo de vida de um projeto é um conjunto de fases, a ser executado. Para se ter maior controle sobre os projetos realizados, as organizações tendem a dividi-los em diversas fases, pois com isso é possível visualizar o que será feito. Em cada fase é realizada uma validação, por parte do cliente e da organização realizadora. Com isso, é possível avançar para a próxima fase. Deve ser especificado em documentos, que todas as tarefas foram concluídas com êxito. Estes documentos podem ser chamados de metodologias de projetos. Isso não se deixa margem a reclamações posteriores por parte do cliente, e permite um alto grau de controle de cada fase do projeto. Esta divisão é determinada pelas necessidades de gerenciamento e controle das empresas envolvidas. 2.2.2 Áreas de conhecimento em gerenciamento de projetos Conforme Vargas (2000) as áreas de conhecimento de gerenciamento de projetos são divididas em grupos de processos integrados. Cada um desses processos de integração, escopo, tempo, custo, qualidade, recursos humanos, comunicação, riscos e aquisições, possuem um detalhamento específico e uma abrangência própria, porém todos estão integrados formando um único ambiente organizacional. Conforme PMBOK (2004), o guia padrão (referência) para gerenciamento de projetos é dividido em áreas de conhecimento, cada uma é contemplada por habilidades, conhecimentos e práticas necessárias para gerenciamento de projetos, conforme Figura 1. • Gerência de Integração do Projeto: segundo Heldman (2006), a área de conhecimento integração do projeto trata da coordenação de todos os aspectos do plano de projeto, e envolve um alto nível de interação. • Gerenciamento do Escopo do Projeto: o PMBOK (2004) apresenta os processos dividindo-se em cinco itens: iniciação, planejamento, definição, verificação de escopo e sistema de controle de alterações do escopo. • Gerenciamento de Tempo do Projeto: a área de conhecimento de gerenciamento de tempo do projeto tem como objetivo, entregar o projeto em um prazo pré-estabelecido. Para isso é desenvolvido a estimativa de duração das atividades do plano do projeto, através da confecção do cronograma de controle e monitoramento de eventuais desvios, diferentes dos previamente estabelecidos (HELDMAN, 2006). • Gerenciamento da Qualidade: para Helman (2006) nesta área de conhecimento é avaliado e monitorado o desempenho geral e os resultados obtidos do projeto. PMBOK (2004) identifica os três principais processos desta área, juntamente com Vargas (2000), como o planejamento, garantia e controle da qualidade. • Gerência de Recursos Humanos do projeto: tem o objetivo em gerenciar as pessoas envolvidas, fazendo com que sejam alocados de maneira eficaz, na sua utilização no projeto. Este plano é aplicável ao gerente de projeto, aos integrantes da equipe e aos clientes. O autor ainda complementa que os projetos são únicos e temporários, e os compara com as equipes de projetos que podem ser únicas. Isso porque uma equipe é designada para cada projeto conforme suas habilidades e competências. (HELDMAN, 2006). Segundo Vargas (2000) os processos desta área de conhecimento são divididos em três, seguindo os padrões do PMBOK: planejamento organizacional, recrutamento de pessoal e desenvolvimento de equipes. Souza (2003) define esta área como uma abordagem de representação da distribuição do conhecimento, habilidades e experiências através da estrutura organizacional. Esses fatores são utilizados na atribuição de 3 posições na organização e papéis no projeto podendo ser definidos da forma descrita abaixo. - Conhecimento: competência adquirida que representa a apropriação de um objeto pelo pensamento, através de definição, percepção clara, apreensão completa e análise. Por exemplo, podem ser determinados conhecimentos sobre um recurso específico ou também um histórico de conhecimentos e níveis sobre um projeto com recursos alocados. - Habilidade: competência que representa a aptidão do recurso humana adquirida, associada a uma atividade ou área de competência específica. Por exemplo, determinar níveis de conhecimento sobre os recursos humanos. - Experiência: competência adquirida através da execução de atividades. Por exemplo, histórico de projetos finalizados para determinados recursos, com tais conhecimentos. • Gerência de Comunicações do projeto - de acordo com Vargas (2000) a comunicação é imprescindível, para garantir que todas as informações desejadas cheguem para os destinatários corretos em tempo hábil, e de maneira correta. • Gerência de Riscos do projeto - Heldman (2006) identifica que os riscos podem representar para o projeto, simultaneamente ameaças e oportunidades. Nesta área de conhecimento é realizada a identificação, análise e planejamento de riscos que podem afetar o projeto. Os riscos são úteis para a identificação de deficiências nos projetos, a fim de melhorar seus desempenhos. • Metodologias de Gestão de Projetos – de acordo com Kerzener (2006), a melhor realidade hoje para as empresas é que elas desenvolvam sua própria metodologia para gestão de projetos. Deve ser realizado um aperfeiçoamento, através de revisões dos principais indicadores de desempenho dos projetos, com opinião dos clientes e atualização das lições aprendidas. Figura 1 – Áreas de conhecimento em gerenciamento de projetos – (PMBOK, 2004) 4 2.3 Ferramentas existentes Segundo Kerzner (2006), a gestão de projetos exige softwares de apoio. Nos dias atuais os gerentes de projeto necessitam de ferramentas para auxiliar no planejamento, ordenação e controle de seus projetos. A seguir, alguns exemplos de sistemas de gerenciamento de sistemas existentes. • Microsoft Project1 é uma eficiente ferramenta de gerenciamento de projeto com a combinação certa de usabilidade, eficiência e flexibilidade, gerenciando projetos com mais eficiência e eficácia. Pode-se ter o controle do trabalho, as agendas e as finanças do projeto, manter as equipes de projeto alinhadas e ser mais produtivo por meio da integração, com programas conhecidos do Microsoft Office. Está disponível a geração avançada de relatórios como Gannt, do planejamento guiado e de ferramentas flexíveis. Além disso, esta ferramenta recalcula rapidamente os cronogramas, e permite ver como as mudanças, em uma parte do projeto, podem afetar os planos como um todo. • OpenProj2 é um programa realmente versátil. Com uma interface simples de usar, o gerenciador de projetos apresenta todas as opções importantes para se realizar uma administração de informações e tarefas a serem cumpridas. A metodologia aplicada é a de diagramas de Gantt, muito usada na atualidade, podendo ser adaptado para metodologias PMBOK (2004), um conjunto de práticas em gerência de projetos. É utilizado como alternativa ao Microsoft Project, sendo que com código aberto, o programa oferece várias opções para a inclusão e administração de todas as atividades correlacionadas ao desenvolvimento das atividades, apresentando os resultados gerados. • Gantt Project3 é um programa criado para agendamento de tarefas de um projeto, em suas diferentes etapas, baseado também no Diagrama de Gantt. Tem como principais vantagens o entendimento fácil, visualização simples de atrasos e escala de tempo bem definida. Existem desvantagens, como por exemplo, a ferramenta torna-se inadequada para projetos muito complexos, dificulta a visualização de dependências, e a descrição de como o projeto reage a alterações. • Open Workbench4 é um aplicativo completo e também totalmente opensource para o gerenciamento de compromissos, projetos e tarefas do cotidiano ou da vida profissional. Com uma interface não muito moderna nem atrativa, é possível que desdenhe das funções do programa, mas as suas funcionalidades são “ocultas” e é preciso certo conhecimento para executar as funções disponíveis. Em breve pesquisa, uma série de aplicações foi analisada a fim de auxiliam os gerentes de projeto no acompanhamento dos processos. Existem diversas diferenças nas ferramentas disponíveis, mas sua qualidade em cada etapa é um fator determinante para diagnosticar as funcionalidades de um aplicativo de gerenciamento de projetos. Quadro 1 – Ferramentas de gerenciamento de projetos Open Workbench Gantt Project Ms Project Open Proj Alocação de agenda Alocação de recursos Agendamento de tarefas Gerência de comunicações Gerência recursos humanos Gerência tempo Gerência de riscos Gerência da qualidade Gerenciamento do escopo Recomendação de recursos humanos 5 Tomando como base a comparação entre as funções das ferramentas de gerenciamento de projetos, apresentada no Quadro 1, observa-se primeiramente que todas as ferramentas listadas possuem as funções de agendamento de tarefas, gerência de tempo e gerência de riscos. Já as funcionalidades de alocação de recursos, gerência de qualidade, gerenciamento de escopo somente o software Gantt Project não possui tais funções. Entretanto nenhuma das ferramentas pesquisadas possui a função de recomendação de recursos. 2.4 Raciocínio Baseado em Casos Segundo Wangenheim (2003) RBC é definido como uma das tecnologias mais importantes e disseminadas, para o desenvolvimento de sistemas baseados em conhecimento, tendo como objetivo uma abordagem para a solução de problemas e para o aprendizado, utilizando como base o histórico de experiências anteriores. Assim (Wangenheim, 2003) determina que os casos de novos problemas sejam resolvidos através da reutilização da solução de um problema anterior, similar com o atual. Esta tecnologia pode ser definida para desenvolver sistemas computacionais inteligentes, voltado a resolver problemas reais em áreas da tecnologia da computação, como por exemplo, a de gerenciamento de projetos. "Com seu enfoque na utilização de experiências, o RBC diferencia-se radicalmente de outras metodologias para o desenvolvimento de programas e sistemas da área de Inteligência Artificial (IA). Ao contrário de enfoques tradicionais para encontrar uma solução para um problema em IA, em que se descreve conhecimento genérico na forma de regras, quadros, roteiros, etc., no RBC é o conhecimento específico, na forma de exemplos concretos de casos, que se encontra no centro do processo de um problema." (WANGENHEIM, 2003 p.2). No RBC é utilizada uma tecnologia orientada a metas e soluções de problemas, no enfoque baseado em casos. Diferentemente dos sistemas tradicionais, que utilizam uma técnica voltada a um sistema orientado a regras. Este raciocínio pode ser aplicável de forma simples e direta a um espectro extremamente grande de problemas e situações reais, baseadas em conhecimento. A partir do comportamento de aprendizado e resolução de problemas humanos, oferece a possibilidade de se modelar e analisar, integrando a capacidade de aprendizado e solução construtiva de problemas (WANGENHEIM, 2003). A aplicação em RBC tem sido usada para a criação de numerosas tecnologias em um ambiente bastante extenso de domínios de aplicação, incluindo análise financeira, controle de processos, planejamento e projetos (WANGENHEIM, 2003). 2.4.1 Ciclo de desenvolvimento RBC Wangenheim (2003) define a tarefa de um sistema de RBC como um tipo de ação para a utilização do sistema, como, por exemplo, diagnóstico, configuração e planejamento. Isto determinará o tipo de problema e solução, bem como a natureza das atividades a serem desenvolvidas pelo solucionador de problemas baseado em casos. Tarefas podem ser classificadas como sintéticas e analíticas. A tarefa sintética tem, como exemplo, a configuração, planejamento e projeto, em que é criada uma nova solução por meio da combinação de soluções prévias. Já a tarefa analítica é a mais utilizada em sistemas comerciais, pois é dedicada à recuperação de casos. A tarefa de classificação tem o objetivo de verificar uma nova situação ou problema em um contexto específico. Em aplicações de classificação, um problema é descrito por meio de um conjunto de sintomas ou observações para a sua solução. Assim o resultado é a seleção de uma ou mais classes, em categorias nas quais o problema poderia ser incluído. Conforme ilustra a Figura 2, o ciclo de vida do raciocínio baseado em casos inicia-se no momento em que existe um novo problema. Este é direcionado para a etapa de recuperação de casos, na qual visa a encontrar um caso ou um conjunto de casos na base de dados para uma possível solução ao problema atual, comparando com os casos já armazenados. Isto significa que este processo tem como finalidade encontrar uma situação já resolvida, que mais se assemelha ao problema atual. A etapa de reuso tem como objetivo reutilizar um caso para resolver o problema, adaptando-o à solução de forma a satisfazer os requisitos da situação atual, aplicando a partir do histórico de casos armazenados. No processo de adaptação dos casos, esta etapa é denominada de revisão, que implica em reconhecer que a solução contida no caso recuperado mais semelhante não é adequada, necessitando adaptar outro caso mais similar na base de casos. O gerente de projetos irá analisar a solução adaptada, podendo assim confirmar a solução, retendo o caso e armazenando-o na base de dados. Quando um problema é resolvido e armazenado, ele 6 é retido e integrado à nova experiência, disponibilizando-a para problemas futuros (WATSON, 1993). Figura 2 – Ciclo de Vida RBC (WANGENHEIM, 2003) A etapa de recuperação de casos citado anteriormente, conforme Wangenheim (2003) tem como objetivo encontrar um caso ou um conjunto de casos armazenados na base que contenha uma solução útil para o problema ou situação atual. Assim, o sistema de RBC é capaz de recuperar o caso descrevendo a solução apropriada ao problema. De acordo com Luger (2004), a similaridade é definida com base em características comuns. Este processo de recuperação de casos inicia com uma descrição de problema e finaliza quando o melhor caso for encontrado. O sistema realiza uma pesquisa na base de dados, verificando se o caso é similar ao novo problema. Para determinar que o caso armazenado na base é similar ou igual ao novo problema, é preciso medir a similaridade entre eles. Para calcular o grau de similaridade, existem técnicas, e a mais simples delas é a recuperação sequencial. Uma de suas principais vantagens é a de não precisar usar o método de indexação e de percorrer todos os casos de forma completa e correta. Outro processo é de recuperação de dois níveis, composta em duas fases, desenvolvida no modelo MAC/FAC (FORBUS, 1991). Em sistemas de classificação baseados em casos, representa-se uma descrição de problema. Uma forma de classificar é verificando se o novo problema é similar a outro, do qual já possui uma determinada classificação. O RBC tenta verificar na categoria, à qual o novo problema pertence, o quanto o novo caso corresponde aos casos armazenados (WANGENHEIM, 2003). Segundo Kolodner (2003), a representação de casos é uma parte de um problema que identifica uma valiosa experiência, e serve como subsídio para tirar boas lições no futuro. Um caso pode ser visto sob dois aspectos: em que se pode ensinar e o contexto no qual se insere. Weber (1997) determina que um caso seja o primeiro problema na modelagem do RBC. São casos que contêm elementos para que a solução do problema proposto seja alcançada. Wangenheim (2003) afirma que, na etapa de indexação, os casos similares encontrados na base de casos para um determinado problema, são determinados como atributos usados para realizar a comparação entre um caso e a situação presente. Esses atributos, utilizados para determinação de casos adequados para comparação, são denotados índices. Já Watson (1993) afirma que sua importância está em otimizar o processo de recuperação de casos, organizando-os numa estrutura específica e caracterizar cada caso através dos seus atributos. Segundo Michie (1994), podem-se utilizar também pesos para indicar níveis de importância 7 diferentes para a identificação de soluções úteis como, por exemplo, o algoritmo de vizinhança, determinando, assim, o maior peso como mais importante. Um exemplo disso é o método de comparar o novo caso com o histórico armazenado no banco de dados, utilizando o algoritmo do vizinho mais próximo. Primeiramente, são definidos atributos, cada atributo com seu peso. Então, é calculada a distância entre o novo caso e os casos da base. Por fim, são apresentados os casos mais parecidos a partir do novo problema (WANGENHEIM, 2003). A Figura 3 mostra a fórmula para encontrar a distância entre o novo caso e o caso da base, onde “q” é o novo caso, “c” é o caso da base, “f” é o atributo, “w” é o peso do atributo e “sim” é a função de similaridade. Figura 3 – Algoritmo de vizinhança (WANGENHEIM, 2003) 3 ALOCAÇÃO DE RECURSOS EM PROJETOS BASEADA EM CASOS Existem duas abordagens básicas para a gerência de recursos humanos: alocação de recursos e nivelamento de recursos. Por alocação de recursos humanos entende-se que cada atividade a ser executada tem a garantia de que possuirá os recursos de que necessita. O nivelamento trata da distribuição adequada do trabalho entre as pessoas de determinada empresa. Já a recomendação de recursos determina o recurso humano que será alocado como o mais apropriado, tendo influência direta no desempenho final do projeto. A área de gerenciamento de projetos necessita de um acompanhamento no controle de recursos humanos para que seja executada da melhor maneira possível. Problemas podem ocorrer em qualquer uma das fases, inclusive na etapa em que são designadas as funcionalidades e ações aos membros de uma equipe de trabalho, denominada alocação de recursos humanos. Existe uma grande preocupação na área de gerenciamento de projetos. Isso é visto através do processo de controle de recursos humanos. As alocações inadequadas podem ocorrer devido a diversos fatores, como é o caso da contratação de um novo gerente de projetos. Este, por não conhecer sua equipe, pode alocar pessoas de maneira equivocada nos projetos. Isto pode ser agravado caso não exista, por parte do gestor de projetos, um controle de seus recursos e de seus conhecimentos relacionados. Desta forma, o trabalho apresenta uma solução para auxiliar no controle de recursos humanos e conhecimentos, vinculados às tarefas de um projeto. Para proporcionar alocações de maneira automatizada, foi implementada uma técnica de RBC com o objetivo de associar recursos humanos de forma inteligente para determinadas tarefas de um projeto. Com o uso dessa técnica, são recomendados recursos humanos a partir de uma base de casos composta por cadastro de recursos, conhecimentos e projetos já concluídos. Após o encerramento do projeto, o gerente de projetos poderá avaliar os recursos humanos alocados, atribuindo conceitos aos conhecimentos alocados. 3.1 Principais funcionalidades Como forma de representar as principais funcionalidades do aplicativo desenvolvido, foi utilizado o diagrama de casos de uso, que pode ser visualizado na Figura 4, apresentando as funções que foram implementadas no sistema. Neste, podem ser salientados casos de uso de alocação e recomendação de recursos humanos, que representam as etapas do ciclo RBC. 8 Figura 4 – Diagrama de casos de uso No caso de uso de inclusão de projetos, da Figura 4, o usuário efetua o cadastro de projetos informando dados como nome, data inicial e final, cliente e o campo observação que pode ser preenchido durante o desenvolvimento da atividade. Este cadastro é necessário para que as tarefas inseridas sejam associadas a um projeto específico. Entendem-se, neste caso, exemplos de conhecimentos de um recurso humano: desenvolvimento Java, desenvolvimento PHP, analista DB, teste de software, análise de requisitos e suporte de software. Já, no caso de uso de cadastro de conhecimentos, são cadastradas informações como nome, área atuação do conhecimento, identificado na Figura 6, e o campo com o nível de conhecimento. Assim, é possível catalogar todos os conhecimentos, sendo este um pré-requisito para posterior amarração entre o recurso e os conhecimentos necessários. No caso de uso de cadastro de recursos humanos, o usuário cadastrará todas as pessoas que podem estar envolvidas nos projetos. Neste cadastro são informados dados como nome, área de atuação e endereço do recurso humano. Neste caso de uso, o usuário também poderá disparar o caso de uso 4. Neste momento será realizado o vínculo entre os conhecimentos e o recurso humano selecionado. Ao criar o relacionamento, o usuário deverá atribuir um conceito ao conhecimento do recurso humano. Através deste cadastro, o especialista e/ou gerente de projetos poderá definir conceitos pré-definidos em percentuais entre zero e 100%. Na inclusão de tarefas, o usuário irá determinar a atividade a ser executada em determinado tempo de um projeto. Poderá ser informado o recurso humano alocado e seus conhecimentos associados. O caso de uso de alocação de recursos tem como funcionalidade principal alocar recursos humanos a uma atividade especificada. Esta alocação poderá ocorrer de forma manual, em que o usuário apenas adiciona o recurso humano, ou utilizando a função de recomendação de recursos humanos, em que a aplicação listará possíveis recursos humanos que melhor representam a execução da atividade, com base no histórico de tarefas já realizadas. Na função de recomendação – utilizada principalmente por quem não têm total conhecimento sobre os recursos disponíveis – o usuário terá apenas a tarefa de selecionar o recurso que melhor representa sua escolha. O caso de uso 8, de avaliação de recursos, tem como objetivo avaliar, após o encerramento da tarefa, através de conceitos, todos os recursos alocados a uma tarefa específica. Esta avaliação, que será realizada por um gerente de projetos, servirá como base para pesquisa de recomendações prevista no caso de uso 7. 9 3.2 Implementação e processo de funcionamento do sistema Para o desenvolvimento do protótipo, foi utilizada a linguagem de programação ADVPL, tecnologia utilizada pelo framework da corporação TOTVS. A partir disso a implementação foi direcionada a uma das importantes áreas de gerenciamento de projetos chamada administração de controle de recursos humanos, com o objetivo de planejar os projetos de forma inteligente. O diferencial desta ferramenta é a recomendação de recursos humanos aos projetos, realizada de maneira automática. Na Figura 5 são representadas as etapas da aplicação, definindo assim o processo de funcionamento da ferramenta. Figura 5 – Processo de funcionamento do sistema O processo inicia-se na etapa 1, composta por inclusão de projetos, cadastro de conhecimentos, cadastro de recursos humanos e inclusão de tarefas de cada projeto. Na etapa de cadastro de projetos, como já relatado anteriormente, são informados dados básicos como nome, data inicial e final, cliente e histórico do projeto. Na rotina de conhecimentos são cadastrados os conhecimentos específicos necessários para realização de um projeto. Como, por exemplo, ter conhecimento na aplicação de teste de caixa preta em um software ou conhecimento na linguagem de programação Java. A Figura 6 apresenta a interface de cadastro de conhecimentos, em que pode ser identificado o nome do conhecimento e sua área de atuação. No exemplo está sendo informado o conhecimento “Desenvolvimento Java”, que está relacionado com a área de “Desenvolvimento”. Figura 6 – Cadastro de conhecimentos No cadastro de recursos humanos deve ser informado, além do nome completo e endereço do recurso, o seu status – que determina se está ativo ou inativo – e as áreas de atuação do recurso, como as áreas selecionadas “Desenvolvimento” e “Analista de sistemas”, representada na Figura 7. Para o cadastro de recurso humano chamado “Richard Gobo”, esta interface possibilitará ao usuário informar o grau de relação existente entre todas as funcionalidades com a mesma área de atuação do recurso humano selecionado, através da funcionalidade de vinculação do recurso humano e os conhecimentos. Este grau de relação será definido por um percentual que o recurso humano tem sobre o conhecimento selecionado. Sendo assim, o nível de habilidade da pessoa, será registrado em conceitos pelo gerente de projetos e pelo especialista do conhecimento vinculado. 10 Figura 7 – Cadastro de recursos humanos Com este processo, são identificadas as competências necessárias para obtenção dos objetivos do projeto e a forma de gerenciar essas competências para alcançar resultados positivos na área de gerenciamento de projetos. Com todos estes dados informados nos respectivos cadastros, as tarefas poderão ser alocadas ao projeto. No caso representado na Figura 8, o gerente de projetos atribuiu ao recurso “Richard Gobo” um conceito de 60% ao conhecimento “Desenvolvimento Java”, e o especialista cadastrou uma nota de 70%. Já para o conhecimento “Desenvolvimento PHP”, ambos atribuíram um conceito de 20% ao nível de habilidade do conhecimento. Figura 8 – Interface de Recurso x conhecimentos Na interface de cadastro de tarefas, conforme Figura 9, é possível incluir tarefas a partir de um projeto já cadastrado. Nesta funcionalidade são preenchidos dados básicos, como nome da tarefa, status (aberto ou encerrado), data de previsão, e data da execução da tarefa. Também existem dois campos em que são inseridos os dias automaticamente, conforme cadastrado nos campos data final e data inicial da previsão e de execução da tarefa. 11 Através da interface de tarefas, na Figura 9 são identificadas as abas de “Recursos”, “Conhecimentos” e “Histórico”, representadas pelos números 1, 2 e 3, respectivamente. Na aba 1 são alocados os recursos humanos a tarefa. Já na tela representada pela aba 2 são informados os conhecimentos a serem aplicados na tarefa, juntamente com o seu nível de habilidade. Na aba de histórico, podem ser registradas as observações da tarefa, juntamente com a data das atividades realizadas. Figura 9 – Interface de cadastro de tarefas Na interface de cadastro de tarefas, representada pela Figura 9, os conhecimentos podem ser alocados à tarefa. Através da aba 2, serão listados todos os conhecimentos cadastrados, em que o usuário pode informar o nível de relação destes conhecimentos com a tarefa a ser executada, dentro das opções apresentadas a seguir. • Não aplicado – não possui nenhuma habilidade no conhecimento. • Básico – possui o mínimo de habilidade no conhecimento. • Intermediário – possui habilidade abrangente no conhecimento, mas não possui domínio pleno sobre a atividade. • Avançado – domínio total sobre o conhecimento. A segunda etapa do processo de funcionamento do sistema, representada na Figura 5, consiste em alocar recursos humanos ao sistema. Para a realização desta funcionalidade, o usuário poderá optar simplesmente em selecionar um recurso humano disponível, alocando-o para a tarefa selecionada (ao pressionar o botão “+ Recurso”, identificado pelo número 1.1). Ou então, direcionar para a interface de recomendação de recurso humano (a partir do botão representado pelo item 1.2 da Figura 9), que irá sugerir o recurso humano ou os recursos humanos disponíveis mais apropriados para tarefa selecionada, tendo como base a aplicação do algoritmo do vizinho mais próximo, a partir do histórico de atividades já realizadas. Através também desta aba, também será listada a relação de recursos humanos vinculados à tarefa. Neste caso, foram alocados para a tarefa “Rotina de Cadastro de clientes”, os recursos humanos “Lucas Russl” e “Richard Gobo”, conforme identificado no conteúdo da aba 1. 3.2.1 Recomendação de Recurso Humano Conforme já mencionado, a alocação de recurso humano através da recomendação consiste em adicionar pessoas às tarefas de um projeto, de modo que sejam selecionadas as mais adequadas à atividade que está sendo realizada. A representação do processo de seleção de uma recomendação terá uma sequência de etapas a serem seguidas pelo usuário. A Figura 10 apresenta graficamente as cinco etapas do fluxo definido. 12 Estas etapas também foram codificadas de forma que o usuário obtenha uma interface (estilo wizard) interativa, possibilitando a navegabilidade entre as etapas estabelecidas. Figura 10 – Fluxo de funcionamento da aplicação Conforme representado na Figura 10, são identificadas as cinco etapas do fluxo de funcionamento do sistema. Na primeira etapa, o usuário selecionará os conhecimentos do recurso humano que deseja alocar, informando o nível de habilidade que a tarefa necessita. A Figura 11 apresenta um exemplo da interface gerada, em que pode ser observada uma relação contendo todos os conhecimentos pré-estabelecidos na ferramenta, juntamente com o nível necessário à realização da atividade. Neste exemplo, apenas o conhecimento “Desenvolvimento Java” foi selecionado. Como os níveis dos demais não foram alterados é atribuído “Não Aplicado”. Figura 11 – Recomendação de recursos humanos (primeira etapa do fluxo) Após serem definidos os níveis desejados, para cada conhecimento necessário na execução da tarefa elaborada, o usuário avança para a segunda etapa do fluxo de funcionamento do processo de recomendação, que tem o objetivo de encontrar os recursos humanos que atendam os requisitos, de forma a listar a recomendação adequada. Na etapa 2, inicialmente, é encontrado um novo problema, que, neste caso, representa todos os conhecimentos selecionados na etapa 1 do fluxo, diferentes de “Não Aplicado”. A cada um dos níveis que definem a existência do problema, foi estabelecido um atributo em forma de valor, determinados entre “0” e “3”. A Tabela 1 representa os atributos definidos para cada nível. Tabela 1 – Novo Problema Atributo Resultado 0 Não aplicado 1 Básico 2 Intermediário 3 Avançado A Figura 11 será utilizada como base para a representação de um problema a ser testado através da recomendação gerada pela ferramenta. Neste caso, para realizar a tarefa, o usuário marcou o nível “Intermediário” para o conhecimento “Desenvolvimento Java”. Os demais conhecimentos foram estabelecidos como “Não Aplicado”. Desta forma, o conhecimento “Desenvolvimento Java” foi relacionado ao atributo “2”, os demais, ao atributo “0”. Especialistas e gerentes de projetos associam níveis aos conhecimentos de um recurso humano. Antes do sistema aplicar a fórmula da similaridade, esses níveis recebem pesos diferenciados de cada usuário. O peso 13 maior cabe ao gerente de projetos, que avalia diretamente no resultado da alocação do recurso humano – sendo um atributo com um nível de maior relevância – enquanto o especialista conhece apenas as habilidades humanas. A Tabela 2 representa os percentuais (valores ou conceitos) que foram estabelecidos para atribuição dos pesos a cada um dos níveis cadastrados, como “Não aplicado”, “Básico”, “Intermediário” e “Avançado”. No exemplo de recomendação, o nível que foi selecionado como “Intermediário” na primeira etapa do fluxo representam pesos de 2 e 3, atribuídos pelo especialista e pelo gerente de projetos, respectivamente. Especialista Gerente de Projetos Tabela 2 – Representação de Casos Valores Peso Resultado 0% - 10% 0 Não aplicado 20% - 40% 1 Básico 50% - 70% 2 Intermediário 80% - 100% 3 Avançado 0% - 10% 0 Não aplicado 2 Básico 20% - 40% 50% - 70% 3 Intermediário 80% - 100% 4 Avançado Na segunda etapa do fluxo de funcionamento da recomendação, pode ser aplicado o algoritmo do vizinho mais próximo. Por exemplo, ao aplicar a fórmula da similaridade a partir do nível selecionado na primeira etapa, é feita uma comparação entre o novo problema, nível “Intermediário”, com o caso armazenado na tabela de recursos versus tarefas. Assim a ferramenta apresenta quatro sugestões de respostas na seleção dos recursos humanos na recomendação. Na 1a sugestão, conforme Figura 12, serão selecionados os recursos humanos, preenchidos pelo gerente de projetos e pelo especialista na rotina “Recurso x conhecimentos”, conforme a Tabela 2 de representação de casos. A partir do conhecimento selecionado e de seu respectivo nível, foi recomendado o recurso humano mais apropriado, realizando somente uma comparação entre o novo problema e o cadastro efetuado na interface. Resultando na seleção os recursos “Lucas Russl”, “Richard Gobo” e “André”. No 2o tipo de recomendação de recursos humanos, é aplicado o algoritmo de vizinhança, levando em consideração apenas as tarefas de projetos com status definidos como “Encerrado”. Os recursos humanos recomendados são classificados em ranking, listando apenas os que, após a aplicação do algoritmo de similaridade, obtiveram resultado entre zero e 2. O caso que apresentar o resultado mais próximo de zero será denominado como o mais apropriado para a recomendação do recurso humano. Com base nisto, são desconsiderados os casos que geraram resultados maiores que 2. Neste caso, três recursos humanos foram listados, “Richard Gobo”, “Rafael” e “Lucas Russl”. Já na 3a sugestão, além de ser aplicada a fórmula de similaridade, foram selecionados os recursos humanos com a média de conceitos, classificados através da média em percentual de conceitos. No exemplo da Figura 12 foram recomendados os recursos humanos, “Lucas Russl” e “Richard Gobo”. No 4o tipo de recomendação de recursos humanos, denominado híbrido, são gerados somente os recursos humanos relacionados em todos os itens de sugestão de recomendação 1, 2 e 3. Dessa maneira, os recursos “Lucas Russl” e “Richard Gobo” foram recomendados. A fim de melhor representar a funcionalidade de recomendação de recursos, será utilizado como base um exemplo de seleção de determinado recurso humano. Neste exemplo, o escolhido foi “Richard Gobo”. No Quadro 2, representa-se o histórico de informações armazenadas na base de casos, relativa ao recurso humano. Foram informados 8 itens de tarefas de projetos já concluídas, com seus respectivos conhecimentos e conceitos. Quadro 2 – Representação de casos de exemplo de um recurso humano selecionado Itens Projeto Tarefa Conhecimento Conceito 1 001 101 Desenvolvimento Java 60% 2 001 102 Desenvolvimento PHP 80% 3 003 103 Análise de sistemas 60% 4 003 104 Desenvolvimento PHP 30% 5 003 105 Análise de sistemas 40% 14 Itens 6 7 8 Projeto 006 007 008 Tarefa 106 109 111 Conhecimento Desenvolvimento PHP Análise de sistemas Desenvolvimento Java Conceito 60% 50% 80% Um exemplo do motivo pelo qual o recurso humano “Richard Gobo” foi listado, a partir da interface de recomendação de recursos humanos, é representado no Quadro 2. Esta seleção inicia-se na primeira interface de recomendação de recursos, na qual foi selecionado apenas o conhecimento “Desenvolvimento Java” com seu nível de conhecimento definido como “Intermediário”, representado pela Figura 11. No momento da execução do algoritmo do vizinho mais próximo foram ignoradas, primeiramente, todos os cadastros armazenados no banco de dados diferentes do conhecimento selecionado, conforme identificado nos itens de 2 a 7. Assim, foram aplicados como base para o cálculo os itens 1 e 8, armazenados como conhecimento “Desenvolvimento Java”, em diferentes projetos e tarefas já finalizadas. Outro atributo utilizado como parâmetro do algoritmo é o nível do conhecimento que neste caso foi atribuído com conceitos de 100% e 90%. Após a aplicação da fórmula do vizinho mais próximo, comparando o novo problema (definido como de nível “Intermediário” da Tabela 1) com o caso armazenado (representado na Tabela 2 e Quadro 2), constata-se, que o conceito armazenado no banco de dados é similar ao novo problema, resultando em uma recomendação apropriada. Como, em projetos finalizados, apenas o gerente de projetos pode avaliar os recursos humanos e atribuir conceitos, este caso recebeu peso 3 conforme os atributos selecionados, representado pela Tabela 2. Com a aplicação da fórmula da Figura 3, foi gerado um grau de similaridade com resultado igual a zero. Assim, o caso foi considerado como o mais próximo ao ideal para o problema associado. Durante a seleção de recursos humanos no processo de recomendação representado na 3a etapa, o usuário irá decidir qual recurso humano deseja alocar à tarefa. Assim, o usuário poderá alocar os recursos humanos e conhecimentos à tarefa de um projeto, identificado pela 4a etapa, originado pela recomendação automática de recursos humanos. Neste caso, o usuário preferiu alocar apenas os recursos humanos “Lucas Russl” e “Richard Gobo”, identificados na Figura 12. 15 1 2 3 4 Figura 12 – Interface de recomendação de recursos humanos 3.2.2 Avaliação de recurso humano Após a finalização de uma tarefa de um projeto, os recursos humanos alocados podem ser avaliados por um gerente de projetos, que atribuirá conceitos para os conhecimentos do respectivo recurso. Neste caso, o recurso humano “Richard Gobo”, que tinha sido alocado a uma tarefa, foi avaliado pelo usuário com um conceito de 70% para o conhecimento “Desenvolvimento Java”, conforme Figura 13. Esta função é representada pela etapa de revisão e retenção que é identificada pelo item 3 do processo do funcionamento do sistema, da Figura 5. Esta função tem como principal tarefa confirmar se o recurso alocado atende à necessidade, pelo fato de que o gerente de projetos pode determinar o nível de habilidade de um recurso através de um conceito. Conclui-se que, no caso da avaliação ser um conceito positivo, é efetuada uma nova retenção de informação. 16 Figura 13 – Avaliação de recursos humanos alocados 4 VALIDAÇÃO DA FERRAMENTA A partir da aplicação de um questionário de avaliação da ferramenta, foram gerados resultados em cima de respostas efetuadas pelas pessoas-chave, representadas por especialistas e gerentes de projetos. Dessa maneira, os usuários tiveram acesso ao software de recomendação de recursos humanos entre três e cinco dias. Isto foi necessário para que fossem realizados os devidos testes na ferramenta, obtendo uma opinião sobre as funcionalidades aplicadas no sistema. Estes usuários, especialistas e gerentes de projetos, foram escolhidos conforme seu nível de experiência, possuindo no mínimo quatro anos de atuação na área de gerenciamento de projetos. Desempenham seu trabalho na empresa TOTVS, que possui uma base com mais de 500 clientes ativos em diferentes segmentos, vinculados a projetos em aberto. No questionário, foram aplicadas perguntas sobre os recursos oferecidos pelo sistema, como por exemplo, usabilidade eficiente, interface amigável, gerência de recursos humanos, função de recomendação de recursos (se é eficiente), funções de gestão de projetos (se foram inseridas) e interação entre as funcionalidades. Através destas questões, o usuário deveria dizer se concorda plenamente, parcialmente, se está indeciso ou se não concorda. Com base nestas informações, a questão 1, como identificado na Figura 15, refere se o produto avaliado é fácil de usar, além de ser eficaz e eficiente. Já o número 2 identifica se, ao operar na interface, possui comandos intuitivos e visuais caprichados, além de apresentar características semelhantes às de um ambiente a que o usuário alvo já esteja acostumado. Nos itens de 3 a 5 são representadas as funcionalidades da ferramenta na área de gerenciamento de projetos. Na gerência de recursos é definido como objetivo o gerenciamento das pessoas envolvidas, fazendo com que os recursos humanos sejam alocados no projeto de maneira eficaz. No item 4 é apresentada a funcionalidade principal de recomendação de recursos humanos, na qual se referencia se esta função atingiu o objetivo da implementação. Nesta funcionalidade é verificado se este módulo listou os recursos humanos apropriados de maneira automática, através do algoritmo do vizinho mais próximo. Já o item 5, avalia se as funções gerais de gestão de projetos foram aplicadas ao sistema, como por exemplo, cadastro de projetos, tarefas e recursos humanos. Assim, com estes resultados, como representado pela Figura 15, pode-se concluir que a ferramenta atendeu aos requisitos em todas as funções. Também indica o que foi avaliado em cada funcionalidade do sistema, destacando as funções de recomendação de recursos humanos e gerência de recursos humanos que atingiram entre 80% e 100% em nível de aceitação plena dos usuários, observada na cor azul escuro. As funcionalidades mesclaram avaliações, concordando de forma plena ou parcialmente. Nenhuma funcionalidade foi avaliada negativamente. 17 Figura 14 – Representação do resultado da avaliação do software 5 CONCLUSÃO A partir do estudo realizado, pode-se determinar na prática que esta técnica inteligente, raciocínio baseado em casos, tem muito a ser explorada na área de gerenciamento de projetos. O objetivo da ferramenta foi alcançado, tendo em vista que pode auxiliar o usuário a gerenciar os recursos humanos na gestão de projetos. A eficiência da ferramenta foi verificada através da validação realizada pelos especialistas e gerentes de projetos, que possuem um conhecimento abrangente na área. Esta constatação veio através de resultados gerados pelo questionário de avaliação do software desenvolvido, respondido pelo usuário-chave. A solução proposta atendeu ao esperado, levando-se em consideração que facilitou a alocação de recursos humanos em projetos, tanto para gerente de projetos com grande experiência quanto para usuários sem nenhuma experiência. Mesmo que o desenvolvimento principal tenha sido aplicado em apenas uma área do gerenciamento de projetos – o controle de recursos humanos – verificou-se melhor qualidade na gestão de projetos. Também foi requerido menor tempo para a execução da funcionalidade de alocação de recursos humanos às tarefas de um projeto. Em relação a trabalhos futuros, o artigo descrito dará continuidade a um projeto profissional, auxiliando no planejamento das atividades da empresa na área de gerenciamento de recursos humanos. A ferramenta desenvolvida será adequada ao ambiente da empresa. Para isto, deverá ser feita uma análise do histórico da base de dados da empresa, verificando a integridade desses dados (projetos finalizados) e determinando o período de execução do algoritmo. Em relação à melhoria da ferramenta, deve-se aprimorar a funcionalidade de recomendação de recursos humanos, complementada com a utilização de mais um parâmetro como atributo na aplicação do algoritmo do vizinho mais próximo. Através dos campos, compara-se a previsão do número de dias necessários à conclusão da tarefa com o número de dias efetivamente empregados nesta ação. Se a previsão cadastrada for próxima ou igual ao número de dias em que foi finalizada a tarefa, o caso será armazenado e, em recomendação futura, o recurso humano vinculado a ela terá peso maior em relação às demais. 18 REFERÊNCIAS CLELAND, David I. Gerência de projetos, 2002. GANTTPROJECT. Ferramenta Gantt Project. l.com.br/arquivo/ganttproject>, acesso em 1o junho 2011. Disponível em: <http://www.dicas- HELDMAN, Kim. Gerência de projetos: guia para o exame oficial do PMI, 3a ed, 2006. KERZNER, Harold. Gestão de projetos: as melhores práticas. 2a ed. Porto Alegre: Bookman, 2006. KOLODNER, J. L. Case-Based Reasoning. Morgan Kaufmann Pub., Inc. 1993. MAXIMIANO, Antonio Cesar Amaru. Administração de projetos. 3a ed. SÃO PAULO: Atlas, 2008. MICROSOFT, Project. MsProject. Disponível em: <office.microsoft.com/pt-br>, acesso em 1o junho 2011. OPENPROJ. MsProject. Disponível em: < openproj.org/>, acesso em 1o junho 2011. PMBOK, Guia. Um Guia do Conjunto de Conhecimentos em Gerenciamento de Projetos, 3a ed, 2004. VALERIANO, Dalton L. Gerenciamento estratégico e Administração por projetos. São Paulo: Makron, 2001. VALERIANO, Dalton. Moderno gerenciamento de projetos. São Paulo: Prentice Hall, 2005. VARGAS, Ricardo Viana. Gerenciamento de projetos: estabelecendo diferenciais competitivos. Rio de Janeiro: Brasport, 2000. VIEIRA, Marconi Fábio. Gerenciamento de projetos de tecnologia da informação. 2a ed. Rio de Janeiro: Campus/Elsevier, 2007. WANGENHEIM, Christiane G. WANGENHEIM, Aldo. Raciocínio baseado em casos. Barueri: Manole, 2003. WORKBENCH, Open. Softonic. Work Bench. Disponível em: <http://open-workbench.en.softonic.com/>, acesso em 1o junho 2011. 19