SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Implementação de um Módulo de Gestão de Projetos
                   baseado em Scrum para o Expresso Livre
    Rafael Raymundo da Silva1,2, Guilherme S. Lacerda2,3, Vinicius Gadis Ribeiro2,3
                       1
                           Serviço Federal de Processamento de Dados (SERPRO)
                                        Porto Alegre – RS – Brasil
           2
               Faculdade de Informática – Centro Universitário Ritter dos Reis (UniRitter)
                                      Porto Alegre – RS – Brasil
     3
         Curso de Sistemas de Informação – Faculdade Cenecista Nossa Senhora dos Anjos
                              (FACENSA) – Gravataí – RS - Brasil
                      rafael.silva@serpro.gov.br, {guilherme_lacerda,
                                vinicius}@uniritter.edu.br

          Abstract. Collaborative work using free software is a reality today. However,
          there are management issues of software development are not always met,
          when employed to traditional management approaches. Thus, it was expected
          that the use of Agile Methodologies met some of these demands. The work
          presents the implementation of a Scrum-based project management module for
          Expresso Livre.

          Resumo. Trabalho colaborativo empregando software livre é realidade nos
          dias atuais. Contudo, há questões de gerenciamento de desenvolvimento de
          software nem sempre atendidas, quando empregadas as abordagens
          tradicionais de gerenciamento. Assim, espera-se que o emprego de
          Metodologias Ágeis atendesse a algumas dessas demandas. O presente
          trabalho tem por objetivo apresentar a construção de um módulo de gestão de
          projetos, baseado em Scrum, para a ferramenta Expresso Livre1.

1. Introdução
O uso de ferramentas colaborativas para integração de equipes é uma tendência dentro
das empresas. Devido ao fato das ferramentas de software livre estarem cada vez mais
estáveis e de fácil acesso a comunidade, tornaram-se uma opção interessante para estas
demandas. O sistema colaborativo Expresso Livre (Expresso Livre, 2011) é uma solução
que contempla as funções de correio eletrônico, agenda, catálogo de endereços, IM2,
entre outras.
      O Expresso Livre é uma ferramenta baseada no eGroupWare3 e que foi
customizada para atender necessidades da comunidade brasileira. O seu


1
    Informações sobre o projeto podem ser obtidas em <http://www.expressolivre.org>
2
    Ferramenta de troca de mensagens instantâneas
3
    Ferramenta alemã de groupware. Mais informações em <www.egroupware.org>
desenvolvimento conta com a participação de cinco empresas nacionais, chamadas
atores, sendo quatro empresas públicas e uma empresa privada. Dentre elas está o
SERPRO4 que possui, na unidade Porto Alegre, uma equipe de nove pessoas para
auxiliar no desenvolvimento desse sistema. Além da colaboração destes atores, existe
ainda a participação da comunidade de software livre, participando ativamente no
processo.
       Para gerenciar este projeto, cada ator utiliza sua forma particular de trabalho,
apoiado por ferramentas padronizadas e pelo modelo atual de desenvolvimento do
projeto. Na unidade de Porto Alegre do SERPRO, a abordagem usada é o Scrum.
        O Scrum é framework de processos com foco em gestão de projetos, baseado em
práticas e valores ágeis, promovendo a comunicação efetiva entre os membros da
equipe, através de curtas iterações (Schwaber, 2004). Seu principal objetivo é prover um
framework para gerenciamento de projetos onde, a partir de um backlog inicial, prioriza-
se o trabalho que será realizado na iteração (denominado sprint), gerando um potencial
produto no final de cada ciclo. Este trabalho é desenvolvido com acompanhamento
diário (daily scrum meetings) e de final de sprint (sprint retrospective), com o objetivo
de reduzir riscos e promover a melhoria contínua. É fundamental a entrega incremental
do software para o cliente, pois desta forma ele pode começar a utilizar o sistema e obter
benefícios a cada nova entrega o quanto antes, isso serve de incentivo para dar
prosseguimento ao projeto. A equipe de desenvolvimento também se beneficia do
feedback do cliente, ajustando as novas funcionalidades às futuras entregas.
       As Metodologias Ágeis estão cada vez mais em evidência, devido
principalmente a sua adoção e aceitação pela Indústria de TI (Ambler, 2008). A
principal diferença das metodologias ágeis em relação às metodologias tradicionais é o
enfoque na adaptação, visando ter o mínimo necessário5 para a realização do trabalho.
Com esta estratégia, busca-se aceitar e trabalhar a mudança, reduzindo custos de
implementação (Highsmith e Cockburn, 2001).
        Com uso diário do Scrum, surgiu a idéia de estender estas práticas usadas pela
equipe para a construção de um módulo de gestão de projetos vinculado ao Expresso
Livre, que fosse baseado no Scrum. Assim, muitos usuários e empresas que utilizam a
ferramenta também poderão se beneficiar desta abordagem para gestão ágil de projetos,
auxiliando também equipes distribuídas, cenário comum em projetos de software livre.
       Além do estudo do Scrum, foram analisadas várias ferramentas de apoio a gestão
