29
1 UMA FERRAMENTA PARA GERENCIAMENTO SCRUM EM AMBIENTES DE DESENVOLVIMENTO GEOGRAFICAMENTE DISTRIBUÍDOS Alex Radavelli 1 RESUMO Este artigo apresenta uma ferramenta para auxiliar no gerenciamento de projetos utilizando a metodologia ágil Scrum, aplicada em equipes de desenvolvimento geograficamente distribuídas, armazenando suas informações em nuvem, utilizando uma base centralizada de dados. Com isso, é possível planejar e acompanhar os projetos através de dispositivos móveis, permitindo que a equipe esteja sempre com visibilidade do status atual dos projetos, independentemente da localização geográfica de seus integrantes. Foram realizados testes e análise de resultados em um protótipo desenvolvido com base no modelo da ferramenta proposta, bem como comparações com pesquisas e ferramentas semelhantes, que comprovam a eficácia da ferramenta, quanto ao acompanhamento dos projetos utilizando Scrum em equipes distribuídas. Palavras-chave: Scrum. Metologias Ágeis. Aplicativos Móveis. Equipes Distribuídas. 1 INTRODUÇÃO Projetos de software estão presentes em praticamente todos os segmentos de mercado, o que implica na constante expansão da indústria de software. Este crescimento estimulou a procura por uma forma de entregar produtos de maneira mais ágil, com maior qualidade e, conseqüentemente, garantindo a satisfação dos clientes. Com isso, as empresas estão adotando metodologias ágeis como forma de acelerar a fabricação e garantir agilidade e qualidade em seus produtos. Assim como as metodologias ágeis, outro cenário em evidência nos dias atuais são os times de desenvolvimento geograficamente distribuídos, o que facilita a criação e manutenção de equipes e redução de custos com locomoção [1]. Desta forma, pode-se perceber que, tanto 1 Discente do curso Ciência da Computação do Centro Universitário La Salle – Unilasalle, matriculado na disciplina de Trabalho de Conclusão II, sob orientação do Profº M.e. Eder Stone Fontoura. E-mail [email protected].

UMA FERRAMENTA PARA GERENCIAMENTO SCRUM … · 3 3 SCRUM O objetivo da metodologia ágil Scrum é realizar entregas com qualidade em pequenos períodos de tempo previamente definidos,

  • Upload
    ngonga

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

1

UMA FERRAMENTA PARA GERENCIAMENTO SCRUM EM AMBIENTE S DE

DESENVOLVIMENTO GEOGRAFICAMENTE DISTRIBUÍDOS

Alex Radavelli1

RESUMO

Este artigo apresenta uma ferramenta para auxiliar no gerenciamento de projetos utilizando a

metodologia ágil Scrum, aplicada em equipes de desenvolvimento geograficamente

distribuídas, armazenando suas informações em nuvem, utilizando uma base centralizada de

dados. Com isso, é possível planejar e acompanhar os projetos através de dispositivos móveis,

permitindo que a equipe esteja sempre com visibilidade do status atual dos projetos,

independentemente da localização geográfica de seus integrantes.

Foram realizados testes e análise de resultados em um protótipo desenvolvido com base no

modelo da ferramenta proposta, bem como comparações com pesquisas e ferramentas

semelhantes, que comprovam a eficácia da ferramenta, quanto ao acompanhamento dos

projetos utilizando Scrum em equipes distribuídas.

Palavras-chave: Scrum. Metologias Ágeis. Aplicativos Móveis. Equipes Distribuídas.

1 INTRODUÇÃO

Projetos de software estão presentes em praticamente todos os segmentos de mercado, o

que implica na constante expansão da indústria de software. Este crescimento estimulou a

procura por uma forma de entregar produtos de maneira mais ágil, com maior qualidade e,

conseqüentemente, garantindo a satisfação dos clientes.

Com isso, as empresas estão adotando metodologias ágeis como forma de acelerar a

fabricação e garantir agilidade e qualidade em seus produtos.

Assim como as metodologias ágeis, outro cenário em evidência nos dias atuais são os

times de desenvolvimento geograficamente distribuídos, o que facilita a criação e manutenção

de equipes e redução de custos com locomoção [1]. Desta forma, pode-se perceber que, tanto

1 Discente do curso Ciência da Computação do Centro Universitário La Salle – Unilasalle, matriculado na disciplina de Trabalho de Conclusão II, sob orientação do Profº M.e. Eder Stone Fontoura. E-mail [email protected].

2

metodologias ágeis, quanto equipes de desenvolvimento distribuídas geograficamente são

estratégias largamente utilizadas no atual cenário da indústria de software.

As metodologias ágeis, no entanto, foram projetadas para utilização em equipes

dispostas em um mesmo local físico de trabalho, o que facilita as freqüentes reuniões e

atualizações de tarefas propostas pela metodologia. O Scrum é, dentre as diversas

metodologias ágeis propostas, uma das mais utilizadas pelas empresas que produzem software

[2].

Este artigo aborda uma ferramenta proposta para auxiliar no gerenciamento de projetos

utilizando a metodologia Scrum em equipes de desenvolvimento geograficamente distribuídas

e relata os resultados obtidos com um protótipo desenvolvido com base no modelo proposto.

2 METODOLOGIAS ÁGEIS

De acordo com os métodos de desenvolvimento definidos na engenharia de software,

pode-se dizer que a construção de um sistema de software é regida por um modelo de

desenvolvimento de software. Durante décadas esses modelos foram sendo aprimorados e

alguns deles se consolidando na área, como cascata, espiral, iterativo e incremental. Todos

estes modelos de software possuem algumas características em comum, tais como a

especificação, projeto e implementação, validação e evolução.

Com o passar do tempo e a necessidade de atender a um mercado cada vez mais

exigente e concorrido, começaram a surgir modelos que passaram a priorizar prazos e

qualidade de entrega, as chamadas metodologias ágeis. Um dos pontos mais significativos

para o surgimento destas metodologias é o fato de que os modelos tradicionais são muito

pouco tolerantes a mudança de requisitos durante o desenvolvimento do software, porém, no

atual cenário, os requisitos estão sujeitos a freqüentes modificações durante a construção e

manutenção de um software [3].

As metodologias ágeis são flexíveis e adaptativas, indicadas para cenários com

constante mudança de requisitos e com necessidade de entrega de resultados em curtos

períodos, priorizando também a qualidade do produto ou serviço. O foco deve estar na entrega

de algum valor real ao cliente [4].

3

3 SCRUM

O objetivo da metodologia ágil Scrum é realizar entregas com qualidade em pequenos

períodos de tempo previamente definidos, que vão gradativamente agregando valor real ao

produto final entregue ao cliente.

a) Product Backlog - A aplicação da metodologia Scrum em um projeto de software

inicia a partir da definição do Product Backlog, que é basicamente uma lista de

requisitos que o cliente solicita para o produto desejado. Essa lista de

funcionalidades deve ser descrita utilizando preferencialmente a própria

terminologia do cliente, visando facilitar a comunicação e reduzir dúvidas entre a

equipe e o cliente [5].

A ideia é de que os itens definidos no backlog sejam desenvolvidos e entregues de

