Trello

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 42

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS

INSTITUTO DE CIÊNCIAS EXATAS E INFORMÁTICA


Graduação em Sistemas de Informação

Rafael Lucas dos Santos

SOFTWARE COLABORATIVO DE GERENCIAMENTO DE PROJETOS


UTILIZANDO MÉTODOS ÁGEIS

Belo Horizonte
2020
Rafael Lucas dos Santos

SOFTWARE COLABORATIVO DE GERENCIAMENTO DE PROJETOS


UTILIZANDO MÉTODOS ÁGEIS

Monografia apresentada ao Curso de Sistemas


de Informação da Pontifícia Universidade
Católica de Minas Gerais, como requisito parcial
para a obtenção do título de Bacharel em
Sistemas de Informação.

Orientador: Prof. Claudiney Vander Ramos

Belo Horizonte
2020
RESUMO

As metodologias ágeis têm sido adotadas por muitos profissionais no desenvolvimento


de software. Além disso, ferramentas de apoio ao processo de desenvolvimento e ao
gerenciamento de projetos ágeis são muito importantes nesse contexto. O trabalho
aqui apresentado consiste no desenvolvimento de um software que auxilie no
gerenciamento de projetos de forma colaborativa integrando as API’s do Trello e
GitHub. Tendo em vista a dificuldade do acompanhamento, atualização, organização
e cumprimento de cronogramas de projetos entre muitas equipes, pretende-se facilitar
a comunicação e o desenvolvimento das atividades entre os gestores, seguindo a
metodologia ágil.

A ideia baseia-se em centralizar API’s dessas ferramentas em uma única aplicação


na qual o Gestor, SCRUM Master, Product Owner e o time de desenvolvimento
consigam analisar e acompanhar rapidamente o andamento do projeto em um único
lugar. Ao término de cada projeto, a aplicação irá gerar um relatório com pontos
positivos e/ou negativos, com o intuito de melhorar o ciclo de desenvolvimento dos
projetos em andamento ou futuros, e aprimorar o conhecimento de todo time de
desenvolvedores.

Palavras-chave: Gerência de projetos, Software colaborativo, Metodologia ágil.


ABSTRACT

Agile methodologies have been adopted by many professionals in software


development. In addition, tools to support the development process and the
management of agile projects are very important in this context. The work presented
here brings forward the idea of developing a software to help managing projects in a
collaborative manner integrating Trello and Github API's. Considering the difficulty in
tracking, updating, organizing and fulfilling deadlines in schedules spanning several
teams, this work intends to ease communication and task planning following an agile
approach.

The idea is rooted in centralizing the API's of those tools in a single application,
enabling the Manager, Product Owner and developing team to quickly analyze and
track progress in the project in one place. Upon completion of every project, the
application generates a report with positive and/or negative feedback, aiming at
improving the development cycle of current or future projects, as well as enhancing the
knowledge base of the developing team.

Keyword: Project Management, Collaborative Software, Agile Methodology.


LISTA DE FIGURAS

Figura 1 - Ciclo Scrum ....................................................................................................... 14


Figura 2 - Quadro Kanban ................................................................................................ 15
Figura 3 - Processo metodológico ................................................................................. 23
Figura 4 - Diagrama de caso de uso .............................................................................. 24
Figura 5 - Dashboard ......................................................................................................... 28
Figura 6 - Visualização de todos os quadros do Trello ............................................ 29
Figura 7 - Cards do Trello de um determinado Projeto ............................................ 29
Figura 8- Projetos no Repositório GitHub.................................................................... 30
Figura 9 - Branchs e Commits de um determinado projeto .................................... 31
Figura 10- Visualização detalhada do Projeto ............................................................ 32
Figura 11 - Relatório do projeto ...................................................................................... 33
Figura 12 - Modelo Lógico (Relacional) do banco de Dados .................................. 34
Figura 13- Resultado dos questionários ...................................................................... 37
LISTA DE QUADROS

Quadro 1- Comparativo entre Git, Mercurial e Subversion ..................................... 17


Quadro 2 - Comparativo entre ferramentas similares .............................................. 21
LISTA DE TABELAS

Tabela 1- Perfil dos entrevistados.................................................................................. 35


LISTA DE SIGLAS

API Application Programming Interface


