E
STUDO DE
F
ERRAMENTAS EM
S
OFTWARE
L
IVRE PARA
G
ESTÃO
Á
GIL DE
P
ROJETOS DE
D
ESENVOLVIMENTO DE
S
OFTWARE
Trabalho de conclusão do curso Lato Sensu em Desenvolvimento de Sistemas em Software Livre da Universidade Católica de Brasília.
INTRODUÇÃO
23/08/201
1
Atualmente nota-se uma busca
incessante das organizações no uso
de métodos ágeis e melhores
práticas
de
gerenciamento
de
projetos.
É cada vez mais comum a presença
de metodologias ágeis no mercado
de desenvolvimento de software.
INTRODUÇÃO
23/08/201
1
Porém o controle de vários projetos utilizando-se apenas quadro de tarefas, planilhas de texto e post-its acaba por
OBJETIVOS
23/08/201
1
Com o intuito de apresentar soluções
disponíveis para contornar este
problema, pretende-se neste trabalho
comparar algumas ferramentas open
source para gerenciamento ágil de
projetos, facilitando a adoção de
software livre para suporte a gestão
ágil de projetos de desenvolvimento
de software.
SOFTWARE LIVRE
23/08/201
ENGENHARIA DE SOFTWARE E
GESTÃO DE PROJETOS
23/08/201 1 GESTÃO DE PROJETOS ENGENHARIA DE SOFTWAREÉ uma disciplina de engenharia relacionada com todos os aspectos da produção de software, desde os estágios iniciais de especificação dos sistema até sua manutenção.
ENGENHARIA
“Arte de aplicar os conhecimentos científicos à invenção, aperfeiçoamento ou utilização da técnica industrial em todas as suas determinações”. (Michaellis)
METODOLOGIAS ÁGEIS PARA GESTÃO DE
PROJETOS DE SOFTWARE
23/08/201
1
Uma metodologia pode ser dita ágil quando efetua o desenvolvimento de software de forma incremental, colaborativa, direta e adaptativa (ABRAHAMSSON, 2002). Os métodos ágeis surgiram no início da década de 90, em decorrência da insatisfação dos profissionais de
desenvolvimento de software, com a rigidez e resultados
limitados obtidos através do uso de práticas tradicionais de gestão de projetos.
METODOLOGIAS ÁGEIS PARA GESTÃO DE
PROJETOS DE SOFTWARE
23/08/201 1Manifesto ágil
Indivíduos einterações Ao invés de Processos e ferramentas Software
funcionando Ao invés de Documentaçãoabrangente Colaboração com o
cliente Ao invés de Negociação de contratos Responder a
METODOLOGIAS ÁGEIS PARA GESTÃO DE
PROJETOS DE SOFTWARE
23/08/201
METODOLOGIAS ÁGEIS PARA GESTÃO DE
PROJETOS DE SOFTWARE
23/08/201
1
Métodos ágeis são às vezes chamados de métodos leves, especificamente porque eles são menos prescritivos que os métodos tradicionais, ou seja, possuem menos regras a
serem seguidas. Vale ressaltar que o primeiro princípio do manifesto ágil é “Indivíduos e Interações ao invés de
Processos e Ferramentas” (KNIBERG; SKARIN, 2009).
Os processos ágeis buscam evitar desperdício de energia e focar o trabalho na entrega de valor ao cliente.
O processo XP e o estilo de gerenciamento Scrum são algumas das principais metodologias ágeis em uso na comunidade de TI.
EXTREME PROGRAMMING - XP
23/08/201
1
XP é um método leve para que equipes
pequenas ou médias desenvolvam software
em face a requisitos vagos ou que mudem
constantemente.
Seu principal objetivo é o desenvolvimento
de software com qualidade, por meio de
um estilo de desenvolvimento focado nas
melhores
práticas
de
programação,
EXTREME PROGRAMMING - XP
23/08/201 1 Valores • Feedback • Comunicação • Coragem • Simplicidade • Respeito Princípios • Pequenos passos • Qualidade • Melhoria • Responsabilidade aceita • Reflexão • Fluxo • ... Práticas • Cliente Presente • Programação em par • Código coletivo • Integração contínua • Releases curtos • Refatoração • Teste • ...EXTREME PROGRAMMING - XP
23/08/201
SCRUM
23/08/201
1
Scrum é um framework dentro do qual podemos empregar
diversos processos e técnicas. O papel do Scrum é fazer transparecer a eficácia relativa das práticas de desenvolvimento para que possamos melhorá-las, enquanto provê um framework dentro do qual produtos complexos podem ser desenvolvidos (SCHWABER, 2009).
Scrum, que é fundamentado na teoria de controle de processos
empíricos, emprega uma abordagem iterativa e incremental para otimizar a previsibilidade e controlar riscos.
SCRUM
23/08/201
F
ERRAMENTAS EMS
OFTWAREL
IVRE PARAG
ERENCIAMENTO ÁGIL DEP
ROJETOS DES
OFTWARE23/08/201
1
Atualmente existe uma ampla variedade de
softwares livres e comerciais para gerenciamento ágil de projetos. Este artigo compara somente
ferramentas open source e priorizou pela escolha de projetos em desenvolvimento ativo, que
demonstraram o uso significativo, considerando uma combinação de volume de download, atividades de discussão e quantidade de referências para a
ferramenta na internet.
As ferramentas escolhidas foram: XPlanner-Plus, Agilefant e Scrumdo.
XPLANNER-PLUS
23/08/201
1
O XPlanner-Plus é uma ferramenta open source baseada na web de planejamento e acompanhamento de projetos para equipes de desenvolvimento ágil, disponível sob licença LGPLv3.
Baseado no software Xplanner, uma das primeiras ferramentas web para gestão ágil de projetos.
É implementado usando Java, JSP, Struts, Hibernate, MySQL ou PostgreSQL, JasperReports, dentre outros (XPLANNER, 2011).
XPLANNER-PLUS
23/08/201
1
Modelo simples de planejamento;
Suporte para armazenamento e monitoramento
de projetos, iterações, histórias de usuário e tarefas;
Controle de histórias não concluídas;
Envio de notificações a respeito de alocação de histórias e tarefas;
Monitoramento online e geração de folha de registro de horas individual e da equipe;
Geração de medidas (velocidade da equipe, tempo individual, entre outras);
Geração de gráficos de velocidade da iteração, de progresso (burndown), distribuição das tarefas, entre outras;
Disponibilidade para acrescentar notas para as histórias e tarefas (inclusive anexos);
XPLANNER-PLUS
23/08/201
1
Qualquer ferramenta de acompanhamento das atividades de desenvolvimento de software pode auxiliar na organização e planejamento das tarefas, proporcionando maior visibilidade às pessoas que estão envolvidas.
O XPlanner-Plus se mostra muito eficiente para este fim, e por isso deve ser considerado no momento de escolher ferramentas de gerenciamento com este propósito.
AGILEFANT
23/08/201
1
Agilefant é uma solução simples para gerir as
atividades de desenvolvimento ágil de software. Ela reúne as perspectivas de planejamento a longo prazo, gerenciamento de portfólio de projetos e trabalho diário. É uma ferramenta baseada na web escrita em Java.
É bastante rica em recursos e permite a criação de produtos, projetos, iterações, temas e estórias de
AGILEFANT
23/08/201
AGILEFANT
23/08/201
1
Produtos são a construção de mais alto nível;
Cada produto pode ter um ou mais projetos (releases); Cada projeto pode ter uma ou mais iterações.
Gestão do Product backlog; Gerenciamento de produtos;
Planejamento e controle de iterações;
Iterações são compostas de estórias, que podem consistir de
zero ou mais tarefas;
Daily Work – visão geral do trabalho de um membro da
equipe;
Visão geral da carga de trabalho por membro da equipe; Controle de tempo e tarefas;
Portfólio de projetos;
AGILEFANT
23/08/201
1
O AgileFant é rica em recursos, razoavelmente intuitivos e fáceis de usar. É adequada para grandes organizações e projetos, possuindo inclusive recurso de planejamento de portfólio de produtos.
Os pontos fracos identificados na ferramenta são: não possui o quadro de tarefas, que dá uma visão do andamento das tarefas na sprint atual; as estórias podem ser estimadas apenas em horas, não em pontos; não há diferenciação entre os papéis do usuário.
SCRUMDO
23/08/201
1
ScrumDo é uma aplicação web open source para gerenciar projetos
ágeis baseados em Scrum. Escrita em Python com framework Django. Oferece ferramentas para criar e acompanhar histórias de usuário em projetos. Algumas características incluem geração automática de
gráficos Burndown, facilidades do tipo “arraste e solte” no
planejamento da iteração, capacidade de exportação e importação para Excel, suporte a várias equipes Scrum, previsão para planejamento futuro, dentre outras. (SCRUMDO, 2011).
SCRUMDO
23/08/201
1
Gestão do backlog;
Criação e gestão de iterações;
Dimensionar estórias;
Gráfico BurnUp chart;
Previsões para planejamentos futuros;
Apoio às organizações;
Muitas equipes por organização;
Muitas equipes por projeto;
Muitos projetos por organização;
Múltiplas equipes trabalhando em um backlog;
Controle de estórias, tarefas e métricas;
SCRUMDO
23/08/201
1
Scrumdo é uma ferramenta criada
recentemente e realmente é impressionante a
forma como detalha as estórias, iterações e
gráficos Burndowns. Simplesmente tem o que
uma boa equipe Scrum precisa de uma
QUADRO COMPARATIVO
23/08/201
1
Recursos XPlanner-Plus Agilefant Scrumdo
Versão revisada v1.0b3 2.0.4 2.1
Licença LGPLv3 MIT GNU LGPL
Plataforma Java, JSP Java Pyhton
Product Backlog - X X Sprint Backlog X X X Release Burndown - X X Sprint Burndown X X X Dashboard da Sprint X X X Dashboard do Produto/Release - X X Planejamento da Sprint - X X Reunião diária - - -Revisão da Sprint - - -Retrospectiva da Sprint - - -Planning Poker - - X Controle de tempo X X X
QUADRO COMPARATIVO
23/08/201
1
Recursos XPlanner-Plus Agilefant Scrumdo
Exportação de dados do
projeto para outros formatos de arquivo
X X X
Controle de estórias e tarefas X X X
Armazenamento de estórias e
tarefas X X X
Anexar arquivos às estórias
ou tarefas X - X
Suporte a vários projetos X X X
Suporte a equipes distribuídas
X X X
Suporte a várias equipes - X X
Integração com outras ferramentas
- - X
Portfólio de projetos - X X
Trabalho diário - X
-Workload – carga de trabalho
-CONCLUSÃO
23/08/201
1
As ferramentas selecionadas apresentam características bastante semelhantes em relação às suas funcionalidades, porém, apresentam particularidades, como por exemplo:
- Agilefant tem a possibilidade de gerenciar o portfólio de produtos, disponibiliza diferentes visões do produto para
diferentes stakeholders, disponibiliza visão geral da carga de trabalho por membro da equipe e permite o trabalho com
várias releases do produto;
- ScrumDo é totalmente voltado para equipes scrum
oferecendo gestão de todos os artefatos Scrum, possui o quadro
scrum de tarefas e excelentes dashboards do projeto e de suas sprints;
ABRAHAMSSON, Pekka et al. Agile software development methods: Review and analysis. VTT Publications 478. Oulu, Finland: VTT Publications, 2002.
BANKI, Luiz André; TANAKA, Sérgio. Metodologias Ágeis - Uma Visão Prática. Engenharia de Software Magazine. Ano 1, edição 4, 2008.
BECK, K.; ANDRES, C. “Extreme Programming Explained: Embrace Change, Second Edition” Addison-Wesley, 2a ed., 224p. 2004.
CISCON, Leonardo Aparecido. Um estudo e uma ferramenta de gerencia de projetos com
desenvolvimento ágil de software. Dissertação de mestrado em ciências da computação da UFMG. Belo Horizonte, MG. 2009.
FALCÃO, J; JÚNIOR, T. S. F.; LEMOS, R.; MARANHÃO, J.; SOUSA, C. A. P.; SENNA, E. Estudo
sobre o Software Livre. ITI. 2005.
KNIBERG, Henrik; SKARIN, Mattias. Kanban e Scrum - obtendo o melhor de ambos . 2009.
REFERÊNCIAS BIBLIOGRÁFICAS
23/08/201
REFERÊNCIAS BIBLIOGRÁFICAS
23/08/201
1
RASCOVSKY, Igor. Engenharia de Software Clássica Vs. Programação Xp. 2006. Disponível
em: <http://www.linux.ime.usp.br/~cef/mac499-06/monografias/rec/igor/pageParte1.html>.
SANTOS, Rildo. Scrum Experience – O tutorial Scrum. V.16. 2008. Disponível em:
<http://www.slideshare.net/Ridlo/scrum-experience-o-tutorial-scrum>.
SANTOS, Rildo. Scrum – O tutorial definitivo. V.2. 2011. Disponível em:
<http://www.slideshare.net/Ridlo/scrum-o-tutorial>.
SANTOS, Rodrigo Pereira et al. Analisando o desenvolvimento de software orientado a
aspectos no contexto de Extreme Programming. Artigo pulicado na revista Devmedia
Engenharia de
software magazine. Ano I - Edição 05, 2008.
SCHWABER, Ken. Guia do Scrum. Scrum Alliance. 2009.