forma incremental, agregando aos poucos valor real ao produto, de modo que, ao final do

projeto, todos os itens definidos serão entregues e integrados, compondo desta forma o

produto final.

b) Sprint - Sprint é o período de desenvolvimento de funcionalidades do backlog que

acontece entre cada uma das entregas incrementais do produto ao cliente. A

duração de cada Sprint é previamente definida pela equipe (geralmente de duas a

quatros semanas). Para tanto, depois da definição do Product Backlog, o time

realiza o planejamento da Sprint, elencando os itens que serão entregues ao final da

mesma.

Cada requisito definido para Sprint deve ser desdobrado em tarefas, que irão compor o

Sprint Backlog, ou seja, o quadro de tarefas da Sprint. Durante a Sprint, cada integrante da

equipe deve executar uma tarefa por vez, até que todas as tarefas sejam concluídas, sempre

respeitando o período de duração da Sprint.

Para acompanhar o andamento das tarefas, é utilizado o quadro de tarefas, que

geralmente é composto de algumas raias para identificar a situação de cada tarefa durante a

Sprint. O quadro pode ter, por exemplo, uma raia para as tarefas que ainda estão no Sprint

Backlog, ou seja, que ainda aguardam para entrar em execução, uma para as tarefas que já

estão em execução, outra para aquelas que estão sendo validadas e, finalmente, uma para

indicar as tarefas que já estão prontas para a entrega.

A figura 1 representa um quadro de tarefas com quatro raias. A raia To Do contém as

tarefas do backlog que estão aguardando para entrar em execução. A raia In Process possui

tarefas que estão sendo executadas. A raia To Verify conta com as tarefas que estão sendo

4

validadas, ou seja, estão sendo testadas. E, por fim, a raia Done, contém as tarefas que estão

prontas para entrega.

Figura 1 - Quadro de tarefas

Fonte: Mountain goat software, 2014.

c) Planning Poker - Uma vez escolhidos os itens de entrega da Sprint, é realizado o

Planning Poker, que consiste em uma votação feita pela equipe de modo a pontuar

cada tarefa a ser realizada para que os itens da Sprint sejam entregues. A pontuação

é uma unidade de medida abstrata, que serve para estimar o tempo de execução das

tarefas e a velocidade da equipe no desenvolvimento dos itens. A pontuação pode

ser definida como, por exemplo, as horas / homem estimadas para a execução de

uma determinada tarefa, até que a mesma possa ser considerada como pronta para

entrega.

O Scrum é uma metodologia bastante flexível, ou seja, geralmente a maneira de

conduzir um projeto utilizando Scrum pode variar bastante de uma equipe para outra, sempre

respeitando as principais premissas da metodologia. Neste sentido, a forma de pontuar pode

mudar de uma equipe para outra, mas, em geral, cada integrante avalia e pontua a tarefa em

questão. Se houver votação diferente, cada um dos membros da equipe pode argumentar os

motivos que o levaram a definir tal pontuação para a tarefa, até que se chegue a um consenso.

Ao final da votação, todas as tarefas devem estar pontuadas e deste modo é possível

obter o tamanho da Sprint, efetuando a soma dos pontos das tarefas.

d) Daily Meeting - Para acompanhar a execução das atividades da Sprint, é realizada

diariamente a Daily Meeting, uma reunião de duração máxima de 15 minutos onde

cada integrante da equipe deve apontar o que foi feito no dia anterior, qual o

5

planejamento para o dia e também se existe algum impedimento para realização da

tarefa que está em execução.

Deste modo, é possível garantir os prazos e também visualizar com antecedência futuros

problemas, bem como definir planos de ação para contorná-los.

e) Papéis - A metodologia Scrum propõe basicamente três papéis:

− Scrum Master – responsável por conduzir as reuniões diárias (Daily Meetings) e

resolver os eventuais impedimentos durante a execução das Sprints.

− Product Owner – representa o cliente dentro da equipe e é responsável por

garantir que os itens entregues a cada Sprint, estejam de acordo com aqueles

definidos no Product Backlog, com qualidade aceitável.

− Team – analistas, desenvolvedores e testadores que trabalham na execução das

tarefas do Backlog.

f) Burndown - O burndown é um gráfico utilizado para acompanhar o andamento da

execução da Sprint. Diariamente o gráfico é atualizado de forma a representar os

itens finalizados em comparação aos itens planejados para a atual Sprint.

Para tanto é elaborado um gráfico de linha, com um eixo representando a pontuação e

outro o tempo de duração da Sprint. O objetivo é fazer com que a linha de pontuação chegue à

zero antes ou até o último dia de execução da Sprint.

A figura 2 ilustra um gráfico de burndown para acompanhamento da execução das

tarefas de uma Sprint. No exemplo da figura, a Sprint tem o tamanho de 70 pontos e deve ser

executada em 15 dias.

Figura 2 - Exemplo de gráfico burndown. [6]

Fonte: Kniberg e Skarin, 2010.

6

g) Restrospectiva - Ao final de cada Sprint é realizada a reunião de retrospectiva,

conduzida pelo Scrum Master, com o objetivo de identificar pontos positivos e

negativos da Sprint.

Cada integrante da equipe deve apontar pontos positivos, pontos negativos e também o

que deveria ser feito de concreto já para a próxima Sprint. A retrospectiva é uma prática que

contribui para a melhoria contínua da metodologia de desenvolvimento da equipe.

A figura 3 ilustra o esquema da metodologia Scrum, apontando as iterações e

incrementos necessários para a conclusão das Sprints e, conseqüentemente, do projeto como

um todo.

Figura 3 - Esquema da metodologia Scrum.

Fonte: Mountain Goat, 2014.

4 APLICAÇÃO DO SCRUM EM EQUIPES DISTRIBUÍDAS

O Scrum, assim como as demais metodologias ágeis, prega a interação entre equipes de

desenvolvimento dispostas em um mesmo ambiente físico de trabalho, enfatizando a

comunicação freqüente e presencial entre os membros do time.

No entanto, a prática de distribuir os processos de desenvolvimento entre equipes

dispersas geograficamente vem sendo cada vez mais adotada pelas empresas, visando redução

de custos, flexibilidade para montagem de equipes, dentre outras vantagens [1].

a) Problemas - Quando a metodologia Scrum é utilizada para gerenciar e acompanhar

projetos com equipes distribuídas, algumas dificuldades se tornam evidentes.

Abaixo são apresentados alguns dos principais problemas identificados na

aplicação do Scrum em equipes dispostas em diferentes ambientes físicos de

trabalho [7]:

7

− Comunicação entre o time – a comunicação frequente entre os integrantes da

equipe é uma das premissas para o sucesso dos projetos que utilizam Scrum. No

entanto, a distância física entre os integrantes dificulta a comunicação e o

alinhamento de ideias entre a equipe;

− acompanhamento do projeto – com a distância entre os integrantes da equipe, é

inviável manter um quadro de tarefas ou mesmo um gráfico burndown em um

único local físico, visto que as informações do projeto estão sempre evoluindo e

um integrante pode não ter como saber o status atual do projeto;

− atualização de tarefas – não é viável para um integrante atualizar o andamento de