BSD Berkeley Software Distribution
CORS Cross-origin resource sharing
GLP General Public License
HTTP Hypertext Transfer Protocol
MVC Model, View, Controller
Sumário
1 INTRODUÇÃO .................................................................................................................. 10
1.1 Objetivo Geral........................................................................................................... 11
1.2 Objetivos Específicos.............................................................................................. 11
1.3 Justificativa .............................................................................................................. 11
1.4 Estrutura da Monografia ......................................................................................... 12
2 REFERENCIAL TEÓRICO ............................................................................................... 13
2.1 Metodologias Ágeis ................................................................................................. 13
2.1.1 SCRUM ............................................................................................................... 13
2.1.2 Kanban ............................................................................................................... 14
2.2 Ferramentas de controle de versão....................................................................... 16
2.3 API RESTful .............................................................................................................. 17
2.3.1 API Trello ........................................................................................................... 18
2.3.2 API GitHub ......................................................................................................... 18
2.4 Gerenciamento de Projetos.................................................................................... 19
2.5 Sistemas Colaborativos .......................................................................................... 19
2.6 Ferramentas Similares para gerenciar projetos .................................................. 19
2.7 Trabalhos Relacionados ......................................................................................... 21
3 METODOLOGIA ............................................................................................................... 23
3.1 Modelagem da Aplicação ........................................................................................ 24
3.2 Tecnologias Utilizadas ............................................................................................ 25
4 DESENVOLVIMENTO ...................................................................................................... 26
4.1 Módulos da aplicação.............................................................................................. 26
4.1.1 Autenticação Interna ........................................................................................ 27
4.1.2 Permissão Externa ........................................................................................... 27
4.1.3 Dashboard ......................................................................................................... 27
4.1.4 Sincronizar API do Trello ................................................................................. 28
4.1.5 Sincronizar API do GitHub............................................................................... 30
4.1.6 Visualização detalhada do Projeto ................................................................. 31
4.1.7 Relatório por projeto ........................................................................................ 32
4.2 Modelo Lógico do Banco de Dados ...................................................................... 33
5 RESULTADOS.................................................................................................................. 35
6 CONCLUSÃO ................................................................................................................... 38
REFERÊNCIAS ........................................................................................................................ 40
APÊNDICE A............................................................................................................................ 42
10

1 INTRODUÇÃO

Segundo Keeling e Branco (2017), o gerenciamento de projetos pode ser


definido como “a aplicação de conhecimento, habilidade, ferramentas e técnicas às
atividades do projeto a fim de atender aos seus requisitos”. O gerenciamento de um
projeto requer uma base qualificada para planejar toda uma tarefa a ser realizada,
além de nortear e conduzir o desempenho das atividades, colocando-as em prática e
garantindo que as especificações contratadas sejam corretamente realizadas e
entregues no final de um projeto.

A excelência em gestão de projetos geralmente é considerada um fluxo


contínuo de projetos gerenciados com êxito. Sem uma metodologia de gestão de
projetos, pode ser difícil concluir projetos bem-sucedidos com frequência
(KERZNER,2017).

Definir uma metodologia é fundamental para toda empresa que deseja obter
maturidade no gerenciamento de projetos. A metodologia serve para organizar e
nortear os trabalhos de gerenciamento e parte da premissa que houve um estudo para
o desenvolvimento dos melhores modelos, procedimentos e ferramentas aplicáveis à
organização, ou seja, uma metodologia tende a evitar erros, redundâncias e ausência
de processos de gestão (ESPINHA,2019).

A transformação digital do mundo está mudando a realidade dos negócios e,


seja qual for a área de atuação de uma empresa, ela está inclusa no processo de
modernização. Neste universo tão cheio de metamorfoses é que as metodologias
ágeis vêm se destacando em relação aos formatos antigos. Saber o que é metodologia
ágil e os benefícios que ela pode oferecer é uma necessidade do mercado do novo
milênio. A crescente popularidade de métodos ágeis se dá justamente pelo fato de se
encaixar perfeitamente no atual momento do mercado mundial. O avanço tecnológico
acelerado é propício para a implantação de um formato mais flexível, dinâmico e
produtivo. O uso de uma metodologia ágil é uma forma de acelerar a entrega de valor
de um projeto ao fracioná-lo em entregas menores, atuando em times auto-
organizados e fazendo uso da inteligência coletiva (OLIVEIRA, 2019).
11

1.1 Objetivo Geral

O objetivo geral deste trabalho é desenvolver um sistema para registrar e


centralizar todas as informações dos projetos em desenvolvimento de uma
organização ou de um grupo de desenvolvedores de software, integrando com a API
do GitHub e Trello, facilitando o acompanhamento de um projeto ou vários projetos
em uma empresa, permitindo o acompanhamento dos projetos em uma visão
unificada.

1.2 Objetivos Específicos

 Registrar e armazenar toda informação relevante para o acompanhamento do


projeto;
 Integrar a API do Trello para acompanhar facilmente todos os quadros e cards;
 Integrar a API do GitHub para facilitar o acompanhamento de issues, commits
e branchs;
 Ao término de cada projeto, gerar relatórios de lições aprendidas descrevendo
o que gerou soluções positivas e/ou negativas, com o objetivo de compartilhar
com todos os envolvidos nos projetos;

1.3 Justificativa

Com o aumento do uso de ferramentas distintas para acompanhar o andamento


de um projeto de software ou aplicação, o acompanhamento de vários projetos em
uma empresa acaba não ficando tão eficiente e informações podem ser perdidas
nesse processo. Além disso, o acompanhamento e o desenvolvimento de requisitos
pode ser prejudicado. Devido a esses fatores, a inserção de um sistema que melhore
e facilite essa comunicação com o time e um aprimoramento na gestão dos projetos
e atividades de uma empresa, justifica o desenvolvimento do Software Colaborativo
de Gerenciamento de Projetos.
12

1.4 Estrutura da Monografia

No Capítulo 2 é apresentado o referencial teórico com a fundamentação


conceitual do trabalho. O Capítulo 3 descreve a metodologia da pesquisa. No Capítulo
4 são apresentadas as telas do software, as funcionalidades e as decisões de projeto
utilizadas no desenvolvimento. No Capítulo 5 são apresentados os resultados obtidos
ao avaliar o software com os usuários e no capítulo 6 é apresentada a conclusão do
trabalho.
13

2 REFERENCIAL TEÓRICO

Este capítulo aborda alguns conceitos e definições importantes sobre