de projetos, baseadas em métodos ágeis. Dentro do estudo realizado, merecem destaque
as ferramentas AgileFant (AgileFant, 2011), IceScrum (IceScrum, 2011) e Pronto
(Pronto, 2011). Todas elas podem ser acessadas através de um navegador, possibilitando
que múltiplas equipes de desenvolvimento trabalhem remotamente. Uma lista mais
completa de ferramentas de gestão ágil de projetos pode ser visualizada em (Cohn,
2011).
      Este artigo está organizado da seguinte forma: na seção 2 é apresentado o projeto
Expresso Livre; na seção 3, são apresentados detalhes da implementação do módulo de

4
    Serviço Federal de Processamento de Dados. Mais informações em <www.serpro.gov.br>
5
    barelly suficient
gestão de projetos, bem como as funcionalidades disponibilizadas nesta versão inicial e,
finalmente na seção 4, são apresentadas as principais dificuldades e benefícios
alcançados, bem como trabalhos futuros para complementação do módulo.

2. Projeto Expresso Livre
O projeto Expresso Livre é atualmente composto por uma comunidade de cinco atores
que contribuem para o desenvolvimento em distintas atividades, além da comunidade de
software livre (Expresso Livre, 2011). Além dos encontros virtuais para discutir
correções e novas implementações, existem reuniões presenciais realizadas em dois
grandes eventos da comunidade brasileira: FISL (Fórum Internacional de Software
Livre) e o LatinoWare (Conferência Latinoamericana de Software Livre). Nesses
encontros, são realizadas reuniões que antecedem os fóruns e elencam novos rumos para
melhoria do software.
       Apesar das distintas necessidades dos atores e da comunidade, foi possível
moldar a ferramenta para atender a todas estas necessidades. As características muito
específicas são implementadas de forma configurável. Atualmente, os atores estão
unificando suas funcionalidades ao código principal do Expresso Livre para ter uma
única versão, gerando assim mais força de trabalho ao desenvolvimento da ferramenta.
Cada ator possui um responsável com acesso para corrigir problemas ou realizar
eventuais melhorias diretamente no controle de versão do repositório. As demandas são
encaminhadas para a ferramenta de controle de tarefas6 da comunidade, utilizada para
documentação e controle do que está sendo feito, por quem e quando a atividade é
concluída. Para participar da comunidade e colaborar para o projeto, é necessário
conhecer as ferramentas adotas e o modelo atual de desenvolvimento.
       No desenvolvimento do Expresso Livre, são usadas várias ferramentas, algumas
padronizadas pela comunidade do projeto, outras de uso interno de cada ator. A
linguagem de programação usada é o PHP, tendo o PostgreSQL como banco de dados.
No caso do SERPRO, usa-se internamente o Bugzilla para gestão de erros e
acompanhamento de alterações, onde são registrados padrões para criação, testes e
fechamentos de cada bug. Como ferramenta de controle de versão, é utilizado o
Subversion, integradas as IDEs7 NetBeans e Eclipse PDT (PHP Development Tools). Na
comunidade, está disponível a ferramenta de fórum para tirar dúvidas dos usuários, um
Wiki em que é postada toda documentação, um track para o cadastro de bugs e novas
funcionalidades e o repositório do Subversion. Dessa forma, os atores criam
internamente suas soluções e posteriormente repassam para o código na comunidade,
onde todos podem ter acesso.
        Como modelo de desenvolvimento da equipe do SERPRO no projeto Expresso
Livre, foi adotado Scrum, pelo fato de serem necessárias diversas modificações no
processo para atender determinadas especificidades. Foi criado um quadro de Kanban
físico onde eram registradas as demandas para o trabalho semanal, apoiado por curtas
reuniões diárias para apresentar o andamento das tarefas.

6
     Trac: Sistema de cadastro           de   funcionalidades   e   bugs.   Mais   informações   em
     <http://trac.expressolivre.org>
7
    Integrated Development Environment
Com as práticas do Scrum, obteve-se uma visível melhora no controle das tarefas
e solução de bugs, constatado nos relatórios de atividades observados pelo Scrum
Master8. O andamento das atividades ficou mais claro para todos os membros da equipe
e isso aumentou o senso de time, principalmente na resolução de problemas individuais
que eram levados para a equipe, gerando mais colaboração.
       Por este motivo, surgiu a idéia de implementar um módulo de software para
gestão de projetos como um módulo do Expresso Livre, beneficiando também a
comunidade de software livre e outras empresas que adotem o Expresso Livre como
ferramenta de colaboração e usem Scrum como abordagem para gestão de projetos.

3. Implementação do Módulo de Gestão de Projetos baseado no Scrum
O módulo foi desenvolvido seguindo as especificações tecnológicas do projeto Expresso
Livre, mantendo a instalação via setup da aplicação, respeitando a estrutura padrão e os
recursos da API do groupware. Embora siga a estrutura do projeto, o módulo é
totalmente independente das demais funcionalidades e outros módulos do Expresso
Livre, podendo ser instalado nas mais variadas versões da aplicação. Sua utilização é
suportada nos navegadores Firefox 3.x, IE 6, 7 e 8, além do navegador Chrome 7.x.
        Foram utilizadas tecnologias para facilitar a interação com o módulo, tornando
transparente a gerência de projetos pelas equipes de desenvolvimento e padronizando o
controle e acompanhamento das atividades. Nesta primeira versão, as funcionalidades
disponíveis são: a) cadastro de um novo projeto, permitindo o vinculo de participantes
ao projeto; b) criação de tarefas planejadas para a execução desse projeto; c) criação e
execução dos sprints, que são blocos das tarefas cadastradas e selecionadas para a
iteração e d) uso do quadro de Kanban com atualização constante das atividades pelos
desenvolvedores.
        Para uma maior integração com os outros módulos do Expresso Livre, foram