sua tarefa em um local em que toda a equipe visualize de imediato a evolução da

tarefa em questão, devido a dispersão geográfica dos integrantes da equipe;

− resolução de impedimentos – dada a dificuldade de se identificar o status atual

do projeto, torna-se complicado identificar possíveis impedimentos. Com isso, a

resolução destes impedimentos fica praticamente inviável, ocasionando

problemas na evolução do projeto e colocando em risco o sucesso do mesmo,

visto que uma das principais características do Scrum é a possibilidade de

identificar futuros problemas e resolvê-los de forma antecipada.

b) Soluções - Com base nos problemas identificados, formam levantadas algumas

técnicas que podem ser aplicadas para viabilizar a utilização do Scrum em projetos

desenvolvidos por equipes distribuídas:

− Armazenamento centralizado – utilizando um local único para armazenar os

dados do projeto, é possível centralizar o acesso às informações, possibilitando

que todos os integrantes da equipe visualizem o status do projeto, além de

permitir a atualização das tarefas por parte de cada um dos integrantes;

− controle de concorrência – o armazenamento centralizado das informações,

com acesso paralelo realizado pelos participantes, requer um controle de

concorrência para evitar, por exemplo, que mais de um integrante realize

atualizações em uma mesma informação e ao mesmo tempo. Este controle é

necessário para manter a integridade dos dados e a confiabilidade das

informações;

− acesso móvel – com a evidente expansão da utilização de dispositivos móveis,

uma alternativa interessante para realizar consultas e atualizações de

informações é o acesso móvel. Com isso, os integrantes da equipe podem

8

verificar o andamento do projeto e também atualizar suas tarefas através de

dispositivos móveis;

− ferramenta de apoio – para aplicar as soluções identificadas para utilização do

Scrum em equipes distribuídas, pode ser utilizada uma ferramenta de apoio,

com foco no Scrum e que permita armazenamento e acesso a informações em

um local centralizado e também disponibilize acesso móvel a estas

informações.

5 TRABALHOS RELACIONADOS

Existem algumas ferramentas desenvolvidas no intuito de viabilizar a aplicação do

Scrum para o gerenciamento e acompanhamento de projetos de software. A seguir, uma breve

descrição das características de algumas destas ferramentas:

a) FireScrum – é uma ferramenta para apoio ao planejamento e gerenciamento de

projetos utilizando Scrum, com foco em equipes geograficamente distribuídas. A

idéia do FireScrum surgiu através de um trabalho de dissertação de mestrado,

motivado pela falta de suporte na aplicação do Scrum para equipes distribuídas em

outras ferramentas similares [8]. Contudo, o FireScrum não disponibiliza uma

aplicação móvel, para que os usuários consigam acesso as suas funcionalidades

através de dispositivos móveis;

b) ScrumWorks – ferramenta focada nas características da metodologia Scrum para

auxiliar no planejamento e acompanhamento de projetos. Armazena informações de

forma centralizada e permite o acompanhamento de projetos executados por

equipes distribuídas [9]. Porém, não disponibiliza um aplicativo móvel para que as

informações do projeto possam ser acessadas fora das estações de trabalho

convencionais;

c) KanbanBoard – aplicativo móvel que representa um quadro de tarefas baseado na

metodologia Scrum. No entanto, suas raias para movimentação de tarefas são fixas

e as informações não são armazenadas de maneira centralizada, possibilitando o

acesso apenas no dispositivo em que a instância do aplicativo foi instalada;

d) Trello – Ferramenta colaborativa para auxiliar o gerenciamento de projetos baseada

no uso do quadro de tarefas. Esta ferramenta armazena informações de maneira

centralizada e também disponibiliza uma aplicação móvel para que os usuários

tenham sempre acesso ao andamento dos projetos [10]. No entanto, o Trello, apesar

9

de utilizar o quadro de tarefas, não é necessariamente focado na metodologia

Scrum, já que não provê suporte aos demais itens presentes na metodologia, como o

gráfico de burndown e as reuniões diárias de acompanhamento do projeto.

Os trabalhos e ferramentas pesquisados abordam a aplicação da metodologia Scrum, ou

pelo menos algumas de suas características, seja em equipes de desenvolvimento distribuídas

geograficamente ou não. Porém, nem todas as ferramentas pesquisadas permitem que os

integrantes das equipes acompanhem o andamento dos projetos através de dispositivos

móveis, proporcionando sempre a visibilidade do status atual dos projetos, mesmo que o

membro do time não esteja em um local físico de trabalho, como por exemplo, em uma

viagem de trabalho ou até mesmo em casa.

Além disso, as ferramentas pesquisadas que permitem este acompanhamento em tempo

real, fazendo uso de informações centralizadas, não abordam todos os pontos e características

da metodologia Scrum.

6 SCRUMMOBILE

Como relatado nas seções anteriores, a aplicação da metodologia Scrum em equipes de

desenvolvimento geograficamente distribuídas não é uma tarefa trivial. Porém, algumas

técnicas podem ser aplicadas, com o apoio de uma ferramenta, para auxiliar no

acompanhamento e gerenciamento de projetos utilizando Scrum em equipes distribuídas.

Conforme citado na seção V, de trabalhos relacionados, existem algumas ferramentas para

apoio à utilização do Scrum. No entanto, há ainda certa carência no que diz respeito a

ferramentas para auxiliar na aplicação da metodologia em um ambiente de desenvolvimento

distribuído.

Para a aplicação das técnicas levantadas, com o intuito de facilitar o uso do Scrum, foi

desenvolvido o ScrumMobile, um modelo baseado em um conjunto de componentes para dar

suporte ao uso do Scrum mesmo em equipes dispersas.

6.1 Arquitetura de Componentes

A arquitetura do ScrumMobile é composta de seis componentes básicos, com

responsabilidades bem definidas e que juntos compõem o modelo proposto. A seguir, serão

detalhados cada um dos componentes básicos que formam arquitetura do ScrumMobile, bem

como suas funcionalidades.

10

A figura 4 ilustra os componentes da arquitetura, bem como a relação entre os

componentes utilizados no desenvolvimento do ScrumMobile para atender a proposta deste

trabalho.

Figura 4 - Diagrama de componentes do modelo ScrumMobile.

Fonte: Autoria própria, 2014.

A relação entre os componentes do ScrumMobile, se dá da seguinte maneira: o

componente de consumo, utilizado pelas aplicações que compõem o componente de

aplicação, aciona o componente de acesso a dados. O componente de acesso a dados realiza as

operações nas informações que estão armazenadas no componente de armazenamento e, caso

a operação seja uma atualização, o componente de acesso a dados aciona o componente de

concorrência, para garantir que a mesma informação não será manipulada ao mesmo tempo

por mais de um usuário. Neste ponto, o componente de acesso a dados retorna a execução

para o componente de consumo, que disponibiliza a informação para a aplicação que está

consumindo o modelo.

Com estes componentes, foi elaborado um modelo onde é possível planejar e

acompanhar projetos de software utilizando a metodologia Scrum, armazenando suas

informações em um único local centralizado, podendo acessá-las a qualquer momento, e

utilizando qualquer aplicação que faça uso dos componentes de acesso a dados, controle de