metodologias ágeis, ferramentas de controle de versões, API Restful, gerenciamento
de projetos e sistemas colaborativos que irão apoiar o desenvolvimento da ferramenta
proposta neste trabalho.

2.1 Metodologias Ágeis

Metodologias ágeis são alternativas à gestão de projetos tradicionais, onde


todo desenvolvimento de um produto é dividido em etapas bem definidas. Métodos
ágeis possuem iterações curtas, ajudando muitas equipes com imprevisibilidades
dentro de um projeto (BRASILEIRO,2019).

Segundo Conceição e Silveira (2015) o termo Metodologias Ágeis surgiu em


2001, quando um grupo de especialistas em processos de desenvolvimento de
software criaram a Aliança Ágil e intitularam de Manifesto Ágil. A filosofia geral da
metodologia ágil pode ser aplicada em todo projeto de software, com o objetivo de
oferecer benefícios importantes no desenvolvimento e na manutenção dos softwares.

De maneira geral, o processo de desenvolvimento de software utilizando


metodologias ágeis tem como objetivo minimizar riscos e criar produtos complexos
que agregam valor para o cliente de maneira mais eficiente. Durante o processo de
criação e especificação do projeto, o desenvolvimento e o teste são realizados de
maneira intercalada, disponibilizando aos usuários novas funcionalidades a cada ciclo
de desenvolvimento e distribuição do produto (CONCEIÇÃO; SILVEIRA, 2015).

2.1.1 SCRUM

O Scrum é um método desenvolvido por Ken Schwaber e Jeff Sutherland, com


foco maior no gerenciamento de projetos que reúne atividades de monitoramento e
de feedback constante. São realizadas reuniões rápidas e diárias que têm como
14

finalidade identificar e corrigir quaisquer impedimentos no processo, garantindo certa


estabilidade no desenvolvimento do projeto (KOPPENSTEINER; UDO, 2003).

Segundo Schwaber (2004), o Scrum parte da premissa de que o


desenvolvimento de software é complexo e imprevisível para a realização de um
planejamento detalhado com todas as etapas do projeto no início. Ao invés de realizar
um planejamento prescritivo do projeto, é utilizado um modelo que possibilita o
desenvolvimento de um plano inicial sem muito detalhamento, seguido por
planejamentos individuais a cada iteração. Esse processo possibilita um controle
frequente de inspeção e adaptação em processos que não foram definidos totalmente.

O ciclo Scrum, conforme mostra a Figura 1, é iniciado com o Product Backlog


que possui a lista de entregas a serem feitas ao longo do projeto. Em seguida, são
selecionadas as tarefas que vão fazer parte do Sprint Backlog, que serão divididas em
4 ciclos de aproximadamente uma semana cada um (Buckl et al, 2011).

Figura 1 - Ciclo Scrum

Fonte: Adaptado de Buckl et al (2011).

2.1.2 Kanban

Kanban é um método organizacional que visa acompanhar o fluxo de trabalho


e o trabalho em progresso. A forma de conseguir visualizar o fluxo de trabalho é
15

através de um quadro Kanban. Normalmente, esse quadro é dividido em etapas (To


Do, Doing e Done) como pode ser observado na Figura 2, que auxiliam a visualização
do andamento de um projeto e limitam o trabalho em processos. A regra de limitação
pode variar de acordo com o andamento e necessidade do projeto e também com a
capacidade da equipe, limitando um número máximo de atividades em cada etapa
(RIBEIRO; RIBEIRO, 2015).

Figura 2 - Quadro Kanban

Fonte: Adaptado de Ribeiro e Ribeiro (2015)

A ferramenta Trello (2019) pode ser definida como um sistema de quadro virtual
que permite gerenciar equipes e tarefas que seguem o método Kanban. Além disso,
é uma ferramenta colaborativa que pode ser usada de forma gratuita, permitindo a
integração com outras ferramentas e possibilitando a automatização de algumas
tarefas.
16

2.2 Ferramentas de controle de versão

Um sistema de controle de versão consiste em um local para armazenar todas


as mudanças feitas e os conteúdos gerados durante o desenvolvimento de um
sistema, possibilitando a recuperação de versões específicas (MASON, 2006).

O sistema de controle de versionamento pode ser dividido em dois modelos de


repositórios: distribuído e centralizado.

No modelo distribuído existem vários repositórios autônomos e independentes


específicos para cada desenvolvedor e cada um desses repositórios possui uma área.
Já no modelo centralizado existe apenas um repositório central e várias cópias de
trabalho, no qual as operações acontecem entre cliente e servidor.

A ferramenta GIT surgiu depois que o relacionamento entre a comunidade que


desenvolvia o kernel e a empresa que desenvolvia comercialmente a BitKeeper se
desfez em 2005. Isso levou Linus Torvalds, o criador do Linux e a comunidade de
desenvolvedores do Linux a desenvolver sua própria ferramenta de versionamento
(GIT, 2019). GIT é uma ferramenta de controle de versão distribuído, permitindo ser
muito mais flexível a colaboração de projetos.

O software Mercurial é uma outra ferramenta de controle de versão de software


descentralizado utilizada pela Google e pelo Facebook. Este software foi desenvolvido
para projetos de grande porte e é bastante eficiente, pois desempenha as funções
básicas de um software de controle de versão.

O Subversion é um sistema centralizado de controle de versão, onde ocorre o