feitas buscas LDAP para inserir participantes diretamente da base da ferramenta. Todas
as interações do módulo foram realizadas de forma assíncrona, otimizando o
processamento da página. Foi utilizado o framework Jquery,9 que facilitou a
implementação das abas e movimentação dos post-its virtuais no quadro de Kanban.
        Ao acessar a ferramenta, é apresentada uma listagem de projetos cadastrados
(figura 1). Caso não existam projetos, apenas será apresentada a opção de cadastro de
novos projetos. O usuário que fizer o cadastro do projeto é considerado seu dono. O
dono de um projeto pode realizar operações como execução, edição ou exclusão do
mesmo. Nessa área, é possível realizar ações com os projetos cadastrados de acordo com
as permissões do usuário logado no Expresso Livre. Para os demais usuários, é apenas
permitido a ação de abrir/executar o projeto.




8
    Scrum Master: Líder da equipe a aplicação das práticas ágeis, atuando como mediador entre a equipe e
      qualquer influência desestabilizadora.
9
     Jquery: Framework para desenvolvimento de requisições assíncronas. Mais informações em
      <http://jquery.com>
Figura 1: Lista de projetos cadastrados

        O product backlog é apresentado, com o respectivo usuário que cadastrou a
tarefa. Ao abrir/executar um projeto, são habilitadas as opções de inserção de tarefas ao
product backlog. A ferramenta também permite o registro da retrospectiva de cada
sprint após o seu término, mantendo um histórico de todas as dificuldades encontradas e
melhorias que devem ser trabalhadas com a equipe.
        Uma das idéias principais da construção deste módulo era o de permitir a
visibilidade de tarefas para times distribuídos. Isso é possível através de um Kanban
virtual, construído na ferramenta. Para isso, basta selecionar um projeto para visualizar
o sprint que está sendo executado no momento por determinada equipe de
desenvolvedores. Com o sprint backlog selecionado, todas as tarefas contempladas no
sprint são apresentadas no Kanban. Cada tarefa é representada por um post-it virtual,
possuindo algumas informações importantes como responsável pela tarefa, nível de
urgência, título, descrição e estimativa de esforço (figura 2).




      Figura 2: Andamento de um Sprint, representado por um quadro de Kanban

      A urgência das tarefas é representada por um marcador (verde para tarefas
normais e vermelho para tarefas urgentes). Quando uma tarefa evolui, o desenvolvedor
move a demanda para a próxima coluna do Kanban. Dessa forma, todos os demais
envolvidos no processo podem tomar conhecimento de como está o andamento das
tarefas, apenas visualizando o posicionamento delas no quadro. Esta versão, bem como
a documentação desenvolvida, está disponível para a comunidade em um repositório do
Google Code10.

4. Considerações Finais e Trabalhos Futuros
O módulo de gestão de projetos baseado no Scrum integrado ao Expresso Livre, embora
ainda limitado em suas funcionalidades, já conquistou grande aceitação da comunidade
do projeto. No LatinoWare de 2010, este módulo foi premiado como melhor software
livre desenvolvido para o groupware Expresso Livre. A ferramenta também foi
apresentada à comunidade ágil, através do evento AgileDay, realizado na PUCRS,
também em 2010.
        Todo o desenvolvimento da ferramenta foi realizado em um repositório separado
da comunidade. Recentemente, o Comitê Gestor aprovou o módulo oficialmente, que
foi migrado para o repositório do Expresso Livre11. Juntamente com o groupware, será
mais fácil concluir o desenvolvimento e realizar melhorias à ferramenta, trabalhando
agora em comunidade. Ainda, como implementações futuras, pretende-se fazer a
integração do módulo com o ExpressoMail, usar o calendário para geração de alertas e
ampliar a parte de métricas de projeto, com a geração de gráficos de burndown e project
velocity.

5. Referências
AgileFant (2011). “AgileFant.org - Home”. Disponível em: <http://www.agilefant.org>. Acesso em
   31.mar.2011.

Ambler, Scott (2008). “Agile Adoption Rate Survey Results: February 2008”. Disponível em:
  <http://www.ambysoft.com/surveys/agileFebruary2008.html>. Acesso em 31.mar.2011.
Cohn, Mike (2011). “All Product Backlog and User Story Management Tools for Agile and Scrum
   Projects”. Disponível em: <http://www.userstories.com/products>. Acesso em 31.mar.2011.
Expresso Livre (2011). “Expresso Livre – Powered                     by   eGroupware”.     Disponível    em:
   <http://www.expressolivre.org>. Acesso em 31.mar.2011.
Highsmith, Jim e Cockburn, Alistair (2001) “Agile Software Development: The business of innovation”,
   Prepared by the IEEE Computer Society/ACM Joint Task Force.
Hunt, John (2006) “Agile Software Construction”, Springer-Verlag London.
IceScrum (2011). “IceScrum: Savouring Agility”. Disponível em: <http://www.icescrum.org/en/>. Acesso
   em 31.mar.2011.
Pronto (2011). “Pronto – Sistema para Gerenciamento de Projetos Scrum”. Disponível em:
   <http://pronto.bluesoft.com.br>. Acesso em 31.mar.2011.