concorrência e consumo, independentemente da plataforma destas aplicações e ainda

garantindo a integridade das informações, mesmo que vários usuários estiverem manipulando

as mesmas informações.

11

Um maior detalhamento sobre cada um dos componentes que compõem o modelo será

apresentado a seguir:

a) Componente de Armazenamento - O ScrumMobile conta com um armazenamento

de informações utilizando o conceito de nuvem, ou seja, os dados são mantidos em

uma base de dados centralizada, possibilitando acesso a qualquer hora, de qualquer

lugar e por qualquer aplicação que esteja preparada para acessar este componente.

Deste modo, tanto consultas aos dados de projetos, quanto atualizações de tarefas,

são endereçados sempre para a mesma base, ou seja, estas informações estarão

todas concentradas em um único local.

b) Componente de Acesso a Dados - Este componente é responsável por gerenciar o

acesso às informações. Esta camada do modelo disponibiliza funcionalidades

necessárias para realizar consultas e atualizações nas informações que estão

armazenadas no componente de armazenamento. Os componentes de

armazenamento e de acesso estão separados no modelo do ScrumMobile, pois cada

um destes componentes apresenta responsabilidades diferentes e bem definidas. No

primeiro, é realizado apenas o armazenamento da informação. No segundo, são

realizadas consultas e atualizações nestas informações.

c) Componente de Controle de Concorrência - Um dos principais problemas que deve

ser tratado em aplicações distribuídas é o controle de concorrência. Para tanto, o

ScrumMobile possui um componente que realiza o controle de concorrência,

permitindo que apenas um usuário por vez atualize as mesmas informações. Como

a ideia central do modelo do ScrumMobile, é a utilização por equipes distribuídas, é

muito comum que os integrantes das equipes realizem operações paralelas sobre as

mesmas informações. Por exemplo, pode ocorrer a situação em que dois integrantes

da equipe de um projeto estejam tentando atualizar a mesma tarefa, ao mesmo

tempo. Neste caso o modelo tem de garantir que apenas uma alteração seja

realizada. Por isso, este componente é muito importante para o correto

funcionamento do modelo e para a integridade das informações geridas pelo

mesmo.

d) Componente de Consumo - Trata-se de uma Application Programming Interface

(API) contendo funcionalidades voltadas para auxiliar na aplicação do Scrum em

equipes de desenvolvimento geograficamente distribuídas. Esta interface pode ser

utilizada por qualquer aplicação para utilizar o modelo do ScrumMobile,

12

independentemente de sua plataforma, ou seja, podendo ser uma aplicação web,

desktop ou, até mesmo, móvel.

Este componente utiliza o componente de acesso a dados para manipular os dados

armazenados de forma centralizada no componente de armazenamento. Aqui, fica toda a parte

de lógica de negócios desenvolvida para disponibilizar as funcionalidades necessárias para a

utilização do Scrum.

Abaixo são listadas as funcionalidades disponibilizadas pelo componente de consumo

do ScrumMobile:

− Realizar o cadastro de usuários, permitindo a consulta, alteração e exclusão;

− realizar o cadastro de equipes, permitindo a consulta, alteração e exclusão;

− realizar o cadastro de projetos, permitindo a consulta, alteração e exclusão;

− realizar o cadastro de sprints, permitindo a consulta, alteração e exclusão;

− realizar o cadastro de tarefas, permitindo a consulta alteração e exclusão;

− listar projetos de acordo com o usuário autenticado no sistema;

− visualizar o quadro de tarefas das Sprints de um projeto previamente selecionado;

− o quadro de tarefas deve ser dinâmico, podendo variar sua estrutura de raias

conforme o projeto ou Sprint;

− permitir a movimentação das tarefas pelo quadro de tarefas, indicando em qual raia a

tarefa deverá ser posicionada;

− o usuário deve poder atualizar o responsável pelas tarefas;

− o usuário deve poder participar de vários projetos simultaneamente;

− as informações devem ser armazenadas em uma base de dados centralizada;

− não deve ser permitido que mais de um usuário altere a mesma informação ao

mesmo tempo;

− uma informação pode ser consultada por mais de um usuário ao mesmo tempo.

− possibilitar a geração de gráficos de burndown por Sprint;

− possibilitar a realização de reuniões de acompanhamento dos projetos por vídeo

conferência com a equipe do projeto em questão.

− Possibilitar a realização de reuniões de retrospectiva dos projetos por vídeo

conferência com a equipe do projeto em questão.

Na prática, a aplicação que consumir o ScrumMobile, deve fazer a chamada para a

funcionalidade desejada da camada de consumo, passando as informações necessárias. A

camada de consumo realiza o processamento e devolve o resultado para aplicação. Por

13

exemplo, para a visualização de um quadro de tarefas de uma Sprint, a aplicação faz a

chamada para a funcionalidade responsável por montar a visualização do quadro de tarefas,

informando a Sprint desejada. A camada de consumo processa as informações da Sprint

informada e, fazendo uso do componente de acesso a dados, recupera informações da Sprint

necessárias para a elaboração do quadro de tarefas e, por fim, devolve o quadro de tarefas

para a aplicação que fez a chamada.

e) Componente de Autenticação e Autorização - Este componente é composto de um

conjunto de funcionalidades dispostas na API de funcionalidades do componente de

consumo. Entretanto, as funcionalidades que compõem o componente de

autenticação e autorização, foram desenvolvidas especificamente para garantir a

parte de segurança do modelo. Deste modo, é possível separar estas

funcionalidades, das demais da API, caracterizando um componente específico, de

modo a manter a divisão de responsabilidades de cada um dos componentes do

modelo.

O componente de autenticação e autorização disponibiliza funcionalidades de

autenticação através de credenciais informadas pelo usuário. Depois de autenticado, o usuário

tem acesso somente às informações dos projetos em que o mesmo participa. Estas permissões

são garantidas pelas funcionalidades de autorização do componente.

As funcionalidades relativas ao componente de autenticação e autorização são listadas a

seguir:

− Autenticar o usuário no sistema, através de suas credenciais de acesso;

− O usuário autenticado deve acessar somente as informações referentes aos projetos

em que o mesmo participa;

f) Componente de Aplicação - Este componente representa as aplicações

desenvolvidas para consumir o modelo do ScrumMobile. Como o modelo do

ScrumMobile não está vinculado a uma tecnologia específica, estas aplicações

podem ser desenvolvidas em qualquer plataforma, desde que sejam preparadas para

consumir o as funcionalidades disponibilizadas pelo modelo proposto. Com isso,

este componente pode ser composto de aplicações web, desktop ou, até mesmo,

móveis.

Deste modo, as aplicações que fazem uso do ScrumMobile, podem usufruir de uma

série de funcionalidades voltadas para a aplicação do Scrum. Abaixo, são listadas algumas

destas funcionalidades:

− Criar e manter usuários, equipes, projetos, sprints e tarefas;

14

− Visualizar o quadro de tarefas de uma determinada sprint;

− Realizar a movimentação de tarefas no quadro de tarefas;

− Gerar gráficos de burndown;

− Realizar reuniões de acompanhamento e de retrospectiva.