compartilhando de informações. Nesse sistema está presente o repositório, que
armazena dados e informações importantes para os desenvolvedores, assim como o
histórico do desenvolvimento. O subversion é composto por diferentes pastas que
guardam o desenvolvimento de atualizações diárias, as linhas de desenvolvimento e
a conclusão dos projetos, facilitando a organização e o entendimento das etapas em
grupo.

O Quadro 1 apresenta o estudo comparativo feito por Freitas (2010) que


apresentou três importantes ferramentas de controle de versões, apontando o
17

histórico e uma visão geral sobre elas, com base na formulação de características de
comparação.

Quadro 1- Comparativo entre Git, Mercurial e Subversion

Fonte: Adaptado de Freitas (2010)

2.3 API RESTful

De acordo com a definição de Fielding (1997), REST, é um tipo de arquitetura


de software para sistemas distribuídos. Ele afirma que esse estilo é uma abstração de
elementos arquiteturais de um sistema multimídia. Em RESTful os principais métodos
HTTP (GET, PUT, PATCH, POST, DELETE) são mapeados em operações CRUD
(Create, Read, Update e Delete) de um banco de dados convencional.
18

2.3.1 API Trello

A organização responsável por desenvolver a API do Trello (2019)


disponibilizou um sistema Restful que oferece as seguintes funcionalidades da
aplicação:

a) Oferece serviço de autenticação para utilizar os recursos em aplicativos


de terceiros;

b) Criar, compartilhar e visualizar quadros;

c) Permite listar, exibir, criar e editar cards de cada quadro;

d) Permite mudar os cards para outras listas;

e) Visualização do histórico de atividade de cada quadro;

2.3.2 API GitHub

A Microsoft, empresa responsável por manter a API do GitHub (2019)


disponibilizou seu sistema em API Restful, que oferece as seguintes funcionalidades:

a) Recurso de autenticação, evitando vazamento acidental de repositórios


particulares para usuários não autorizados;
b) O usuário autenticado tem permissão explícita para acessar os
repositórios que ele possui, os repositórios em que é colaborador e os
repositórios de uma organização.
c) A API suporta CORS 1 para solicitação AJAX de qualquer origem;
d) A API permite listar, exibir, editar, criar um repositório;
e) Visualizar e listar histórico de commits;

1 Cross-origin resource sharing


19

2.4 Gerenciamento de Projetos

O gerenciamento de projetos consiste na aplicação de habilidades e técnicas


relacionadas às atividades de projeto, com o intuito de unir e relacionar resultados a
objetivos de negócio, melhorando a competitividade entre os mercados e facilitando o
processo por meio de organização, planejamento e integrações (PMBOK, 2017).

2.5 Sistemas Colaborativos

Os sistemas colaborativos são ferramentas de software aplicadas e utilizadas


para facilitar e otimizar a execução de trabalhos e tarefas em grupos. Esses
mecanismos devem ser específicos e especializados para que os usuários consigam
interagir e tenham facilidade com o controle e a comunicação do grupo, não
importando a localização geográfica ou o tempo. Com isso, pretende-se estreitar as
barreiras impostas pelo espaço físico e pelo próprio tempo, pensando sempre no bom
desempenho do grupo (CAMARGO, KHOURI, GIAROLA, 2005).

2.6 Ferramentas Similares para gerenciar projetos

Jira (2020) é um software que, a princípio, foi desenvolvido para rastrear bugs.
Atualmente, o Jira é uma ferramenta de gerenciamento de projetos, que gerencia
desde casos de teste e requisitos até o desenvolvimento ágil de um software. Existe
um plano gratuito com limitações de usuários e funcionalidades. Os recursos
disponibilizados para o plano gratuito são:

 Quadros do Scrum e do Kanban

 Lista de pendências

 Relatórios ágeis

 Fluxos de trabalho personalizáveis

 Limite de até 10 usuários

 Permite integrar APIs distintas


20

O Artia (2020) é um software para Gestão de Projetos que atende as


necessidades de pessoas e empresas no controle diário dos projetos e atividades. O
software permite fazer a organização de atividades, gerenciar projetos, compartilhar
tarefas e apontar as horas gastas em cada atividade. Existe um plano gratuito com
limitações de funcionalidades e projetos. Os recursos disponibilizados para o plano
gratuito são:

 Apontamentos de horas
 Kanban
 Limite de até 5 Projetos
 Notificações por email
 Gestão de Atividades
 Backup a cada 30 minutos

Txiga é um software desenvolvido por Júnior e Silva (2016). O Txiga foi


desenvolvido com objetivo de apoiar ONGs que enfrentam desafios na criação e no
desenvolvimento de seus projetos. Por meio do Txiga, as ONGs têm a possibilidade
de encontrar voluntários que poderão auxiliar em várias áreas de atuação. Os
voluntários são incentivados a colocar todas as suas colaborações no Txiga para
auxiliar em projetos futuros.

O Quadro 2 apresenta a comparação das funcionalidades do Txiga, do Artia e


do Jira com o software desenvolvido para este trabalho, o SCGP (Software
Colaborativo de Gerenciamento de Projetos).
21

Quadro 2 - Comparativo entre ferramentas similares

Fonte: Elaborado pelo autor

2.7 Trabalhos Relacionados

Durante a pesquisa desta primeira parte, foram encontrados alguns estudos


semelhantes aos abordados neste tema.