Schwaber, Ken e Beedle, Mike (2001) “Agile Software Development with Scrum”, Prentice Hall.
Schwaber, Ken (2004) “Agile Project Management with Scrum”, Microsoft Press.


10
      A versão atual do módulo e documentação                       associada   pode     ser   baixada   em
     <http://code.google.com/p/expressoalpha/>
11
     O módulo já está disponível para              a   comunidade    do   Expresso     Livre   no   endereço
     <http://trac.expressolivre.org/ticket/1823>

Contenu connexe

Tendances

Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Keila Freitas
 
Apresentação sobre gerenciamento
Apresentação sobre gerenciamentoApresentação sobre gerenciamento
Apresentação sobre gerenciamento
Levi Tancredo
 
Criacao.Fabrica.Open.Source
Criacao.Fabrica.Open.SourceCriacao.Fabrica.Open.Source
Criacao.Fabrica.Open.Source
Annkatlover
 
Desenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas LeanDesenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas Lean
Renan Daré
 

Tendances (20)

Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
 
Gestão de Projetos com Redmine
Gestão de Projetos com RedmineGestão de Projetos com Redmine
Gestão de Projetos com Redmine
 
DevOps pela visão de um QA
DevOps pela visão de um QADevOps pela visão de um QA
DevOps pela visão de um QA
 
Dru - Desenvolvimento para Reuso
Dru - Desenvolvimento para ReusoDru - Desenvolvimento para Reuso
Dru - Desenvolvimento para Reuso
 
Ferramentas Livres para a Gestão de Projetos Ágeis com Scrum
Ferramentas Livres para a Gestão de Projetos Ágeis com ScrumFerramentas Livres para a Gestão de Projetos Ágeis com Scrum
Ferramentas Livres para a Gestão de Projetos Ágeis com Scrum
 
Apresentação sobre gerenciamento
Apresentação sobre gerenciamentoApresentação sobre gerenciamento
Apresentação sobre gerenciamento
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
 
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrFermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
 
Criacao.Fabrica.Open.Source
Criacao.Fabrica.Open.SourceCriacao.Fabrica.Open.Source
Criacao.Fabrica.Open.Source
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
Firescrum - UFRA 2013
Firescrum - UFRA 2013Firescrum - UFRA 2013
Firescrum - UFRA 2013
 
Desenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas LeanDesenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas Lean
 
Métodos ágeis
Métodos ágeisMétodos ágeis
Métodos ágeis
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!
 
Gerenciamento de Projetos com o Redmine
Gerenciamento de Projetos com o RedmineGerenciamento de Projetos com o Redmine
Gerenciamento de Projetos com o Redmine
 
Git e redmine
Git e redmineGit e redmine
Git e redmine
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App Insights
 
Redmine
RedmineRedmine
Redmine
 
Renan st matsushita-2010
Renan st matsushita-2010Renan st matsushita-2010
Renan st matsushita-2010
 
DevOps - visão geral
DevOps - visão geralDevOps - visão geral
DevOps - visão geral
 

Similaire à Implementação de um módulo de gestão de projetos baseado em Scrum para o Expresso Livre

Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
Annkatlover
 
Sistema de Integração de Informações Médicas (SIIM)
Sistema de Integração de Informações Médicas (SIIM)Sistema de Integração de Informações Médicas (SIIM)
Sistema de Integração de Informações Médicas (SIIM)
Jerônimo Medina Madruga
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_Warmling
Chaordic
 

Similaire à Implementação de um módulo de gestão de projetos baseado em Scrum para o Expresso Livre (20)

Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento
 
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
 
Wsl2011 Módulo SCRUM para Expresso Livre
Wsl2011 Módulo SCRUM para Expresso LivreWsl2011 Módulo SCRUM para Expresso Livre
Wsl2011 Módulo SCRUM para Expresso Livre
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
 
Desenvolvimento de ferramenta para automação de tarefas
Desenvolvimento de ferramenta para automação de tarefasDesenvolvimento de ferramenta para automação de tarefas
Desenvolvimento de ferramenta para automação de tarefas
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
RAD - Métodos ágeis
RAD - Métodos ágeisRAD - Métodos ágeis
RAD - Métodos ágeis
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test Manager
 
O uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de softwareO uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de software
 
Artigo23
Artigo23Artigo23
Artigo23
 
Metodologias ágeis de desenvolvimento trabalho
Metodologias ágeis de desenvolvimento   trabalhoMetodologias ágeis de desenvolvimento   trabalho
Metodologias ágeis de desenvolvimento trabalho
 
Artigo
ArtigoArtigo
Artigo
 
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de softwareScrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
 
Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
 
Desenvolvimento de softwares/sistemas
Desenvolvimento de softwares/sistemasDesenvolvimento de softwares/sistemas
Desenvolvimento de softwares/sistemas
 
Uma abordagem de entrega contínua para empresas de desenvolvimento de software
Uma abordagem de entrega contínua para empresas de desenvolvimento de softwareUma abordagem de entrega contínua para empresas de desenvolvimento de software
Uma abordagem de entrega contínua para empresas de desenvolvimento de software
 
Sistema de Integração de Informações Médicas (SIIM)
Sistema de Integração de Informações Médicas (SIIM)Sistema de Integração de Informações Médicas (SIIM)
Sistema de Integração de Informações Médicas (SIIM)
 