Estas são apenas algumas das funcionalidades que podem ser utilizadas fazendo uso do

modelo ScrumMobile. O modelo pode ser estendido para atender outras funcionalidades que

se façam necessárias para atender requisitos específicos de cada uma das aplicações da

camada de aplicação. Para tanto, é preciso adicionar as funcionalidades necessárias na camada

de consumo do ScrumMobile, para que as aplicações possam utilizá-las de modo a atender

estes requisitos específicos.

6.2 Comparativo

Para realizar um comparativo entre o modelo proposto e os trabalhos relacionados,

foram selecionados alguns critérios levando em conta a aplicação da metodologia Scrum em

equipes distribuídas.

A tabela 1 ilustra as características das ferramentas pesquisadas na seção V, de trabalhos

relacionados, fazendo um comparativo com o modelo ScrumMobile, considerando fatores

levantados para auxiliar na solução do problema da pesquisa.

Quadro 1 - Comparativo entre as ferramentas pesquisadas e o modelo proposto.

Foco no Scrum Acesso Móvel Dados em nuvem

ScrumMobile X X X

FireScrum X X

ScrumWorks X X

KanbanBoard X

Trello X X

Fonte: Autoria Própria, 2014

Com base neste comparativo, pode-se perceber as vantagens na utilização do

ScrumMobile, para auxiliar na utilização do Scrum em equipes distribuídas, possibilitando

armazenamento de informações em nuvem, que possam ser acessadas de uma aplicação

móvel, e que disponibilize itens presentes na metodologia Scrum, como o quadro de tarefas,

15

visualização do gráfico burndown e suporte a reuniões, utilizando ferramentas de vídeo

conferência.

7 PROTÓTIPO

Para validar o modelo proposto, foi desenvolvido um protótipo, com o objetivo de

colocar em prática algumas das funcionalidades previstas pelo modelo ScrumMobile para

auxiliar no planejamento e acompanhamento de projetos de software desenvolvidos por

equipes geograficamente distribuídas. O protótipo desenvolvido foi utilizado para realizar

alguns experimentos e avaliações do modelo.

7.1 Desenvolvimento

O desenvolvimento do protótipo se nas seguintes etapas: criação da base centralizada de

dados, criação do pacote de entidades do projeto, desenvolvimento do módulo de acesso aos

dados, desenvolvimento do controle de concorrência, desenvolvimento de uma API contendo

algumas das funcionalidades dos componentes de consumo e de autenticação e autorização e,

por fim, desenvolvimento de uma aplicação Android, que utiliza a API que representa o

componente de consumo proposto no modelo.

Para o armazenamento das informações em banco de dados foi utilizado o PostgreSQL,

um sistema de gerenciamento de banco de dados desenvolvido pelo departamento de Ciência

da Computação da Universidade da Califórnia, que suporta uma grande parte do padrão SQL

[11]. Para auxiliar no manuseio das informações armazenadas, foi utilizada a ferramenta

pgAdmin, que trata-se de um software gráfico para administração do PostgreSQL [12].

O pacote de entidades, que representa a camada com as classes de modelo do protótipo,

foi criado como um projeto Java, baseado em um módulo Apache Maven, uma ferramenta de

código livre que serve para gerenciar, construir e empacotar projetos [13]. Este projeto Java é

empacotado em um Java Archive (JAR), que é um arquivo compactado utilizado para

distribuir um conjunto de classes Java, possibilitando que outros projetos possam utilizar este

módulo, adicionando o arquivo gerado ao projeto que deseja utilizar o pacote de entidades.

O módulo de acesso a dados é uma aplicação Java Web que roda no Apache Tomcat,

um servidor de aplicações que serve para interpretar aplicações escritas em Java para Web

[14]. Este módulo contém métodos de acesso aos dados da base centralizada, utilizando o

Hibernate, que é a implementação da JBoss para a especificação Java Persistence API (JPA),

16

e serve para realizar o mapeamento objeto-relacional (ORM), ou seja, representa as tabelas de

um banco de dados através de classes Java e realiza operações de persistência [15]. Os

métodos do módulo de acesso a dados são disponibilizados através de serviços baseados em

RESTfull, um simples webservice que utiliza métodos HTTP para a troca de mensagens entre

aplicações [16]. Com isso, qualquer aplicação pode consumir os métodos disponíveis,

acessando os serviços que compõem o componente de acesso a dados.

Durante o acesso as informações, utilizando o módulo de acesso a dados, outro

componente é acionado para realizar o controle de concorrência. Para tanto, foi utilizado o

versionamento automático do Hibernate. Trata-se de um atributo mapeado que é

incrementado automaticamente a cada atualização realizada em determinado objeto. Com este

atributo, o Hibernate realiza o controle de concorrência otimista, ou seja, permite que um

mesmo objeto persistente seja utilizado para consulta em duas sessões diferentes, porém, se

ocorrer alguma modificação concorrente no objeto, será lançada uma exceção, indicando que

o mesmo objeto já está sendo atualizado por outra sessão. Neste caso, fica a cargo da

aplicação tratar a exceção, indicando ao usuário que o registro já está em uso. Este controle de

concorrência é interessante, pois pode também ser utilizado em um ambiente de larga escala,

com várias instâncias da aplicação rodando em paralelo, visto que o controle é realizado pelo

Hibernate com base no valor de uma coluna de uma tabela do banco de dados.

No protótipo do ScrumMobile, o controle de concorrência é realizado a nível de

movimentação de cada tarefa, afim de impedir que um usuário efetue várias movimentações e,

ao fim do procedimento, não consiga persistir as informações, caso alguma das tarefas

movimentadas também esteja sendo manipula por um outro usuário paralelamente.

Por fim, para representar no protótipo o componente de consumo, foi desenvolvida uma

API composta de métodos baseados em RESTfull utilizados para acessar o módulo de acesso

a dados. Esta API é utilizada por uma aplicação móvel, baseada em Android, que é uma

plataforma para dispositivos móveis desenvolvida pela Open Handset Alliance, liderada pela

Google. Esta aplicação utiliza o pacote de entidades e também o módulo de acesso a dados e o

componente de controle de concorrência por meio da API com os métodos de consumo.

A figura 5 ilustra a arquitetura utilizada para o desenvolvimento do protótipo, baseado

no modelo proposto, separando suas camadas e também demonstrando o grau de

relacionamento entre elas.

17

Figura 5 - Arquitetura utilizada para desenvolver o protótipo

Fonte: Autoria própria, 2014

7.2 Funcionalidades do Protótipo

Algumas funcionalidades do modelo do ScrumMobile foram elencadas para o

desenvolvimento de um protótipo baseado no modelo ScrumMobile. Abaixo, são listadas as

funcionalidades desenvolvidas no protótipo:

− Autenticar o usuário no sistema, através de suas credenciais de acesso;

− listar projetos de acordo com o usuário autenticado no sistema;

− visualizar o quadro de tarefas das Sprints de um projeto previamente selecionado;

− o quadro de tarefas deve ser dinâmico, podendo variar conforme o projeto ou

Sprint;

− permitir a movimentação das tarefas pelo quadro de tarefas, indicando em qual raia