O trabalho desenvolvido por Neto, Gomes e Tedesco (2003) apresenta um


processo de requisitos para o desenvolvimento de aplicações colaborativas. Os
autores propõem um processo que integra o estudo qualitativo da atividade de
usuários segundo framework teórico sócio-cultural, associado às técnicas do estudo
de engenharia de requisitos. O estudo de caso apresentado baseia-se em apresentar
e elencar as etapas de análise quantitativa de requisitos de um ambiente virtual de
ensino, baseado em um projeto de engenharia de software.

O trabalho de Wolf e Silva (2013) apresenta o desenvolvimento de uma


ferramenta e mecanismos que visam criar uma rede capaz de interligar e suprir as
necessidades de equipes desenvolvedoras geograficamente distintas. A realidade
das empresas contemporâneas de desenvolvimento de software, que tendem a tornar
os processos e produtos globais propõe desafios para os desenvolvedores e suas
equipes, uma vez que a comunicação atrelada ao gerenciamento de atividades e
tarefas devem existir mesmo que as equipes sejam geograficamente distantes.
22

Outro trabalho, de Júnior e Silva (2016), apresenta o desenvolvimento de um


sistema denominado Txiga que parte da ideia de cooperativismo entre pessoas e
equipes. Assim como o software colaborativo de gerenciamento de projetos a ser
desenvolvido, o Txiga não gerencia os projetos, mas auxilia na execução e tomada de
decisões durante o processo.

Txiga é um sistema de gestão de projetos para Organizações não


Governamentais desenvolvido para incentivar e criar condições para que
pessoas possam convidar outras para entrarem com a sua “bagagem de
conhecimento” e fazer parte dos seus projetos. Os principais objetivos do
sistema é disponibilizar o Txiga para que as ONGs possam compartilhar
projetos e receber a colaboração de voluntários capacitados nas mais
diversas áreas de conhecimento. Essa é a essência do cooperativismo em
que se embasa a filosofia desta plataforma, na qual as pessoas entram e
mantêm troca de experiências/conhecimentos sem envolviment o de capital,
pois ela é baseada no voluntariado. O Txiga em si não faz a gestão dos
projetos que nele estão, quem o faz são as ONGs e os voluntários que
aceitaram o convite para entrar e participar. (JÚNIOR; SILVA, 2016)
23

3 METODOLOGIA

O intuito deste trabalho é centralizar todas as informações relevantes de um


projeto, fazer a integração da API do Trello e GitHub aonde o Product Owner, Scrum
Master e desenvolvedores possam acompanhar todo o andamento do projeto de uma
maneira mais eficiente e de um único lugar.

Inicialmente a demanda partiu da necessidade de um software específico para


acompanhar todos os projetos de software em andamento da empresa HiveSys.

Para coletar informações foram realizadas pesquisas específicas durante o


desenvolvimento da aplicação com o Product Owner, Scrum Master e
desenvolvedores de uma empresa, com o objetivo de entender os principais pontos
críticos e facilitar o acompanhamento dos projetos da empresa ou organização,
utilizando o Software Colaborativo de Gerenciamento de Projetos.
A Figura 3 mostra como foram organizadas as atividades deste trabalho,
considerando as etapas metodológicas propostas para tentar alcançar os objetivos do
trabalho de desenvolvimento da ferramenta colaborativa.

Figura 3 - Processo metodológico

Fonte: Elaborado pelo autor


24

3.1 Modelagem da Aplicação

O sistema foi desenhado para auxiliar todos os colaboradores responsáveis por


projetos de uma empresa ou organização, facilitando o acompanhamento para
Product Owner e Scrum Master. Por possuir mais de um projeto em andamento,
melhora a comunicação com o time de desenvolvimento e evita a perda de qualquer
informação relevante no decorrer do desenvolvimento do projeto.

A Figura 4 apresenta a modelagem dos casos de uso, contemplando as


funcionalidades do sistema. Todos os colaboradores devem possuir cadastro no
GitHub e Trello para ter acesso às funcionalidades do quadro Kanban e para a
visualização do repositório no GitHub. O Product Owner ou Scrum Master, são
responsáveis por criar o projeto e preencher todos os requisitos, fazendo a vinculação
do quadro gerado no Trello e do repositório do projeto do GitHub, atrelando o time
responsável pelo desenvolvimento. Somente o Product Owner ou Scrum Master
podem fazer qualquer alteração ou remoção nas tarefas criadas no quadro.

Figura 4 - Diagrama de caso de uso

Fonte: Elaborado pelo autor


25

3.2 Tecnologias Utilizadas

Segundo o site Stack Overflow (2020), no ano de 2019, Laravel está entre os
10 frameworks mais utilizadas no mundo e o primeiro entre os frameworks PHP.
Laravel é um framework open source e gratuito com uma documentação bem
detalhada.

Com base na modelagem apresentada na seção 3.2, optou-se por usar o


framework Laravel, utilizando a linguagem de programação PHP para desenvolver
funcionalidades apresentadas na solução. O framework Laravel é aderente à estrutura
MVC para organização do sistema e utiliza o Laravel Blade para a construção da
interface gráfica. Para obter um melhor desempenho e benefícios com a linguagem,
foi escolhido a IDE da Microsoft, o Visual Studio Code, que disponibiliza uma
variedade de recursos que otimizam o desenvolvimento do sistema, sendo uma delas
Laravel Snippets. O banco de dados escolhido para armazenar as informações do
projeto foi o MySQL.
26