A expansão do PHP no governo brasileiro
A expansão do PHP no governo brasileiroA expansão do PHP no governo brasileiro
A expansão do PHP no governo brasileiro
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_Warmling
 

Plus de Wildtech

QCon 2016 - Estratégias e Desafios na Implantação de Lean no Setor Público e ...
QCon 2016 - Estratégias e Desafios na Implantação de Lean no Setor Público e ...QCon 2016 - Estratégias e Desafios na Implantação de Lean no Setor Público e ...
QCon 2016 - Estratégias e Desafios na Implantação de Lean no Setor Público e ...
Wildtech
 

Plus de Wildtech (20)

Voltando para as raízes do desenvolvimento ágil
Voltando para as raízes do desenvolvimento ágilVoltando para as raízes do desenvolvimento ágil
Voltando para as raízes do desenvolvimento ágil
 
O que a agilidade me ensinou no desenvolvimento de software
O que a agilidade me ensinou no desenvolvimento de softwareO que a agilidade me ensinou no desenvolvimento de software
O que a agilidade me ensinou no desenvolvimento de software
 
XP e a Academia
XP e a AcademiaXP e a Academia
XP e a Academia
 
Abordagens para adoção/transformação ágil através de mentoring e coaching
Abordagens para adoção/transformação ágil através de mentoring e coachingAbordagens para adoção/transformação ágil através de mentoring e coaching
Abordagens para adoção/transformação ágil através de mentoring e coaching
 
TDC 2016 - Agilidade além da TI
TDC 2016 - Agilidade além da TITDC 2016 - Agilidade além da TI
TDC 2016 - Agilidade além da TI
 
TDC 2016 - Desvendando o Onion Architecture
TDC 2016 - Desvendando o Onion ArchitectureTDC 2016 - Desvendando o Onion Architecture
TDC 2016 - Desvendando o Onion Architecture
 
TDC 2016 - Retrospectivas como Catalisadores de Melhoria Contínua
TDC 2016 - Retrospectivas como Catalisadores de Melhoria ContínuaTDC 2016 - Retrospectivas como Catalisadores de Melhoria Contínua
TDC 2016 - Retrospectivas como Catalisadores de Melhoria Contínua
 
QCon 2016 - Estratégias e Desafios na Implantação de Lean no Setor Público e ...
QCon 2016 - Estratégias e Desafios na Implantação de Lean no Setor Público e ...QCon 2016 - Estratégias e Desafios na Implantação de Lean no Setor Público e ...
QCon 2016 - Estratégias e Desafios na Implantação de Lean no Setor Público e ...
 
Agile Clinic - Agile Coaching Patterns
Agile Clinic - Agile Coaching PatternsAgile Clinic - Agile Coaching Patterns
Agile Clinic - Agile Coaching Patterns
 
TDC 2016 - O Novo Professor
TDC 2016 - O Novo ProfessorTDC 2016 - O Novo Professor
TDC 2016 - O Novo Professor
 
Swarm Debugging
Swarm DebuggingSwarm Debugging
Swarm Debugging
 
[XPConfBR2014] Desvendando o eXtreme Programming
[XPConfBR2014] Desvendando o eXtreme Programming[XPConfBR2014] Desvendando o eXtreme Programming
[XPConfBR2014] Desvendando o eXtreme Programming
 
(AgileBrazil2014) Agilidade no Judiciário: um relato de experiência de Agile ...
(AgileBrazil2014) Agilidade no Judiciário: um relato de experiência de Agile ...(AgileBrazil2014) Agilidade no Judiciário: um relato de experiência de Agile ...
(AgileBrazil2014) Agilidade no Judiciário: um relato de experiência de Agile ...
 
[Agile brazil2014] Bad Smells em Bancos de Dados
[Agile brazil2014] Bad Smells em Bancos de Dados[Agile brazil2014] Bad Smells em Bancos de Dados
[Agile brazil2014] Bad Smells em Bancos de Dados
 
(TDC2014) Oba! Cenários Complexos
(TDC2014) Oba! Cenários Complexos(TDC2014) Oba! Cenários Complexos
(TDC2014) Oba! Cenários Complexos
 
[VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de ...
[VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de ...[VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de ...
[VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de ...
 
5S em Código: Seminário de PHP "Show me the code!"
5S em Código: Seminário de PHP "Show me the code!"5S em Código: Seminário de PHP "Show me the code!"
5S em Código: Seminário de PHP "Show me the code!"
 
Retrospectiva: O motor da melhoria contínua (4a. do Conhecimento - PROCERGS)
Retrospectiva: O motor da melhoria contínua (4a. do Conhecimento - PROCERGS)Retrospectiva: O motor da melhoria contínua (4a. do Conhecimento - PROCERGS)
Retrospectiva: O motor da melhoria contínua (4a. do Conhecimento - PROCERGS)
 
Descrição Tutorial Coding By Example (CBSoft2013)
Descrição Tutorial Coding By Example (CBSoft2013)Descrição Tutorial Coding By Example (CBSoft2013)
Descrição Tutorial Coding By Example (CBSoft2013)
 
CBSoft 2013 - Descrição dos Problemas (CbE)
CBSoft 2013 - Descrição dos Problemas (CbE)CBSoft 2013 - Descrição dos Problemas (CbE)
CBSoft 2013 - Descrição dos Problemas (CbE)
 

Implementação de um módulo de gestão de projetos baseado em Scrum para o Expresso Livre

  • 1. Implementação de um Módulo de Gestão de Projetos baseado em Scrum para o Expresso Livre Rafael Raymundo da Silva1,2, Guilherme S. Lacerda2,3, Vinicius Gadis Ribeiro2,3 1 Serviço Federal de Processamento de Dados (SERPRO) Porto Alegre – RS – Brasil 2 Faculdade de Informática – Centro Universitário Ritter dos Reis (UniRitter) Porto Alegre – RS – Brasil 3 Curso de Sistemas de Informação – Faculdade Cenecista Nossa Senhora dos Anjos (FACENSA) – Gravataí – RS - Brasil rafael.silva@serpro.gov.br, {guilherme_lacerda, vinicius}@uniritter.edu.br Abstract. Collaborative work using free software is a reality today. However, there are management issues of software development are not always met, when employed to traditional management approaches. Thus, it was expected that the use of Agile Methodologies met some of these demands. The work presents the implementation of a Scrum-based project management module for Expresso Livre. Resumo. Trabalho colaborativo empregando software livre é realidade nos dias atuais. Contudo, há questões de gerenciamento de desenvolvimento de software nem sempre atendidas, quando empregadas as abordagens tradicionais de gerenciamento. Assim, espera-se que o emprego de Metodologias Ágeis atendesse a algumas dessas demandas. O presente trabalho tem por objetivo apresentar a construção de um módulo de gestão de projetos, baseado em Scrum, para a ferramenta Expresso Livre1. 1. Introdução O uso de ferramentas colaborativas para integração de equipes é uma tendência dentro das empresas. Devido ao fato das ferramentas de software livre estarem cada vez mais estáveis e de fácil acesso a comunidade, tornaram-se uma opção interessante para estas demandas. O sistema colaborativo Expresso Livre (Expresso Livre, 2011) é uma solução que contempla as funções de correio eletrônico, agenda, catálogo de endereços, IM2, entre outras. O Expresso Livre é uma ferramenta baseada no eGroupWare3 e que foi customizada para atender necessidades da comunidade brasileira. O seu 1 Informações sobre o projeto podem ser obtidas em <http://www.expressolivre.org> 2 Ferramenta de troca de mensagens instantâneas 3 Ferramenta alemã de groupware. Mais informações em <www.egroupware.org>
  • 2. desenvolvimento conta com a participação de cinco empresas nacionais, chamadas atores, sendo quatro empresas públicas e uma empresa privada. Dentre elas está o SERPRO4 que possui, na unidade Porto Alegre, uma equipe de nove pessoas para auxiliar no desenvolvimento desse sistema. Além da colaboração destes atores, existe ainda a participação da comunidade de software livre, participando ativamente no processo. Para gerenciar este projeto, cada ator utiliza sua forma particular de trabalho, apoiado por ferramentas padronizadas e pelo modelo atual de desenvolvimento do projeto. Na unidade de Porto Alegre do SERPRO, a abordagem usada é o Scrum. O Scrum é framework de processos com foco em gestão de projetos, baseado em práticas e valores ágeis, promovendo a comunicação efetiva entre os membros da equipe, através de curtas iterações (Schwaber, 2004). Seu principal objetivo é prover um framework para gerenciamento de projetos onde, a partir de um backlog inicial, prioriza- se o trabalho que será realizado na iteração (denominado sprint), gerando um potencial produto no final de cada ciclo. Este trabalho é desenvolvido com acompanhamento diário (daily scrum meetings) e de final de sprint (sprint retrospective), com o objetivo de reduzir riscos e promover a melhoria contínua. É fundamental a entrega incremental do software para o cliente, pois desta forma ele pode começar a utilizar o sistema e obter benefícios a cada nova entrega o quanto antes, isso serve de incentivo para dar prosseguimento ao projeto. A equipe de desenvolvimento também se beneficia do feedback do cliente, ajustando as novas funcionalidades às futuras entregas. As Metodologias Ágeis estão cada vez mais em evidência, devido principalmente a sua adoção e aceitação pela Indústria de TI (Ambler, 2008). A principal diferença das metodologias ágeis em relação às metodologias tradicionais é o enfoque na adaptação, visando ter o mínimo necessário5 para a realização do trabalho. Com esta estratégia, busca-se aceitar e trabalhar a mudança, reduzindo custos de implementação (Highsmith e Cockburn, 2001). Com uso diário do Scrum, surgiu a idéia de estender estas práticas usadas pela equipe para a construção de um módulo de gestão de projetos vinculado ao Expresso Livre, que fosse baseado no Scrum. Assim, muitos usuários e empresas que utilizam a ferramenta também poderão se beneficiar desta abordagem para gestão ágil de projetos, auxiliando também equipes distribuídas, cenário comum em projetos de software livre. Além do estudo do Scrum, foram analisadas várias ferramentas de apoio a gestão de projetos, baseadas em métodos ágeis. Dentro do estudo realizado, merecem destaque as ferramentas AgileFant (AgileFant, 2011), IceScrum (IceScrum, 2011) e Pronto (Pronto, 2011). Todas elas podem ser acessadas através de um navegador, possibilitando que múltiplas equipes de desenvolvimento trabalhem remotamente. Uma lista mais completa de ferramentas de gestão ágil de projetos pode ser visualizada em (Cohn, 2011). Este artigo está organizado da seguinte forma: na seção 2 é apresentado o projeto Expresso Livre; na seção 3, são apresentados detalhes da implementação do módulo de 4 Serviço Federal de Processamento de Dados. Mais informações em <www.serpro.gov.br> 5 barelly suficient
  • 3. gestão de projetos, bem como as funcionalidades disponibilizadas nesta versão inicial e, finalmente na seção 4, são apresentadas as principais dificuldades e benefícios alcançados, bem como trabalhos futuros para complementação do módulo. 2. Projeto Expresso Livre O projeto Expresso Livre é atualmente composto por uma comunidade de cinco atores que contribuem para o desenvolvimento em distintas atividades, além da comunidade de software livre (Expresso Livre, 2011). Além dos encontros virtuais para discutir correções e novas implementações, existem reuniões presenciais realizadas em dois grandes eventos da comunidade brasileira: FISL (Fórum Internacional de Software Livre) e o LatinoWare (Conferência Latinoamericana de Software Livre). Nesses encontros, são realizadas reuniões que antecedem os fóruns e elencam novos rumos para melhoria do software. Apesar das distintas necessidades dos atores e da comunidade, foi possível moldar a ferramenta para atender a todas estas necessidades. As características muito específicas são implementadas de forma configurável. Atualmente, os atores estão unificando suas funcionalidades ao código principal do Expresso Livre para ter uma única versão, gerando assim mais força de trabalho ao desenvolvimento da ferramenta. Cada ator possui um responsável com acesso para corrigir problemas ou realizar eventuais melhorias diretamente no controle de versão do repositório. As demandas são encaminhadas para a ferramenta de controle de tarefas6 da comunidade, utilizada para documentação e controle do que está sendo feito, por quem e quando a atividade é concluída. Para participar da comunidade e colaborar para o projeto, é necessário conhecer as ferramentas adotas e o modelo atual de desenvolvimento. No desenvolvimento do Expresso Livre, são usadas várias ferramentas, algumas padronizadas pela comunidade do projeto, outras de uso interno de cada ator. A linguagem de programação usada é o PHP, tendo o PostgreSQL como banco de dados. No caso do SERPRO, usa-se internamente o Bugzilla para gestão de erros e acompanhamento de alterações, onde são registrados padrões para criação, testes e fechamentos de cada bug. Como ferramenta de controle de versão, é utilizado o Subversion, integradas as IDEs7 NetBeans e Eclipse PDT (PHP Development Tools). Na comunidade, está disponível a ferramenta de fórum para tirar dúvidas dos usuários, um Wiki em que é postada toda documentação, um track para o cadastro de bugs e novas funcionalidades e o repositório do Subversion. Dessa forma, os atores criam internamente suas soluções e posteriormente repassam para o código na comunidade, onde todos podem ter acesso. Como modelo de desenvolvimento da equipe do SERPRO no projeto Expresso Livre, foi adotado Scrum, pelo fato de serem necessárias diversas modificações no processo para atender determinadas especificidades. Foi criado um quadro de Kanban físico onde eram registradas as demandas para o trabalho semanal, apoiado por curtas reuniões diárias para apresentar o andamento das tarefas. 6 Trac: Sistema de cadastro de funcionalidades e bugs. Mais informações em <http://trac.expressolivre.org> 7 Integrated Development Environment
  • 4. Com as práticas do Scrum, obteve-se uma visível melhora no controle das tarefas e solução de bugs, constatado nos relatórios de atividades observados pelo Scrum Master8. O andamento das atividades ficou mais claro para todos os membros da equipe e isso aumentou o senso de time, principalmente na resolução de problemas individuais que eram levados para a equipe, gerando mais colaboração. Por este motivo, surgiu a idéia de implementar um módulo de software para gestão de projetos como um módulo do Expresso Livre, beneficiando também a comunidade de software livre e outras empresas que adotem o Expresso Livre como ferramenta de colaboração e usem Scrum como abordagem para gestão de projetos. 3. Implementação do Módulo de Gestão de Projetos baseado no Scrum O módulo foi desenvolvido seguindo as especificações tecnológicas do projeto Expresso Livre, mantendo a instalação via setup da aplicação, respeitando a estrutura padrão e os recursos da API do groupware. Embora siga a estrutura do projeto, o módulo é totalmente independente das demais funcionalidades e outros módulos do Expresso Livre, podendo ser instalado nas mais variadas versões da aplicação. Sua utilização é suportada nos navegadores Firefox 3.x, IE 6, 7 e 8, além do navegador Chrome 7.x. Foram utilizadas tecnologias para facilitar a interação com o módulo, tornando transparente a gerência de projetos pelas equipes de desenvolvimento e padronizando o controle e acompanhamento das atividades. Nesta primeira versão, as funcionalidades disponíveis são: a) cadastro de um novo projeto, permitindo o vinculo de participantes ao projeto; b) criação de tarefas planejadas para a execução desse projeto; c) criação e execução dos sprints, que são blocos das tarefas cadastradas e selecionadas para a iteração e d) uso do quadro de Kanban com atualização constante das atividades pelos desenvolvedores. Para uma maior integração com os outros módulos do Expresso Livre, foram feitas buscas LDAP para inserir participantes diretamente da base da ferramenta. Todas as interações do módulo foram realizadas de forma assíncrona, otimizando o processamento da página. Foi utilizado o framework Jquery,9 que facilitou a implementação das abas e movimentação dos post-its virtuais no quadro de Kanban. Ao acessar a ferramenta, é apresentada uma listagem de projetos cadastrados (figura 1). Caso não existam projetos, apenas será apresentada a opção de cadastro de novos projetos. O usuário que fizer o cadastro do projeto é considerado seu dono. O dono de um projeto pode realizar operações como execução, edição ou exclusão do mesmo. Nessa área, é possível realizar ações com os projetos cadastrados de acordo com as permissões do usuário logado no Expresso Livre. Para os demais usuários, é apenas permitido a ação de abrir/executar o projeto. 8 Scrum Master: Líder da equipe a aplicação das práticas ágeis, atuando como mediador entre a equipe e qualquer influência desestabilizadora. 9 Jquery: Framework para desenvolvimento de requisições assíncronas. Mais informações em <http://jquery.com>
  • 5. Figura 1: Lista de projetos cadastrados O product backlog é apresentado, com o respectivo usuário que cadastrou a tarefa. Ao abrir/executar um projeto, são habilitadas as opções de inserção de tarefas ao product backlog. A ferramenta também permite o registro da retrospectiva de cada sprint após o seu término, mantendo um histórico de todas as dificuldades encontradas e melhorias que devem ser trabalhadas com a equipe. Uma das idéias principais da construção deste módulo era o de permitir a visibilidade de tarefas para times distribuídos. Isso é possível através de um Kanban virtual, construído na ferramenta. Para isso, basta selecionar um projeto para visualizar o sprint que está sendo executado no momento por determinada equipe de desenvolvedores. Com o sprint backlog selecionado, todas as tarefas contempladas no sprint são apresentadas no Kanban. Cada tarefa é representada por um post-it virtual, possuindo algumas informações importantes como responsável pela tarefa, nível de urgência, título, descrição e estimativa de esforço (figura 2). Figura 2: Andamento de um Sprint, representado por um quadro de Kanban A urgência das tarefas é representada por um marcador (verde para tarefas normais e vermelho para tarefas urgentes). Quando uma tarefa evolui, o desenvolvedor move a demanda para a próxima coluna do Kanban. Dessa forma, todos os demais
  • 6. envolvidos no processo podem tomar conhecimento de como está o andamento das tarefas, apenas visualizando o posicionamento delas no quadro. Esta versão, bem como a documentação desenvolvida, está disponível para a comunidade em um repositório do Google Code10. 4. Considerações Finais e Trabalhos Futuros O módulo de gestão de projetos baseado no Scrum integrado ao Expresso Livre, embora ainda limitado em suas funcionalidades, já conquistou grande aceitação da comunidade do projeto. No LatinoWare de 2010, este módulo foi premiado como melhor software livre desenvolvido para o groupware Expresso Livre. A ferramenta também foi apresentada à comunidade ágil, através do evento AgileDay, realizado na PUCRS, também em 2010. Todo o desenvolvimento da ferramenta foi realizado em um repositório separado da comunidade. Recentemente, o Comitê Gestor aprovou o módulo oficialmente, que foi migrado para o repositório do Expresso Livre11. Juntamente com o groupware, será mais fácil concluir o desenvolvimento e realizar melhorias à ferramenta, trabalhando agora em comunidade. Ainda, como implementações futuras, pretende-se fazer a integração do módulo com o ExpressoMail, usar o calendário para geração de alertas e ampliar a parte de métricas de projeto, com a geração de gráficos de burndown e project velocity. 5. Referências AgileFant (2011). “AgileFant.org - Home”. Disponível em: <http://www.agilefant.org>. Acesso em 31.mar.2011. Ambler, Scott (2008). “Agile Adoption Rate Survey Results: February 2008”. Disponível em: <http://www.ambysoft.com/surveys/agileFebruary2008.html>. Acesso em 31.mar.2011. Cohn, Mike (2011). “All Product Backlog and User Story Management Tools for Agile and Scrum Projects”. Disponível em: <http://www.userstories.com/products>. Acesso em 31.mar.2011. Expresso Livre (2011). “Expresso Livre – Powered by eGroupware”. Disponível em: <http://www.expressolivre.org>. Acesso em 31.mar.2011. Highsmith, Jim e Cockburn, Alistair (2001) “Agile Software Development: The business of innovation”, Prepared by the IEEE Computer Society/ACM Joint Task Force. Hunt, John (2006) “Agile Software Construction”, Springer-Verlag London. IceScrum (2011). “IceScrum: Savouring Agility”. Disponível em: <http://www.icescrum.org/en/>. Acesso em 31.mar.2011. Pronto (2011). “Pronto – Sistema para Gerenciamento de Projetos Scrum”. Disponível em: <http://pronto.bluesoft.com.br>. Acesso em 31.mar.2011. Schwaber, Ken e Beedle, Mike (2001) “Agile Software Development with Scrum”, Prentice Hall. Schwaber, Ken (2004) “Agile Project Management with Scrum”, Microsoft Press. 10 A versão atual do módulo e documentação associada pode ser baixada em <http://code.google.com/p/expressoalpha/> 11 O módulo já está disponível para a comunidade do Expresso Livre no endereço <http://trac.expressolivre.org/ticket/1823>