a tarefa deverá ser posicionada;

− o usuário deve poder atualizar o responsável pelas tarefas;

− o usuário deve poder participar de múltiplos projetos;

− as informações devem ser armazenadas em uma base de dados centralizada;

− não deve ser permitido que mais de um usuário altere a mesma informação ao

mesmo tempo;

18

− uma informação pode ser consultada por mais de um usuário ao mesmo tempo.

Para atender aos requisitos listados, foram elaborados casos de uso que especificam em

detalhes e agrupam os requisitos do modelo. A figura 6 representa o diagrama de casos de uso

elaborado para o desenvolvimento das funcionalidades especificadas para o protótipo,

baseado no modelo proposto.

Figura 6 - Diagrama de Casos de Uso do protótipo

Fonte: Autoria própria, 2014

Com base nas funcionalidades levantadas para o protótipo, foi desenvolvida uma

aplicação móvel, baseada na plataforma Android, que realiza o consumo dos componentes de

acesso a dados e controle de concorrência propostos no modelo. A figura 7 mostra a tela da

aplicação que representa o quadro de tarefas de uma Sprint em andamento. É possível

visualizar as tarefas em suas respectivas raias. Cada raia representa o atual status em que a

tarefa se encontra. Cada tarefa é representada por um Post-it, contendo o nome da tarefa, a

pontuação e o responsável atual, se houver.

O quadro de tarefas é dinâmico. Nele pode-se adicionar, alterar ou remover as raias

durante o andamento da Sprint. Além disso, as informações relativas ao andamento das

tarefas, como a data de início e fim, são armazenadas na base centralizada, possibilitando que

seja desenvolvido um gráfico de burndown, com base nestas informações.

O acesso ao quadro de tarefas é limitado aos usuários que integram a equipe responsável

pelo projeto no qual o quadro de tarefas está associado. Este controle de acesso é feito através

de autenticação com login e senha. No momento da autenticação, são carregados os projetos

em que o usuário autenticado participa.

19

Figura 7 - Tela com o quadro de tarefas, conforme projeto selecionado

Fonte: Autoria própria, 2014

A figura 8 apresenta a tela para movimentação de tarefas. Nesta tela é possível

movimentar uma tarefa pelo quadro de tarefas, indicando quem passa a ser o responsável pela

tarefa e para qual raia do quadro a tarefa deve ser posicionada. Caso a tarefa esteja concluída,

deve ser movida para a raia que indica o status de tarefa finalizada e o sistema armazena a

data em que a tarefa foi concluída.

Quando todas as tarefas da Sprint forem movidas para a raia que representa as tarefas

finalizadas, então a Sprint está concluída. Neste ponto pode ser criada uma nova Sprint, com

um novo quadro de tarefas e assim por diante, até que o projeto seja concluído.

Figura 8 - Tela para atualização de tarefas

Fonte: Autoria própria, 2014

Ao fim do projeto, todas as informações do mesmo estarão armazenadas na base

centralizada. Deste modo, é possível desenvolver funcionalidades como geração de relatórios

de histórico do andamento dos projetos e visualização de gráficos burndonw das Sprints.

20

8 EXPERIMENTOS E RESULTADOS

Nesta seção serão apresentados os procedimentos utilizados na coleta de informações e

avaliação do modelo ScrumMobile, bem como a análise dos resultados obtidos. Além disso,

será feita a demonstração do controle de concorrência desenvolvido no protótipo, baseado no

componente de controle de concorrência do ScrumMobile.

8.1 Método de Avaliação

Para a avaliação deste trabalho, foi selecionado o método qualitativo, por tratar-se de

uma abordagem que enfatiza a análise de entrevistados, de modo a compreender a experiência

destes em relação ao uso do protótipo, baseado no modelo do ScrumMobile [17].

O objetivo da realização das entrevistas é buscar identificar se o modelo proposto

atende os objetivos da pesquisa para a utilização da metodologia Scrum em equipes de

desenvolvimento distribuídas, através do protótipo desenvolvido, além de buscar sugestões de

melhoria e trabalhos futuros a serem desenvolvidos junto ao modelo.

8.2 Coleta de Informações

Para avaliar o modelo proposto, foram realizadas entrevistas com profissionais da área

de tecnologia da informação. Os entrevistados foram submetidos a um questionário após uma

breve apresentação onde foram demonstradas as funcionalidades do protótipo desenvolvido

bem como as características e objetivos do modelo proposto.

A coleta de informações se deu através das seguintes etapas:

1. Apresentação do problema da pesquisa ao entrevistado;

2. Apresentação do modelo ScrumMobile ao entrevistado;

3. Apresentação do protótipo desenvolvido com base no modelo proposto ao

entrevistado;

4. Entrevistado é conduzido a operar o protótipo, de modo a se familiarizar com suas

funcionalidades;

5. Entrevistado é convidado a responder as perguntas do questionário, listadas no

Apêndice A.

21

8.3 Análise dos resultados

A avaliação foi aplicada em 10 pessoas que atuam na área de tecnologia da informação.

Todos os entrevistados foram apresentados ao protótipo do ScrumMobile operaram o

aplicativo e responderam ao questionário.

A tabela 2 apresenta os resultados da aplicação do questionário nos 10 entrevistados,

quantificando as respostas das perguntas apresentadas no questionário no Apêndice A e

listadas a seguir, onde a resposta deveria ser obrigatoriamente Sim ou Não.

1. Você acredita que o uso de metodologias ágeis pode ajudar de forma significativa

no gerenciamento de projetos de software?

2. Você acredita que o uso de equipe de desenvolvimento geograficamente distribuída

possa representar ganho de produtividade e redução nos custos de um projeto?

3. Você considera que existe uma carência de ferramentas para auxiliar a aplicação de

metodologias ágeis em projetos de software desenvolvidos por equipes

geograficamente distribuídas?

4. Você acredita que o ScrumMobile pode auxiliar na aplicação da metodologia

Scrum para o planejamento e acompanhamento de projetos de software

desenvolvidos por equipes geograficamente distribuídas? Justifique sua resposta.

5. Qual melhoria em relação ao modelo ScrumMobile você poderia sugerir, no sentido

de auxiliar na aplicação do Scrum em equipes de desenvolvimento geograficamente

distribuídas ou ainda no sentido de melhorar a usabilidade do modelo?

Tabela 1 - Resultados da aplicação do questionário

Sim Não

Pergunta 1 90% 10%

Pergunta 2 70% 30%

Pergunta 3 100% 0%

Pergunta 4 100% 0%

Fonte: Autoria própria, 2014

Como pode ser visto na tabela 2, todos os entrevistados afirmaram que Sim, é possível

utilizar o ScrumMobile para auxiliar no gerenciamento e acompanhamento de projetos de

22

software desenvolvidos por equipes geograficamente distribuídas, mostrando a aprovação dos

10 entrevistados em relação ao modelo proposto e evidenciando que o modelo pode ser

tomado como solução para o problema da pesquisa.

Como a avaliação utilizada foi o método qualitativo, foi possível que cada um dos

entrevistados justificasse por qual razão consideraram que o ScrumMobile pode ser utilizado

na aplicação do Scrum em projetos de software desenvolvidos por equipes geograficamente