4 DESENVOLVIMENTO

Neste capítulo são apresentadas as telas do software desenvolvido, suas


funcionalidades e as decisões de projeto utilizadas no desenvolvimento deste
trabalho.

4.1 Módulos da aplicação

Para entender melhor o funcionamento da aplicação, as principais


funcionalidades foram divididas em pequenos módulos que apresentam uma ou mais
aplicabilidades da API do Trello e GitHub, módulo de relatório, dashboard, e cadastro
de usuários e projetos.

Os módulos do software foram divididos em Requisitos Funcionais e Não


Funcionais.

Os Requisitos funcionais do Software Colaborativo de Gerenciamento de


Projetos (SCGP) são:

1. Manter Usuários.
a. Cadastrar usuários.
b. Alterar usuários.
c. Remover usuários.
2. Manter Projetos.
a. Cadastrar projetos.
b. Alterar projetos.
c. Remover projetos.
3. Integrar com API do GitHub.
4. Integrar com API do Trello.

Os Requisitos Não Funcionais do SCGP são:

1. Apenas pessoas que tenham sido autenticadas poderão visualizar e


cadastrar informações dos projetos.
2. Toda senha deve ser salva no banco de dados de forma criptografada.
27

4.1.1 Autenticação Interna

Com o propósito de ser uma aplicação segura que possa garantir a


confidencialidade e integridade dos dados dos usuários, foram implementadas
medidas de segurança como login com criptografia de senha.

4.1.2 Permissão Externa

Para tornar possível que a aplicação proposta faça alguma requisição à API do
Trello e GitHub, é necessário realizar o cadastro nessas respectivas ferramentas para
gerar o certificado da aplicação para cada site. Ambas ferramentas utilizam
autenticação baseada em token para conceder acesso à API.

4.1.3 Dashboard

Para facilitar o acompanhamento dos projetos da empresa, foi desenvolvido um


dashboard com alguns gráficos que permitem acompanhar o andamento das
atividades. Por meio do dashboard, o time de desenvolvimento terá uma noção global
de todos os processos, podendo visualizar também, de forma dinâmica e objetiva,
dados referentes a cada projeto específico.

Na Figura 8, o dashboard apresenta indicadores para facilitar o


acompanhamento de um ou mais projetos de uma empresa, de forma resumida.
28

Figura 5 - Dashboard

Fonte: Elaborado pelo autor

4.1.4 Sincronizar API do Trello

Para integrar os quadros, o usuário deve cadastrar o token fornecido pelo


Trello. Com o token devidamente cadastrado na aplicação, todos os quadros deste
usuário são retornados.
A Figura 9 apresenta informações com todos os quadros do Trello de um
determinado usuário. Ao clicar no quadro, o usuário é redirecionado para o site do
Trello no qual é possível visualizar todas as informações deste quadro.
29

Figura 6 - Visualização de todos os quadros do Trello

Fonte: Elaborado pelo autor

A Figura 10 apresenta informações com todos os Cards do Trello já vinculados


a um projeto. Cada Card contém o título da atividade, a descrição e qual o status atual.
Ao clicar em algum Card, o usuário é redirecionado para o quadro correspondente,
onde é possível visualizar todas as informações detalhadas

Figura 7 - Cards do Trello de um determinado Projeto

Fonte: Elaborado pelo autor


30

4.1.5 Sincronizar API do GitHub

Para ter acesso ao repositório do GitHub, o usuário deve autorizar a aplicação


no GitHub e posteriormente cadastrar na aplicação que deseja utilizar. Com o usuário
devidamente cadastrado, são listados todos os seus projetos no repositório do GitHub.

A Figura 11, apresenta todos os projetos pertencentes ao usuário dentro do


repositório do GitHub. Nesta parte é possível visualizar o nome do Repositório, a
descrição, o proprietário, e o branch padrão. Quando o usuário clica em algum
repositório, ele é redirecionado para o site do GitHub aonde é possível visualizar todas
as informações deste repositório. Na Figura 12, pode-se visualizar todos os commits
e branchs vinculados ao projeto cadastrado pelo usuário.

Figura 8- Projetos no Repositório GitHub

Fonte: Elaborado pelo autor


31

Figura 9 - Branchs e Commits de um determinado projeto

Fonte: Elaborado pelo autor

4.1.6 Visualização detalhada do Projeto

A Figura 13 apresenta a visualização do projeto após o cadastro e a integração


da API do GitHub e Trello, contendo todas as informações relevantes para o
acompanhamento do projeto. É possível visualizar de uma maneira rápida qual é o
status atual, a data de início e fim, a descrição e algumas atividades listadas no
GitHub.
32

Figura 10- Visualização detalhada do Projeto

Fonte: Elaborado pelo autor

4.1.7 Relatório por projeto

Ao término de cada projeto, é gerado um relatório de lições aprendidas


contendo pontos positivos e negativos de cada projeto da empresa, a ser
compartilhado com todos os times de desenvolvimento, aumentando, assim, a base
de conhecimento de todos. Na Figura 14 é possível visualizar a disposição dos pontos
levantados dentro do projeto. Esse relatório também é compartilhado com o restante
da empresa.
33

Figura 11 - Relatório do projeto

Fonte: Elaborado pelo autor

4.2 Modelo Lógico do Banco de Dados

