UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO” UNESP – FACULDADE DE CIÊNCIAS ANDRESSA CRISTINA MOUTINHO TEIZEN PROJETARE: Sistema Integrado de Gestão de Tarefas e Projetos BAURU – SP 2019 Andressa Cristina Moutinho Teizen PROJETARE: Sistema Integrado de Gestão de Tarefas e Projetos Trabalho de Conclusão de Curso apresentado ao Curso de Sistemas de Informação da Universidade Estadual Paulista “Júlio de Mesquita Filho”, como requisito à obtenção do título de Bacharel em Sistemas de Informação. Orientador: Prof. Dr. José Remo Ferreira Brega BAURU – SP 2019 Resumo O projeto desenvolvido e detalhado neste documento surgiu da necessidade de empresas de pequeno porte controlarem suas tarefas e projetos em conjunto. Muitas ferramentas fazem um controle eficaz de tarefas, outras auxiliam no gerenciamento de projetos de forma bem completa, porém, poucas conseguem controlar estas duas frentes com a mesma eficiência, focando nas necessidades de empresas com uma complexidade interna relativamente baixa. Assim, o sistema Projetare busca juntar o controle de tarefas e projetos focando suas funcionalidades nas necessidades de empresas de menor porte e tem como desafio fazê-lo sem que usabilidade do sistema seja afetada pela complexidade do mesmo. Palavras-chave: Gestão de tarefas. Controle de projetos. Empresas. Abstract The project detailed in this document emerged from the small-sized companies need to control their tasks and projects together. Many tools control tasks effectively, others help project management very well, but few can control these two fronts with the same efficiency, focusing on the needs of companies with relatively low internal complexity. Thus, the Projetare system seeks to join tasks and projects control focusing their functionalities on the smaller companies needs and has the challenge of doing so without the system usability being affected by his complexity. Keywords: Task management. Project control. Companies. GLOSSÁRIO Dashboard Dashboards são painéis que mostram métricas e indicadores importantes para alcançar objetivos e metas traçadas de forma visual, facilitando a compreensão das informações geradas (NASCIMENTO, 2017). Kanban Quadro para registrar tarefas e ações por meio de simbologias visuais (ABRANTES, 2019). Backlog O backlog é um indicador de tempo, usado na Gestão da Manutenção. Em meio a tantos outros indicadores, podemos classificar o backlog como o indicador que mede o acúmulo de atividades pendentes de finalização (TELES). GANTT O Gráfico de Gantt ou Diagrama de Gantt, é uma ferramenta visual para controlar o cronograma de um projeto ou de uma programação de produção, um painel com as tarefas que precisam ser realizadas, a relação de precedência entre elas, a pretensão de início, sua duração, responsável e previsão de término (LEÃO, 2019). LISTA DE ABREVIATURAS EPP – Empresas de Pequeno Porte ME – Microempresas MVC – Model-View-Controller LISTA DE ILUSTRAÇÕES Figura 1 - Interface Bitrix24 ....................................................................................... 14 Figura 2 - Interface Redmine ..................................................................................... 16 Figura 3 - Interface Jira ............................................................................................. 17 Figura 4 - Diagrama de Classes ................................................................................ 19 Figura 5 - Diagrama de Atividades - Projeto ............................................................. 20 Figura 6 - Diagrama de Casos de Uso ...................................................................... 21 Figura 7 - Árvore do projeto....................................................................................... 23 Figura 8 - Camadas do padrão Repositório .............................................................. 25 Figura 9 - Implementação do repositório base .......................................................... 26 Figura 10 - Interface do repositório base ................................................................... 27 Figura 11 - Exemplo de injeção de dependência ...................................................... 28 Figura 12 - Classe Startup.cs .................................................................................... 28 Figura 13 - Objetos utilizados no MVC e suas interações ......................................... 30 Figura 14 - Ilustração do papel Modelo e Visão do padrão MVC .............................. 30 Figura 15 - Tela de autenticação ............................................................................... 31 Figura 16 - Tela inicial da Visão de Tarefas .............................................................. 32 Figura 17 - Detalhes de tarefa ................................................................................... 33 Figura 18 - Tela inicial da Visão de Projetos ............................................................. 34 Figura 19 - Detalhes do projeto ................................................................................. 34 Figura 20 - Tela inicial da Visão de Recursos ........................................................... 35 Figura 21 - Lista de tarefas........................................................................................ 36 Figura 22 - Dados exportados da lista de tarefas ...................................................... 37 Figura 23 - Quadro kanban ....................................................................................... 38 Figura 24 - Visualização do Gantt de tarefas ............................................................ 39 LISTA DE TABELAS Tabela 1 - Comparação de Funcionalidades de Gerenciamento de Tarefas ............ 17 Tabela 2 - Comparação de Funcionalidades de Gerenciamento de Projetos ........... 18 Tabela 3 - Papéis dos projetos na estrutura da solução ........................................... 24 Tabela 4 - Comparação de Funcionalidades de Gerenciamento de Tarefas - Projetare .................................................................................................................... 41 Tabela 5 - Comparação de Funcionalidades de Gerenciamento de Projetos - Projetare .................................................................................................................... 42 SUMÁRIO 1. INTRODUÇÃO ...................................................................................................... 11 1.1. Objetivos ............................................................................................................. 12 1.2. Estrutura ............................................................................................................. 12 2. DETALHAMENTO DO PROBLEMA ...................................................................... 13 3. SOLUÇÕES EXISTENTES ................................................................................... 14 3.1. BITRIX24 ............................................................................................................ 14 3.2. Redmine ............................................................................................................. 15 3.3. Jira .. .....................................................................................................................16 3.4. Análise ................................................................................................................ 17 4. ESPECIFICAÇÃO.................................................................................................. 19 4.1. Diagramas .......................................................................................................... 19 5. IMPLEMENTAÇÃO................................................................................................ 23 5.1. Tecnologias utilizadas......................................................................................... 23 5.2. Estrutura do projeto ............................................................................................ 23 5.2.1. Padrão Repositório .......................................................................................... 24 5.2.2. Injeção de dependência .................................................................................. 27 5.2.3. MVC ................................................................................................................ 28 5.3. Visões e uso ....................................................................................................... 30 5.3.1. Visão de Tarefas .............................................................................................. 32 5.3.2. Visão de Projetos ............................................................................................ 33 5.3.3. Visão de Recursos .......................................................................................... 35 5.3.4. Funcionalidades comuns ................................................................................. 35 5.3.5. Kanban ............................................................................................................ 37 5.3.6. Gantt................................................................................................................ 38 5.4. Testes e validações ............................................................................................ 40 6. CONCLUSÃO ........................................................................................................ 41 6.1. Diferenciais ......................................................................................................... 41 6.2. Sugestões para projetos futuros ......................................................................... 42 REFERÊNCIAS ......................................................................................................... 43 11 1. INTRODUÇÃO Atualmente no Brasil, cerca de 98,5% do total de empresas privadas são Microempresas (ME) ou Empresas de Pequeno Porte (EPP) (SEBRAE, 2018), ou seja, a grande maioria das empresas privadas, e foi visando atingir esse público que o projeto descrito neste trabalho foi desenvolvido. Analisando as necessidades dessa faixa empresarial, notou-se que existia uma carência no mercado em relação a ferramentas de gestão de projetos focadas a este público. As ferramentas para este tipo gestão pesquisadas, em sua maioria, dispunham de grande quantidade de recursos para controle e análise de projetos, porém, estas possuíam duas deficiências quando aplicadas aos cenários de Empresas de Pequeno Porte e Microempresas, que eram: • Grande quantidade de recursos não utilizados e grande custo pago por estes recursos. A maior parte dos recursos existentes eram de difícil aplicação para cenários menores, porém, as ferramentas não dispunham pacotes com funcionalidades voltadas para estes diferentes cenários com preços mais acessíveis; • Falta de recursos para a gestão das tarefas dentro dos projetos. Ou seja, as ferramentas de gestão de projetos eram focados no macro gerenciamento, assim, optou-se por alterar o foco das pesquisas e buscar ferramentas de gestão de tarefas, que possuíssem funcionalidades para o controle de projetos, porém, como foco secundário. Neste novo cenário de pesquisa, foram encontradas diversas ferramentas focadas para o público alvo da mesma, ou seja, focadas no microgerenciamento de atividades. Mas mesmo estas ferramentas, deixavam muito a desejar neste controle, pois não integravam estas duas frentes de gerência, apenas dispunham de pequenas funcionalidades para a manutenção de projetos e focavam a maior parte de suas funcionalidades e relatórios nas tarefas em si. Foi então que decidiu-se desenvolver o Projetare e este trabalho destina- se a descrever a implementação deste software cujo objetivo é integrar a gestão de projetos e o controle de tarefas, focando suas funcionalidades nas necessidades de ME e EPP, que são empresas com recursos mais limitados e que de maneira geral 12 não possuem usuários especialistas para extrair informações complexas das ferramentas. Logo, o principal desafio deste trabalho foi integrar estas duas frentes de gestão sem se tornar superficial em nenhuma delas e sem prejudicar a usabilidade do sistema, mantendo as interfaces do mesmo simples e intuitivas e dispondo de funcionalidades direcionadas ao perfil do usuário conectado. 1.1. Objetivos O objetivo da elaboração deste sistema foi integrar a gestão de projetos e o controle das tarefas destes projetos, com uma interface simples e com funcionalidades voltadas às necessidades de empresas de menor porte. 1.2. Estrutura Este documento está dividido em capítulos. No Capítulo 2, está detalhado o problema que envolve os objetivos do sistema. O Capítulo 3 apresenta as soluções já existentes no mercado para o problema abordado. No Capítulo 4, estão descritas todas as especificações do sistema desenvolvido. No Capítulo 5, apresenta-se a implementação e o funcionamento do projeto desenvolvido. No Capítulo 6 estão relacionadas as conclusões do trabalho quanto ao alcance dos objetivos e, por último, as referências utilizadas. 13 2. DETALHAMENTO DO PROBLEMA Hoje em dia, no Brasil, a grande maioria das empresas são microempresas ou de pequeno porte. Estas buscam soluções para atualizar e auxiliar no crescimento dos negócios que caibam em seus orçamentos enxutos. Uma necessidade das mesmas é a de controlar suas tarefas e projetos, internos e externos, para assim organizar o cronograma interno e entregar as demandas de seus clientes dentro do prazo. Para atender o cenário dessas empresas, a ferramenta deve retornar informações sobre o negócio, tais como custos e duração dos projetos, quantidade de tarefas, dentre outros dados que possibilitem a estas promover melhorias contínuas em seus processos. Além disso, é importante que a ferramenta abranja diferentes níveis da organização, para que não sejam necessárias vários sistemas para se atingir os objetivos, o que acaba sendo ineficaz e custoso, pois é necessário integrar estas para se atingir o objetivo final de se controlar com eficiência tarefas e projetos em conjunto. 14 3. SOLUÇÕES EXISTENTES Neste capítulo serão abordados três sistemas que possuem funcionalidades parecidas com o sistema desenvolvido. São estes BITRIX24, Redmine e Jira, cujas principais características estão apresentadas nas seções 3.1, 3.2 e 3.3, respectivamente. A seção 3.4 apresenta a análise e comparação destas ferramentas. 3.1. BITRIX24 O BITRIX24 (Bitrix24, 2019) é uma ferramenta online de gerenciamento de tarefas e projetos em conjunto com a gestão de clientes. Ela possibilita a criação de tarefas em um backlog e o controle do andamento das mesmas em um quadro Kanban ou através de um Gantt. Também permite o rastreio do tempo de execução das tarefas e a abertura de tarefas de fonte externa (chamados). O BITRIX24 possui relatórios customizados do andamento das tarefas e um dashboard com gráficos e estatísticas das mesmas. Porém, a ferramenta é um pouco limitada no gerenciamento de projetos e sua interface é confusa, como é possível observar na Figura 1, pois dispõe muitas informações ao mesmo tempo. Ela não possui uma visão Gantt por projetos, além de não possibilitar a edição das informações dispostas neste. A ferramenta também não disponibiliza uma visualização das tarefas por recurso. Figura 1 - Interface Bitrix24 Fonte: BITRIX24, 2019 15 3.2. Redmine O Redmine (Redmine, 2019) é uma ferramenta de controle de tarefas com código aberto e com a possibilidade de se vincular componentes que agregam funções ao sistema. Nele pode-se cadastrar tarefas em um backlog ou em um projeto e dentro das tarefas possui diversas funcionalidades que facilitam o controle destas, tais como: possibilidade de inclusão de checklists no corpo da tarefa, controle do tempo real gasto na execução dela, anexo de arquivos, dentre outros. Além disso, no Redmine pode-se separar as tarefas em pacotes de entregas, facilitando o gerenciamento de pacotes pré definidos. Permite também definir campos personalizados para as tarefas, possibilitando a personalização desta para atender ao universo de quem a utiliza, e disponibiliza a visualização destas tarefas em quadros kanban. Porém, o Redmine tem poucas ferramentas para o gerenciamento de projetos, o mesmo possibilita a visualização do encadeamento de projetos com o Gantt, porém o gerenciamento desse encadeamento não pode ser feito pela visão e não há automatização de estimativas de entrega das tarefas, o que dificulta o gerenciamento de projetos. A ferramenta também não possui uma visualização de cronograma de recursos e não possibilita a divisão da execução de uma tarefa entre outros recursos. O foco do Redmine é disponibilizar o máximo possível de recursos para que, à partir de algumas configurações, possa atender a vários tipos de demanda diferentes, com isso a usabilidade do sistema fica afetada, como pode ser visto na Figura 2, onde a tela de inclusão de tarefas ocupa um espaço grande e desnecessário, pois assim, pode-se configurar os campos exibidos. Outro problema é que, por ser OpenSource e componentizado por diferentes fornecedores, as interfaces não seguem um padrão visual, o que também prejudica a usabilidade. 16 Figura 2 - Interface Redmine Fonte: Elaborado pelo autor 3.3. Jira O Jira (JIRA, 2019) é uma ferramenta de gerenciamento de tarefas e projetos componentizada, ou seja, ela possui um núcleo principal de funcionalidades, mas disponibiliza por valores a parte outras funções. Esta possui um interface simples, como é possível visualizar na Figura 3, e nela é possível a criação de tarefas em backlogs, com diversos recursos, como rastreio do tempo, inclusão de anexos, campos personalizados. Permite também a visualização de tarefas e projetos em Gantt, bem como a manutenção destes à partir dessa visualização. Porém, suas funcionalidades estão distribuídas entre seus componentes e estes são vistos de maneira secundária. Assim, algumas funções importantes como o rastreio do tempo, não recebem o devido foco, dificultando o uso destes. 17 Figura 3 - Interface Jira Fonte: JIRA, 2019 3.4. Análise Os três sistemas analisados possuem diversas funcionalidades voltadas para o controle de tarefas, mas poucas para o gerenciamento de projetos e principalmente dos recursos alocados nestes. O Redmine e o Bitrix24 pecam muito na interface, já o Jira, possui uma interface limpa em seu núcleo, mas quando se tratam de funcionalidades fora desse núcleo, a usabilidade fica prejudicada. Na Tabela 1 é possível se comparar as funcionalidades de gerenciamento de tarefas das três ferramentas e na Tabela 2 as funcionalidades de gerenciamento de projeto. Tabela 1 - Comparação de Funcionalidades de Gerenciamento de Tarefas KANBAN BACKLOG CHECKLIST RASTREIO TEMPO BITRIX24 JIRA REDMINE Fonte: Elaborado pelo autor 18 Tabela 2 - Comparação de Funcionalidades de Gerenciamento de Projetos GANTT CRONOGRAMA RECURSOS MÚLTIPLOS RECURSOS CUSTOS BITRIX24 JIRA REDMINE Fonte: Elaborado pelo autor À partir destas é possível ver nas tabelas que o Jira é a ferramenta que mais abrange a gestão de tarefas e projetos em conjunto, porém, mesmo as ferramentas possuindo as funcionalidades descritas, muitas não são completas, principalmente o controle das atividades diretamente no quadro Gantt, recurso importante na gestão de projetos. 19 4. ESPECIFICAÇÃO Para melhor ilustrar a modelagem do projeto desenvolvido, seguem os diagramas UML feitos em uma etapa anterior ao desenvolvimento do sistema para nortear o mesmo. 4.1. Diagramas O primeiro diagrama desenvolvido foi o de classes, que demonstra as classes que o sistema contém, suas propriedades e o relacionamento entre estas, conforme pode ser visto na Figura 4 abaixo. Figura 4 - Diagrama de Classes Fonte: Elaborado pelo autor 20 Realizou-se também um diagrama de atividades do sistema (Figura 5), que detalha a vida útil de um projeto na ferramenta, desde sua criação até o retorno de custo que este gera. Figura 5 - Diagrama de Atividades - Projeto Fonte: Elaborado pelo autor 21 Figura 6 - Diagrama de Casos de Uso Fonte: Elaborado pelo autor 22 No diagrama de casos de uso da Figura 6, vê-se quais os atores do sistema (Gerente de Projetos, Gerente de Recursos e Recurso), bem como os acessos às funcionalidades que estes possuem. A partir deste é possível notar que, de maneira geral, as funcionalidades disponíveis no sistema são: ▪ Cálculo de custos de projetos; ▪ Cadastro/edição de projetos; ▪ Visualização do cronograma dos recursos; ▪ Manutenção de usuários do sistema; ▪ Rastreio de tempo; ▪ Criação e edição de tarefas; ▪ Finalização de tarefas; ▪ Visualização e edição de tarefas em quadros kanban; ▪ Visualização e edição de tarefas em gráficos Gantt. 23 5. IMPLEMENTAÇÃO O sistema foi desenvolvido em plataforma Web e é online, para garantir a integridade dos dados exibidos. Além disso, por se tratar de um projeto desenvolvido em parceria com a empresa Gama Soluções em Tecnologia, o mesmo contém o padrão visual da empresa e faz uso de componentes disponibilizados por esta para facilitar a disposição das informações. 5.1. Tecnologias utilizadas O sistema Projetare foi desenvolvido em Asp .Net Core 2.2 (MICROSOFT, 2019a), com uso de HTML 5 (W3C, 2017), Javascript (W3SCHOOLS, 2019), CSS (W3C, 2018) e JQuery (JQUERY, 2019) na programação da sua interface visual. O banco de dados é SQL Server (MICROSOFT, 2019b). Para facilitar e agilizar o desenvolvimento da ferramenta foi acrescido ao projeto uma biblioteca de componentes chamada DevExtreme (DEVEXPRESS, 2019). 5.2. Estrutura do projeto Para a estruturação do sistema, foram criados quatro projetos na solução G2Solution, conforme pode-se ver na Figura 7. Figura 7 - Árvore do projeto Fonte: Elaborado pelo autor 24 Estes projetos foram criados para implementar na solução um padrão de estruturação de projetos chamado de padrão Repositório abordado na seção 5.2.1 e o detalhamento a função de cada um destes nesta estrutura pode ser entendido na Tabela 3. Tabela 3 - Papéis dos projetos na estrutura da solução Projeto Tipo Responsabilidade ApplicationCore Biblioteca de Classes Contém as entidades de domínio e a interface para as operações do banco de dados CommonRepository Biblioteca de Classes Bibliotecas que persistem os dados no Banco de Dados, comuns a todos os projetos que a solução tem ou possa ter HerculesRepository Biblioteca de Classes Bibliotecas que persistem os dados no Banco de Dados, exclusivas do projeto detalhado neste trabalho Hercules MVC Aplicação web com estrutura MVC (descrita na seção 5.2.3) que utiliza as bibliotecas dos projetos anteriores através da Injeção de Dependência (descrito na seção 5.2.2) Fonte: Elaborado pelo autor 5.2.1. Padrão Repositório O conceito de padrões de projeto em computação, foi originado da área de arquitetura e urbanismo, onde o padrão descreve um problema que ocorre repetidas vezes em um contexto, bem como a ideia chave de solução para o 25 problema, de modo que, se utiliza esta solução repetidas vezes, sem a obrigatoriedade de ser implementada da mesma maneira (ALEXANDER,1977). O padrão Repositório é a separação da lógica de acesso a dados da lógica de negócio. Neste padrão, as entidades de domínio e a lógica de acesso a dados se comunicam usando interfaces, e isso esconde os detalhes do acesso a dados da camada de negócios, ou seja, a camada de negócio pode acessar os objetos de dados sem ter conhecimento da arquitetura de acesso a dados correspondente. Na Figura 8 ve-se o fluxo da informação neste padrão. Figura 8 - Camadas do padrão Repositório Fonte: MACORATTI, 2016 Este padrão foi adotado para facilitar a manutenção do sistema e evitar a replicação de código, pois caso posteriormente a solução possua outras interfaces, como um aplicativo, estas poderão utilizar a mesma regra de negócio que a interface web criada. Para facilitar a implementação do padrão Repositório foi criado um repositório base G2Repository, que implementa funções básicas comuns a todos os repositórios da solução, bem como a interface desse repositório, chamada IG2Repository. A implementação e a interface do repositório base da G2Solution, podem ser vistos nas Figuras 9 e 10, respectivamente. 26 Figura 9 - Implementação do repositório base Fonte: Elaborado pelo autor 27 Figura 10 - Interface do repositório base Fonte: Elaborado pelo autor 5.2.2. Injeção de dependência Injeção de Dependência é uma das formas de implementação do padrão de inversão de controle (FOWLER, 2004), usado para evitar o alto nível de acoplamento de código dentro de uma aplicação, pois o alto acoplamento pode prejudicar o desenho de uma arquitetura, tornar a sua manutenção custosa e até mesmo dificultar a sua evolução. Uma dependência é simplesmente um objeto que a sua classe precisa para funcionar. O padrão define que essa dependência deve ser injetada na classe que a utiliza, ou seja, obrigatoriamente ela precisa ser externa a essa classe. No projeto essas dependências são injetadas nos controladores pelo construtor, para que estes possam fazer o acesso aos dados e a execução de regras de negócio. 28 Figura 11 - Exemplo de injeção de dependência Fonte: Elaborado pelo autor Na Figura 11 temos um exemplo da aplicação da injeção de dependência na solução. O controlador KanbanController, que está contido no projeto web, recebe a injeção do repositório kanban, para que possa fazer acesso às regras de negócio contidas neste. A origem desta injeção é configurada na classe Startup.cs do projeto, conforme visto na Figura 12. Figura 12 - Classe Startup.cs Fonte: Elaborado pelo autor 5.2.3. MVC O padrão Model-View-Controller (Modelo-Vista-Controlador) (MVC) possui uma arquitetura que possibilita a divisão do projeto em camadas muito bem definidas. Cada uma delas, o Model, o Controller e a View, executa o que lhe é definido e nada mais do que isso. A comunicação entre interfaces e regras de negócios é definida através de um controlador, e é este controlador que torna possível a separação entre as 29 camadas. Quando um evento é disparado na interface gráfica, como um clique em um botão, a interface se comunica com o controlador que por sua vez se comunica com as regras de negócios. Na Figura 13, é possível visualizar como é realizada a comunicação entre as camadas. 30 Figura 13 - Objetos utilizados no MVC e suas interações Fonte: MICROSOFT, 2014 A utilização deste padrão traz como benefício o isolamento das regras de negócios da lógica de apresentação. Isto possibilita a ligação de várias interfaces gráficas com as mesmas regras de negócio e facilita a manutenção destas interfaces, que tendem a mudar mais rapidamente que a lógica de negócio. Na Figura 14 ve-se de forma simplificada, sem o papel do controlador uma ilustração do potencial do padrão, que possibilita a ligação de múltiplas visões a um mesmo modelo, fornecendo assim, diferentes apresentações. Figura 14 - Ilustração do papel Modelo e Visão do padrão MVC Fonte: GAMMA, 2000 5.3. Visões e uso Visando o objetivo deste trabalho, o sistema Projetare foi separado em três tipos de visualizações de informações, para otimizar e organizar o acesso às funcionalidades disponíveis para cada perfil de usuário, são essas visões: Visão de 31 Tarefas, Visão de Projetos e Visão de Recursos. Cada perfil de usuário está vinculado a uma visão diferente, cada qual focada no seu elemento principal e com facilidades para acessos de funções voltadas para este elemento, porém, com funcionalidades comuns dentre estas. Conforme exemplificado no diagrama de casos de uso deste trabalho, um exemplo destas funções comuns é a criação de tarefas. Assim, dada a importância desta funcionalidade para todos os perfis de usuário, de todas as telas do sistema, independentemente da visão, é possível acessar o botão para realizar esta ação. A separação da visões é feita imediatamente após o usuário realizar a autenticação no sistema, pois é neste momento que o usuário é identificado, bem como seu perfil. Assim, a única tela do sistema comum a todas as visões, é a de autenticação (Figura 15), que faz esta separação. Figura 15 - Tela de autenticação Fonte: Elaborado pelo autor A seguir, são descritas como estas funções estão distribuídas em cada uma das três visões, bem como o elemento principal e o perfil vinculado neste modo de visualização. 32 5.3.1. Visão de Tarefas Esta é a visão mais simples do sistema, focada no usuário com perfil de recurso, o elemento principal desta visão é a tarefa. Tem acesso fácil para criação e manutenção das tarefas do usuário conectado e de outros usuários ligados a este, controle de tempo das atividades exercidas, visualização das tarefas em quadro kanban, gantt e lista de suas pendências. Figura 16 - Tela inicial da Visão de Tarefas Fonte: Elaborado pelo autor Na Figura 16, pode-se ver a tela inicial de um usuário com o perfil de recursos, onde há um foco muito grande no quadro kanban, para criação rápida de tarefas em suas fases corretas e também nas suas tarefas pendentes, para que estas possam facilmente ter prosseguimento. À partir de qualquer um destes dois quadros ou da lista de tarefas completa que pode ser acessada pelo menu lateral esquerdo é possível visualizar os detalhes completos das tarefas. Dentro destes detalhes o usuário tem acesso ao controle de tempo, podendo iniciar a execução de uma tarefa, pausar e finalizar de maneira fácil. Após iniciada, a pausa ou finalização da contagem de tempo pode ser executada em qualquer tela do Projetare, pois um link é disposto na barra superior deste. 33 O detalhe das tarefas, bem como o controle de tempo das mesmas, conforme mostra a Figura 17 abaixo, estão dispostos de maneira a se ter um rápido acesso. Figura 17 - Detalhes de tarefa Fonte: Elaborado pelo autor 5.3.2. Visão de Projetos Nesta visão o elemento principal é o projeto e assim o perfil vinculado a ela é o de gerente de projetos. No dashboard desta visão o sistema dispõe de indicadores de custos e andamento dos projetos no mês, bem como um gráfico Gantt que demonstra o progresso individual de cada um destes em aberto. Além disso, esta visão dispõe de uma página de detalhes do projeto onde se pode ver o custo estimado, o custo efetivo e outros indicativos importantes do progresso individual do projeto selecionado, conforme pode ser visto na Figura 18. 34 Figura 18 - Tela inicial da Visão de Projetos Fonte: Elaborado pelo autor Esta visão também possui acesso ao cadastro de projetos e ao detalhamento das informações de cada um dos projetos em andamento, conforme é possível ver na Figura 19. Figura 19 - Detalhes do projeto Fonte: Elaborado pelo autor 35 5.3.3. Visão de Recursos Nesta, o foco é o recurso e a gestão deste recurso. Assim, o perfil vinculado a ela é o de gerente de recursos. No dashboard do perfil de gerente de recursos o elemento principal é o cronograma dos recursos dos sistema, além de determinados indicadores sobre o andamento dos projetos em que estes estão vinculados, conforme mostra a Figura 20. Figura 20 - Tela inicial da Visão de Recursos Fonte: Elaborado pelo autor 5.3.4. Funcionalidades comuns Conforme já citado nesta monografia, as visões do Projetare possuem funcionalidades em comum, como: • Inclusão de tarefas, que pode ser feita através de qualquer página do sistema; • Visão da listagem de tarefas, com recursos como filtro, ordenação, agrupamento; • Exportação de dados das tarefas para um arquivo de Excel (escolheu-se este formato, por se tratar de um dos formatos mais aceitos entre sistemas e devido a sua facilidade de customização), para que estas tarefas possam ser importadas em outras 36 plataformas, gerando a possibilidade de se integrar o sistema com outras soluções, para atender necessidades que as empresas venham a ter de integrações, sem a necessidade de se gerar custos para estas. Figura 21 - Lista de tarefas Fonte: Elaborado pelo autor Na Figura 21 ve-se a lista de tarefas agrupadas por projeto, filtradas por tipo e ordenada por código, para exemplificar as funcionalidades que esta dispõe e o seu potencial de configuração, adaptável a diversos tipos de empresa focando as informações mais importantes para ela. Na Figura 22, tem-se um exemplo do arquivo gerado na exportação dos dados. 37 Figura 22 - Dados exportados da lista de tarefas Fonte: Elaborado pelo autor 5.3.5. Kanban Um modo de visualização importante do sistema é o quadro kanban, que permite a rápida inclusão e movimentação de tarefas e proporciona, de maneira visual, um retorno sobre o andamento das tarefas programadas, conforme pode-se ver na Figura 23. 38 Figura 23 - Quadro kanban Fonte: Elaborado pelo autor A visualização de tarefas neste quadro está disponível para todos os perfis, porém tem um maior foco na Visão de Tarefas, conforme citado neste trabalho, pois facilita a manutenção das mesmas. 5.3.6. Gantt A visualização de tarefas no gráfico Gantt, trás ao Projetare recursos importantes para a gestão dos projetos, pois à partir dele é possível encadear tarefas, atualizar o progresso destas, bem como alterar e incluir os responsáveis por estas tarefas. Assim, pode-se ver o impacto que cada tarefa tem no ecossistema do projeto e também pode-se ver o impacto destas no cronograma final. Na Figura 24, é possível ver o seu funcionamento no sistema. 39 Figura 24 - Visualização do Gantt de tarefas Fonte: Elaborado pelo autor 40 5.4. Testes e validações Os testes da aplicação foram feitos através da implementação do sistema e uso por parte da empresa Gama Soluções em Tecnologia, que se encaixa no perfil do público-alvo do sistema e que foi responsável por validar as funcionalidades em um ambiente controlado. A empresa aplicou quatro tipos de testes de caixa-preta, em diferentes etapas, conforme detalhado abaixo: • Testes unitários: feitos sempre que uma nova funcionalidade era finalizada, em um ambiente de homologação; • Testes de integração: feitos no ambiente de homologação após todas as visualizações terem seus respectivos desenvolvimentos finalizados; • Testes de aceitação: feitos pouco antes da finalização do projeto, para validar se os requisitos originais foram atendidos; • Testes de sistema: a ferramenta foi disponibilizada e utilizada em ambiente de produção da equipe da Gama Soluções, para que a utilização da mesma fosse validada e ajustada à cenários de uso reais. Após a realização de cada teste, as melhorias e correções propostas foram realizadas para incrementar a ferramenta. 41 6. CONCLUSÃO O objetivo do Projetare, ao ser projetado, era o de sanar as dificuldades de gerenciamento de tarefas e projetos e agregar a estas a funcionalidade de gerenciamento dos recursos que executam estas tarefas, para que assim, toda a estrutura hierárquica dentro das empresas de pequeno porte seja atendida pela ferramenta, com um foco nas necessidades que cada função possui. Esse objetivo é alcançado através de dashboards iniciais direcionados aos diversos perfis de usuários contemplados na ferramenta e de quadros e gráficos que trazem poder de gestão e agilidade ao processo, como o quadro kanban e o gráfico Gantt. Assim o Projetare permite em uma única frente o controle de projetos, de cronogramas e demandas, a avaliação dos custos dos projetos e a entrada de dados rápida por parte dos recursos, para que estes não percam um longo tempo com a inserção de informações no sistema e ainda permitindo que as camadas mais altas da hierarquia das empresas obtenha o retorno necessário destes recursos. 6.1. Diferenciais O Projetare além de integrar funcionalidades de diferentes ferramentas, tem como diferenciais que as outras não contemplaram, cronograma dos projetos, durante a execução do mesmo e o cálculo de custos dos projetos, conforme pode ser visto na Tabela 4 e na Tabela 5. Tabela 4 - Comparação de Funcionalidades de Gerenciamento de Tarefas - Projetare KANBAN BACKLOG CHECKLIST RASTREIO TEMPO BITRIX24 JIRA REDMINE PROJETARE Fonte: Elaborado pelo autor 42 Tabela 5 - Comparação de Funcionalidades de Gerenciamento de Projetos - Projetare GANTT CRONOGRAMA RECURSOS MÚLTIPLOS RECURSOS CUSTOS BITRIX24 JIRA REDMINE PROJETARE Fonte: Elaborado pelo autor Nas funcionalidades que o sistema compartilha com as demais soluções existentes, buscou-se aprimorar as mesmas, para obter-se resultados melhores, assim, nas demais ferramentas citadas neste trabalho, o controle das tarefas através do gráfico Gantt é bem superficial, na maioria se limitando a uma visualização das informações, sem manutenção das mesmas. Além disso, no quadro kanban, o foco na praticidade de se incluir uma tarefa sem a necessidade de preencher todas as informações da mesma inicialmente, permite que se controle rapidamente a execução das mesmas, para que só se necessite preencher os demais detalhes na finalização do processo. Desta maneira, o Projetare conseguiu atingir seu objetivo de integrar o controle das tarefas com a gestão de projetos. 6.2. Sugestões para projetos futuros As ideias que foram pensadas e não inclusas no sistema atual, mas que podem ser implementadas futuramente são: ▪ Adaptação do sistema para dispositivos móveis; ▪ Cadastro e manutenção de cronogramas do usuário; ▪ Cadastro de chamados externos que originem tarefas. 43 REFERÊNCIAS ABRANTES, Letícia. Entenda o que é e como funciona o método Kanban. ROCKET CONTENT, 2019. Disponível em: . Acesso em: 25 de jun. de 2019. ALEXANDER, Christopher. A pattern language. Nova York: Oxford University Press, 1977. BITRIX2424. Bitrix24. 2019. Disponível em: . Acesso em: 15 de mar. de 2019. DEVEXPRESS. DEVEXTREME. 2019. Disponível em: . Acesso em: 14 jun. 2019. FOWLER, Martin. Inversion of Control Containers and the Dependency Injection pattern. 2004. Disponível em: . Acesso em: 16 nov. 2019. GAMMA, Erich. Padrões de projeto: soluções reutilizáveis de software orientado a objetos. São Paulo: Bookman, 2000. JIRA. Jira Software. 2019. Disponível em: . Acesso em: 15 de mar. de 2019. JQUERY. JQuery. What is jQuery?. 2019. Disponível em: . Acesso em: 14 jun. 2019. LEÃO, Thiago. Gráfico de Gantt: o que é, como funciona e como montar o seu. NOMUS. Disponível em: . Acesso em: 25 de jun. de 2019. MACORATTI, José Carlos. O padrão repositório revisitado. IMASTERS. 2016. Disponível em: . Acesso em: 16 de nov. de 2019. MICROSOFT. Model-View-Controller. 2014. Disponível em: . Acesso em: 16 nov. 2019. 44 MICROSOFT. ASP.NET Core 2.2: Introdução ao ASP.NET Core. 2019a. Disponível em: . Acesso em: 14 nov. 2019. MICROSOFT. SQL SERVER. 2019b. Disponível em: . Acesso em: 14 jun. 2019. NASCIMENTO, Rodrigo. O que é um Dashboard?. MARKETING POR DADOS, 2017. Disponível em: . Acesso em: 22 de mar. de 2019. REDMINE. Redmine. 2019. Disponível em: . Acesso em: 13 de jun. de 2019. SEBRAE. Perfil das Microempresas e Empresas de Pequeno Porte. 2018. Disponível em: . Acesso em: 22 de mar. de 2019. TELES, Jhonata. O que é Backlog e como ele pode me ajudar na Gestão da Manutenção?. ENGETELES. Disponível em: . Acesso em: 25 de jun. de 2019. W3C. HTML5. World Wide Web Consortium. 2017. Disponível em: . Acesso em: 14 jun. 2019. W3C. CSS. World Wide Web Consortium. 2018. Disponível em: . Acesso em: 14 jun. 2019. W3SCHOOLS. Javascript. Javascript Tutorial. 2019. Disponível em: . Acesso em: 14 jun. 2019.