distribuídas. Abaixo são listadas as justificativas mais relevantes, colhidas durante o processo

de avaliação com os entrevistados:

Realmente as metodologias ágeis tem sido cada vez mais utilizadas para o gerenciamento de projetos de software. No entanto, de fato, existe ainda pouco suporte para sua aplicação em equipes distribuídas. Com o ScrumMobile, abre-se a possibilidade de acompanhar a evolução de projetos desenvolvidos de maneira distribuída. (Analista de Sistemas).

O modelo permite a aplicação do Scrum distribuído disponibilizando funcionalidades que realmente são necessárias para o sucesso dos projetos geridos pela metodologia. Além disso, é adaptável à necessidade de diferentes equipes, visto que conta com um modelo dinâmico de quadro de tarefas. (Analista de Sistemas).

A solução proposta atinge um nicho realmente carente em relação à evolução das metodologias ágeis. O fato de poder visualizar o andamento de um projeto mesmo fora de seu local de trabalho facilita muito o gerenciamento, principalmente nos casos onde o gestor coordenar vários projetos em paralelo, situação muito comum na área de desenvolvimento de software. (Gerente de Projetos).

O fato de o modelo poder ser utilizado em qualquer plataforma, garante uma flexibilidade interessante para acompanhar os projetos fora de uma estação fixa de trabalho. Além disso, o controle de concorrência desenvolvido permite que se mantenha a integridade das informações dos projetos, mesmo que em ambientes distribuídos e, conseqüentemente, com alto grau de paralelismo. (Arquiteto de Software).

Os entrevistados, quando abordados no sentido de indicarem melhorias para o

ScrumMobile, contribuíram com uma série de sugestões. A seguir, são listadas as principais

sugestões de melhorias coletadas durante a aplicação do processo de avaliação com os

entrevistados:

− possibilitar uma forma de marcar uma tarefa como pré-requisito de outra, ou seja,

para que se inicie a execução de uma tarefa, é necessário que outra esteja pronta;

− criar uma funcionalidade para que seja possível a troca de mensagens entre os

membros de uma equipe, de modo a facilitar a comunicação, principalmente entre

23

aqueles que estão executando tarefas que dependam entre si, ou seja, que dependam

umas das outras;

− criar uma funcionalidade para indicar que uma tarefa está impedida de ser

executada, indicando o motivo. seria interessante aplicar alguma forma de destacar

esta tarefa no quadro de tarefas, como, por exemplo, alterando a cor da mesma, e

com a possibilidade de visualizar o motivo e o andamento da resolução do

impedimento;

− possibilitar a geração de relatórios gerenciais, permitindo a visualização de métricas

entre projetos, com o objetivo de produzir dados para planejamento de futuros

projetos;

− criar um módulo de configuração do quadro de tarefas, possibilitando que cada

equipe defina o padrão de pontuação das tarefas, cor de tarefas e raias, dentre outras

configurações que possam ser mantidas dentro de cada equipe ou projeto.

Como foi possível identificar no processo de avaliação, o ScrumMobile foi bem aceito

entre os entrevistados da área de tecnologia da informação. Deste modo, é viável afirmar que

o modelo realmente contribui para a solução do problema identificado neste trabalho, que

remete a aplicação da metodologia Scrum em ambientes de desenvolvimento geograficamente

distribuídos.

8.4 Testes de Concorrência

O componente de controle de concorrência do ScrumMobile é utilizado para garantir

que as tarefas não sejam alteradas por mais de um usuário ao mesmo tempo, com base na no

recurso de lock otimista do hibernate. Por exemplo, quando uma tarefa é incluída no sistema,

ela tem sua versão inicializada com o valor zero. Sempre que ocorre uma atualização na tarefa

o valor da versão é incrementado e armazendo. Deste modo se o usuário recuperar uma tarefa

para atualizar que esteja com o valor de versão igual a 2 e, antes de submeter a alteração,

algum outro usuário alterar a mesma tarefa, ela passará a ter o valor de versão igual a 3. No

momento da atualização, o Hibernate verifica que a versão que está sendo submetida é

diferente da versão atual do banco de dados e lança um erro indicando que a tarefa já foi

alterada por outro usuário.

Para simular uma situação de concorrência na alteração de tarefas foi utilizado o

RESTClient, um plugin do navegador Firefox que permite o acesso à métodos RESTFull.

Deste modo foi possível simular a alteração de uma tarefa via navegador, acessando o método

24

da API de consumo responsável por atualizar tarefas. A tarefa a ser alterada foi informada

utilizando o formato JavaScript Object Notation (JSON). A simulação foi realizada da

seguinte maneira:

Na aplicação móvel foi selecionada uma tarefa qualquer para atualização no quadro de

tarefas. Em seguida, a mesma tarefa foi recuperada via RESTClient, onde é possível

visualizar a versão da tarefa, conforme mostra a figura 9.

Figura 9 - Recuperação da tarefa via RESTClient.

Fonte: Autoria própria, 2014.

Depois disso, a tarefa foi atualizada utilizando novamente o RESTClient. Foi alterado o

nome da tarefa e, com isso, o mecanismo de controle de concorrência automaticamente

incrementa a versão da tarefa atualizada, como pode ser visto na figura 10, que ilustra uma

nova consulta na tarefa, após a atualização.

25

Figura 10 - Recuperação da tarefa já atualizada via RESTClient.

Fonte: Autoria própria, 2014

Por fim, utilizando agora a aplicação móvel, foi feita a tentativa de atualização da tarefa.

No entanto, o controle de concorrência verifica que a tarefa recuperada possui valor de versão

igual a zero e no banco de dados, a mesma já foi incrementada para 1 durante a operação de

atualização realizada com o RESTClient. Deste modo é lançado um erro tratado pela

aplicação móvel para indicar que a tarefa foi alterada paralelamente, conforme ilustrado na

figura 11.

Figura 11 - Componente de concorrência detecta alteração paralela.

Fonte: Autoria própria, 2014

10 CONSIDERAÇÕES FINAIS

Com o crescimento da utilização de metodologias ágeis para o planejamento e

acompanhamento de projetos de software e também considerando a tendência no uso de

26

equipes de desenvolvimento distribuídas, nota-se uma carência tecnológica para oferecer

suporte na aplicação de métodos ágeis em equipes geograficamente distribuídas. Neste

sentido, foi desenvolvido o modelo ScrumMobile, com o objetivo de solucionar os problemas

identificados nesta pesquisa, ou seja, de viabilizar a aplicação da metodologia ágil Scrum,

para o acompanhamento de projetos em equipes de desenvolvimento geograficamente

distribuídas.

Conforme observado na avaliação, o modelo proposto alcançou o objetivo da pesquisa,

visto que os profissionais da área de desenvolvimento de software consideraram que o

ScrumMobile possibilita e ajuda a aplicação do Scrum em equipes dispersas, facilitando a

comunicação entre os membros da equipe, possibilitando o acompanhamento do projeto de

qualquer lugar e por qualquer aplicação que esteja preparada para consumir os recursos do

modelo. Ainda neste sentido, o modelo permite que os usuários visualizem gráficos de