A Figura 15 apresenta como foi estruturado o banco de dados a partir das


necessidades de persistência de dados, possibilitando a integração entre as
informações armazenadas no banco de dados e informações oriundas da APIs do
Trello e GitHub.
34

Figura 12 - Modelo Lógico (Relacional) do banco de Dados

Fonte: Elaborado pelo autor


35

5 RESULTADOS

Nessa seção são apresentados os resultados obtidos ao avaliar o Software


Colaborativo de Gerenciamento de Projetos (SCGP). Após a utilização do software,
os usuários responderam um questionário, com o objetivo de descobrir a eficácia do
SCGP. Os pontos avaliados foram com base nos objetivos deste trabalho.

Ao todo, 11 pessoas utilizaram o software e responderam ao questionário. As


pessoas que responderam o questionário são Gerentes de Projetos, Scrum Master e
Desenvolvedores. A Tabela 1 mostra qual é o perfil dos entrevistados.

Tabela 1- Perfil dos entrevistados

Fonte: Elaborado pelo autor

A Figura 16 está ligado a avaliação da utilização de todas as funcionalidades


do software.

O primeiro gráfico representa o resultado de como o usuário avalia a facilidade


em fazer a vinculação com as ferramentas GitHub e Trello no software e a vinculação
no projeto. Nesta pergunta, 63,6% dos usuários classificaram como “Fácil” e 36,4%
classificaram como “Muito fácil”.

No segundo gráfico, o objetivo da pergunta foi avaliar a facilidade do usuário


em cumprir todas as etapas em registrar um novo projeto. Para esta pergunta, 63,6%
dos usuários classificaram como “Muito fácil” em registrar um novo projeto e 36,4%
classificaram como “Fácil”.
36

No terceiro gráfico representa a opinião dos usuários em relação ao grau de


satisfação em acompanhar um ou vários projetos utilizando o SCGP. 54,5% dos
usuários responderam “Muito satisfeito” e 45,5% responderam “Satisfeito”.

Foi questionada a utilidade em registrar os pontos positivos e negativos do


projeto. Como pode ser observado no quarto gráfico, 81,8% dos usuários
responderam “Muito útil” em registrar os pontos positivos e negativos do projeto e
18,2% responderam “Moderadamente útil”.

Para finalizar a pesquisa, foi questionada uma avaliação geral do SCGP. Como
mostra o quinto e último gráfico, 72,7% dos usuários responderam que a utilização do
SCGP foi “Muito Bom” e 27,3% dos usuários classificaram como “Bom”.
37

Figura 13- Resultado dos questionários

Fonte: Dados da Pesquisa


38

6 CONCLUSÃO

A tecnologia tem sido utilizada cada vez mais com o objetivo de otimizar e
agilizar tarefas do dia a dia, simplificando processos, possibilitando a integração entre
setores, auxiliando a capacitação de equipes e melhorando o desempenho
profissional dos colaboradores. Devido a este avanço tecnológico, novas ferramentas
são criadas como a finalidade de suprir essas necessidades.

Este trabalho apresentou o desenvolvimento de uma aplicação web que


permite ao usuário integrar as ferramentas do GitHub e Trello via tokens para realizar
a gestão e o acompanhamento de um ou vários projetos, além de armazenar as
informações desses projetos.

A aplicação desenvolvida seguiu boas práticas de segurança, com métodos de


autenticação, além de haver a necessidade de realizar o cadastro para ter acesso a
aplicação, há um gerenciamento de segurança da conta, a realização da integração
com as APIs do GitHub e Trello via tokens de autorização, a sincronização de todas
as informações dos quadros e repositórios com os projetos definidos e também a
possibilidade de visualização de todos os quadros do Trello e projetos no repositório
do GitHub.

A utilização do software poderá auxiliar a tomada de decisões, facilitar o


acompanhamento de vários projetos em andamento e armazenar as informações
relevantes de um projeto em uma única plataforma. Além de centralizar as APIs do
Trello e do Gitub para melhorar ainda mais o acompanhamento dos projetos. A
aplicação possibilita gerar um relatório de lições aprendidas, contendo pontos
positivos e negativos de cada projeto da empresa, sendo possível compartilhar com
todos os membros do time de desenvolvimento, aumentando assim, a base de
conhecimento de todos.

Os resultados obtidos no questionário mostraram que o SCGP teve um


aproveitamento de 72,7% em relação ao contentamento dos usuários, resultado
satisfatório e benéfico para o objetivo do trabalho.
39

Em trabalhos futuros é possível centralizar mais funcionalidades relevantes


dentro da aplicação, para que possa melhorar a qualidade no desenvolvimento de
software. Algumas dessas funcionalidades são o desenvolvimento de um módulo para
controle financeiro, integração com APIs de softwares de helpdesk, a integração com
outras ferramentas de versionamento, um módulo para melhorar a estratégia de
negócios, o desenvolvimento de mais indicadores relevantes para auxiliar no
acompanhamento dos projetos e o desenvolvimento de uma forma de automatizar a
seleção de times com base em suas habilidades.
40

REFERÊNCIAS

ARTIA. Ferramenta online para Gerenciamento de Projetos. Disponível em:


<https://artia.com/>. Acesso em: 2 abr. 2020.
BRASILEIRO, Roberto. Métodos Ágeis: O que é e porque você deve saber o que
é, 2019. Disponível em: <http://www.metodoagil.com/metodos-ageis/>. Acesso em: 13
nov. 2019.