burndown, realizem reuniões de acompanhamento e de retrospectiva, acompanhem o quadro

de tarefas de cada Sprint planejada para o projeto e também que os usuários atualizem suas

respectivas tarefas dentro do quadro de tarefas em questão. Com isso, as principais

funcionalidades para a aplicação da metodologia Scrum, são disponibilizadas pelo modelo

para a utilização em ambientes de desenvolvimento distribuídos.

Como sugestão de futuras melhorias, considerando a avaliação aplicada, é possível

desenvolver algumas funcionalidades com intuito de melhorar o modelo proposto, como a

criação de relatórios gerenciais que possibilitem o fornecimento de informações que possam

ser utilizadas para o planejamento de futuros projetos, criação de funcionalidades para

trabalhar o impedimento de tarefas e também a visualização das tarefas que se encontrarem

em impedimento e também desenvolver um esquema de comunicação entre os componentes

da equipe que estejam executando tarefas dentro de um mesmo contexto, como por exemplo,

no caso de um integrante do time ter realizado a análise de um caso de uso e outro integrante

for realizar o desenvolvimento deste caso de uso. Neste caso seria interessante que os dois

pudessem se comunicar a qualquer momento pela ferramenta, podendo também gerar algum

tipo de histórico das conversas para posteriores consultas.

ABSTRACT

This paper presents a tool to assist in managing projects using the Scrum agile methodology

applied in geographically distributed development teams, storing your data in the cloud, using

a centralized database. With this, you can plan and track projects using mobile devices,

27

allowing the team to always be with visibility into the current status of projects, regardless of

the geographical location of its members.

Testing and analysis of results were performed on a prototype developed on the model of

the proposed tool, as well as comparisons with similar research and tools, which prove the

effectiveness of the tool, as the monitoring of projects using Scrum in distributed teams.

REFERÊNCIAS

[1] THE STATE OF AGILE DEVELOPMENT. Annual Survey, U.SA, 3.ed., 2008, Alpharetta, GA. Disponível em: <http://www.versionone.com/pdf3rdAnnualStateOf Agile_FullDataReport.pdf>. Acesso em: 05 fev. 2014. [2] RISING, L.; JANOFF, N. S. The Scrum Software Development Process for Small Teams. IEEE Software,New York, v. 17, n. 4 jul-ago. 2000. [3] CARVALHO, B.V.; MELLO, C.H.P. Revisão, Análise e Classificação da Literatura sobre o Método de Desenvolvimento de Produtos Ágil Scrum. In: SIMPÓSIO DE ADMINISTRAÇÃO, LOGÍSTICA E OPERAÇÕES INTERNACIONAIS (SIMPOI), 12., 2009, São Paulo, SP. Anais ... São Paulo, SP, 2009. [4] KNIBERG, H. Scrum e XP direto das Trincheiras: Como nós fazemos Scrum, 2007. Disponível em: <http://www.infoq.com/br/minibooks/kanban-scrum-minibook>. Acesso em: 26 mar. 2014. [5] CARVALHO, C. E. C.; ABANTES, C. T.; CAMEIRA, R. F. Métodos Ágeis de Desenvolvimento de Software: Um Caso Prático de Aplicação do Scrum. In: ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO, 31., 2011, Belo Horizonte. Anais ..., Belo Horizonte, 2011. [6] KNIBERG, H; SKARIN, M. Kanban e Scrum: Obtendo o melhor de ambos, 2010. Disponível em: <http://www.infoq.com/br/minibooks/scrum-xp-from-thetrenches>. Acesso em: 06 mar. 2014. [7] OLIVEIRA, Eneida; LIMA, Rosangela. Estado da Arte Sobre o Uso do Scrum em Ambientes de Desenvolvimento Distribuído de Software. Revista de Sistemas e Computação, Salvador, v. 1, n. 2, p. 106 - 119, jul./dez. 2011. [8] CAVALCANTI, E.; MACIEL, T. M. M.; ALBUQUERQUE, J. Ferramenta Open-Source para Apoio ao Uso do Scrum por Equipes Distribuídas. In: WORKSHOP DE DESENVOLVIMENTO DISTRIBUÍDO DE SOFTWARE, 3., 2009, Fortaleza. 2009. p. 51 – 60. Disponível em: <http://www.ldb.dcc.ufmg. bdbcomp/servlet/Trabalho?id=7701>. Acesso em: 04 maio 2014. [9] SCRUMWORKS Pro. Disponível em : < http://www.collab.net/products/ scrumworks>. Acesso em: 05 mar. 2014.

28

[10] TRELLO. Disponível em: <http:// www.trello.com>. Acesso em: 05 mar. 2014. [11] POSTGRESQL [sistema de gerenciamento de banco de dados]. Disponível em: <http://pgdocptbr.sourceforge.net/pg80/. Acesso em: 10 maio 2014 [12] PGADMIN INTERNALS. Disponível em: <http://wiki.postgresql.org/wiki/>. Acesso em: 08 mar. 2014. [13] APACHE Maven. Disponível em: < http://maven.apache.org/>. Acesso em: 10 mar. 2014 [14] APACHE Tomcat. Disponível em: <https://tomcat.apache.org/>. Acesso em: 10 mar. 2014. [15] HIBERNTAE ORM. Disponíve em: <http://hibernate.org/orm/>. Acesso em: 10 mar. 2014. [16] RODRIGUEZ, A. RESTful Web Services: The Basics, 2008. Disponível em: <https://www.ibm.com/developerworks/webservices/library/ws-%20restful/>. Acesso em: 22 mar. 2014. [17] GOODE, William J. Métodos em pesquisa social. 3. ed. São Paulo: Ed. Nacional, 1969. [18] MOUNTAIN GOAT SOFTWARE. Topics in Scrum: Scrum Task Board. 2014. Disponível em: < http://www.mountaingoatsoftware.com/agile/scrum/task-boards >. Acesso em: mar. 2014.

29

APÊNDICE A

Questionário utilizado na avaliação do modelo ScrumMobile, aplicado na forma de

entrevistas com profissionais da área da tecnologia da informação. Abaixo são listadas as

perguntas que compõem o questionário:

1. Você acredita que o uso de metodologias ágeis pode ajudar de forma significativa o

gerenciamento de projetos de software?

( ) Sim ( ) Não

2. Você acredita que o uso de equipe de desenvolvimento geograficamente distribuída

possa representar ganho de produtividade e redução nos custos de um projeto?

( ) Sim ( ) Não

3. Você considera que existe uma carência de ferramentas para auxiliar na aplicação

de metodologias ágeis em projetos de software desenvolvidos por equipes

geograficamente distribuídas?

( ) Sim ( ) Não

4. Você acredita que o ScrumMobile pode auxiliar na aplicação da metodologia Scrum

para planejamento e acompanhamento de projetos de software desenvolvidos por

equipes geograficamente distribuídas?

( ) Sim ( ) Não.

Justifique sua resposta:

Qual melhoria em relação ao modelo ScrumMobile você poderia sugerir, no sentido de

auxiliar na aplicação do Scrum em equipes de desenvolvimento geograficamente distribuídas

ou ainda no sentido de melhorar a usabilidade do modelo?