BUCKL, S., MATTHES, F., MONAHOV, I., ROTH, S., SCHULZ, C., & SCHWEDA, C.
M. (2011). Towards an agile design of the enterprise architecture management
function. IEEE 15th International Enterprise Distributed Object Computing
Conference Workshops, 2011.

CAMARGO, A. A. B. de, KHOURI, L. H. El & GIAROLA, P. C., (2005). “O Uso de


Sistemas Colaborativos na Gestão de Projetos: Fatores Relevantes para o
Sucesso”. Fundação Instituto de Administração – FIA.

COLLINS-SUSSMAN, Ben; FITZPATRICK, Brian W.; PILA, C. Michael. Controle de


Versão com Subversion: Para Subversion 1.4. 1. ed. TBA, 2007.

CONCEIÇÃO, Juliano da. SILVEIRA, Sidinei Renato. Aplicação de Metodologias


Ágeis para Desenvolvimento de Software: um Estudo de Caso na Empresa
Alliance Software, Santa Maria, 2015
ESPINHA, Roberto Gil. Seis passos para ser eficiente no gerenciamento de
projetos Disponível em: <https://artia.com/blog/passos-para-ser-eficiente-
gereciamento-de-projetos/>. Acesso em: 19 nov. 2019.
FIELDING, Roy Thomas et al. Hypertext Transfer Protocol - HTTP/1.1. 1997. RFC
2068. Disponível em: <http://www.ietf.org/rfc/rfc2068.txt>. Acesso em: 23 out. 2019.
FREITAS, Daniel. T. M. D. Análise Comparativa entre Sistemas de Controle de
Versões, 2010. Disponível em:
<http://www.ufjf.br/getcomp/files/2013/03/An%C3%A1lise-Comparativa-entre-
Sistemas-de-Controle-de-Vers%C3%B5es-Daniel-Tannure-Menandro-de-
Freitas.pdf>. Acesso em: 29 out. 2019.
GIT. Book. Disponível em: < https://git-scm.com/book/en/v2>. Acesso em 25 de out.
2019
JIRA. Ferramenta online para Gerenciamento de Projetos. Disponível em:
<https://www.atlassian.com/br/software/jira>. Acesso em: 2 abr. 2020.
JÚNIOR, Antônio. R. S. D. R. C; SILVA, Mônica. V. V. L. D. Txiga: Um Sistema
Cooperativo de Gestão de Projetos, 2016. Disponível em:
<https://linux.ime.usp.br/~acjunior/mac0499/monografia.pdf>. Acesso em: 14 nov.
2019.
KEELING, Ralph; BRANCO, Renato H. F. Gestão de Projetos: Uma abordagem
global. 3. ed. [S.l.]: Saraiva, 2017
41

KERZNER, Harold. Gestão de Projetos: As Melhores Práticas. 3. ed. São Paulo:


Bookman, 2017.
KOPPENSTEINER, Sonja; UDO, Nathalie. Will agile development change the way
we manage software projects? Agile from’s PMBOK guide perspective.
Projectway, LLC, 2003.
MASON, M. Pragmatic Version Control: Using Subversion (The Pragmatic Starter
Kit Series). Pragmatic Bookshelf, 2006
NETO, Genésio. G. D. C; GOMES, Alex Sandro; TEDESCO, Patrícia; Elicitação de
Requisitos de Sistemas Colaborativos de Aprendizagem Centrada na Atividade
de Grupo, 2003. Disponível em: <https://www.b r-
ie.org/pub/index.php/sbie/article/view/262>. Acesso em: 2 nov. 2019.
OLIVEIRA, Fábio R. D. O que é metodologia ágil e quais os seus principais
formatos de aplicação. 2019. Disponível em:
<https://conteudo.movidesk.com/metodologia-agil/>. Acesso em: 19 nov. 2019.
PRESSMAN, R. S. (2011) Engenharia de Software. 7. ed. Porto Alegre: Pearson
Makron Books.
PMBOK. Project Management Institute, 2000

PMBOK - PROJECT MANAGEMENT INSTITUTE. Guia PMBOK®: Um Guia para o


Conjunto de Conhecimentos em Gerenciamento de Projetos, 6. ed, Pennsylvania:
PMI, 2017.
RIBEIRO, Rafael D.; RIBEIRO, Horácio D. C. E. S. Métodos ágeis em
gerenciamento de projetos. 1. ed. Rio de Janeiro: [s.n.], 2015.

SCHWABER, Ken. Agile Project Management with Scrum, Microsoft, 2004.

STACK OVERFLOW. Developer Survey Results 2019. Disponível em:


<https://insights.stackoverflow.com/survey/2019>. Acesso em: 11 mai. 2020.
TRELLO. Ferramenta Online. Disponível em: <https://trello.com>. Acesso em 20 de
out. 2019.
WOLF, Alexandre Stürmer; SILVA, Maurício. S. D. Ferramenta para Gerenciamento
e Apoio ao Desenvolvimento Distribuído de Software. REVISTA DESTAQUES
ACADÊMICOS: Feira de Ciência, Univates, v. 5, n. 4, p. 153-160, 2013. Disponível
em: <http://univates.br/revistas/index.php/destaques/article/view/335/330>. Acesso
em: 2 nov. 2019.
42

APÊNDICE A

Você também pode gostar