Upload
keila-rosegela-p-freitas
View
53
Download
4
Embed Size (px)
Citation preview
ESTUDO DE FERRAMENTAS EM
SOFTWARE LIVRE PARA GESTÃO
ÁGIL DE PROJETOS DE
DESENVOLVIMENTO DE SOFTWARE
Trabalho de conclusão do curso Lato Sensu em
Desenvolvimento de Sistemas em Software Livre
da Universidade Católica de Brasília.
Aluna: Keila Rosegela Parreira de Freitas
Orientador: José Adalberto Facanha Gualeve
23/08/2011
INTRODUÇÃO23/0
8/2
011
2
Atualmente nota-se uma buscaincessante das organizações no usode métodos ágeis e melhorespráticas de gerenciamento deprojetos.
É cada vez mais comum a presençade metodologias ágeis no mercadode desenvolvimento de software.
INTRODUÇÃO23/0
8/2
011
3
Porém o controle de vários projetos utilizando-se apenasquadro de tarefas, planilhas de texto e post-its acaba portornar complicado uma tarefa que requer maior clareza efluência possível. O gerente de projetos, além de possuirhabilidades e conhecimentos, deve também utilizarferramentas que dão apoio às suas atividades.
OBJETIVOS23/0
8/2
011
4
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 LIVRE23/0
8/2
011
5
Fonte: http://wiki.sintectus.com/bin/view/GrupoLinux/PDFInstantaneoLinuxEssencial
ENGENHARIA DE SOFTWARE E
GESTÃO DE PROJETOS23/0
8/2
011
6
GESTÃO DE PROJETOS
É uma parte essencial da engenharia de software, que aumenta a probabilidade desucesso do projeto, ou seja, software entregue com qualidade, na data acordada e comrecursos planejados.
ENGENHARIA DE SOFTWAREÉ uma disciplina de engenharia relacionada com todos os aspectos daprodução de software, desde os estágios iniciais de especificação dos sistemaaté sua manutenção.
ENGENHARIA
“Arte de aplicar os conhecimentos científicos à invenção, aperfeiçoamento ouutilização da técnica industrial em todas as suas determinações”. (Michaellis)
METODOLOGIAS ÁGEIS PARA GESTÃO DE
PROJETOS DE SOFTWARE23/0
8/2
011
7
Uma metodologia pode ser dita ágil quando efetua odesenvolvimento 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 SOFTWARE23/0
8/2
011
8
Manifesto ágil
Indivíduos e
interações
Ao invés de Processos e
ferramentas
Software
funcionando
Ao invés de Documentação
abrangente
Colaboração com o
cliente
Ao invés de Negociação de
contratos
Responder a
mudanças
Ao invés de Seguir um plano
METODOLOGIAS ÁGEIS PARA GESTÃO DE
PROJETOS DE SOFTWARE23/0
8/2
011
9
METODOLOGIAS ÁGEIS PARA GESTÃO DE
PROJETOS DE SOFTWARE23/0
8/2
011
10
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 - XP23/0
8/2
011
11
XP é um método leve para que equipespequenas ou médias desenvolvam softwareem face a requisitos vagos ou que mudemconstantemente.
Seu principal objetivo é o desenvolvimentode software com qualidade, por meio deum estilo de desenvolvimento focado nasmelhores práticas de programação,comunicação clara e trabalho em equipe(TELES, 2005).
EXTREME PROGRAMMING - XP23/0
8/2
011
12
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
• ...
O XP é baseado em cinco valores, alguns princípios e várias práticas.
EXTREME PROGRAMMING - XP23/0
8/2
011
13
SCRUM23/0
8/2
011
14
Scrum é um framework dentro do qual podemos empregardiversos processos e técnicas. O papel do Scrum é fazertransparecer a eficácia relativa das práticas dedesenvolvimento para que possamos melhorá-las, enquantoprovê um framework dentro do qual produtos complexos podemser 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.
Três pilares sustentam qualquer implementação de controle de processos empíricos: transparência, inspeção e adaptação (SCHWABER, 2009).
SCRUM23/0
8/2
011
15Fonte: Scrum – O tutorial definito.
FERRAMENTAS EM SOFTWARE LIVRE PARA
GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE23/0
8/2
011
16
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-PLUS23/0
8/2
011
17
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-PLUS23/0
8/2
011
18
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);
Visão precisa das estimativas da iteração;
Exibição da situação das histórias para desenvolvedores e clientes;
Exportação dos dados do projeto e da iteração para os formatos XML, MPX (Microsoft Project) e PDF.
XPLANNER-PLUS23/0
8/2
011
19
Qualquer ferramenta de acompanhamento das atividadesde desenvolvimento de software pode auxiliar naorganização e planejamento das tarefas, proporcionandomaior visibilidade às pessoas que estão envolvidas.
O XPlanner-Plus se mostra muito eficiente para este fim, epor isso deve ser considerado no momento de escolherferramentas de gerenciamento com este propósito.
AGILEFANT23/0
8/2
011
20
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 usuários, tem controle de tempo, gráfico, dentre outros.
AGILEFANT23/0
8/2
011
21
AGILEFANT23/0
8/2
011
22
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;
Relatórios, gráficos burndown e métricas;
Suporte a várias equipes;
Suporte a vários projetos; dentre outros.
AGILEFANT23/0
8/2
011
23
O AgileFant é rica em recursos, razoavelmente intuitivos efáceis de usar. É adequada para grandes organizações eprojetos, possuindo inclusive recurso de planejamento deportfólio de produtos.
Os pontos fracos identificados na ferramenta são: não possuio quadro de tarefas, que dá uma visão do andamento dastarefas na sprint atual; as estórias podem ser estimadasapenas em horas, não em pontos; não há diferenciação entreos papéis do usuário.
SCRUMDO23/0
8/2
011
24
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).
SCRUMDO23/0
8/2
011
25
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;
Anexos e comentários em tarefas;
Quadro de tarefas Scrum;
Planning Poker, dentre outros.
SCRUMDO23/0
8/2
011
26
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 ferramenta.
QUADRO COMPARATIVO23/0
8/2
011
27
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 de tarefas -
Taskboard
- - X
Relatórios X X X
Notificação por e-mail X - X
QUADRO COMPARATIVO23/0
8/2
011
28
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
dos membros da equipe por
iteração.
- X -
Geração de medidas X X X
Releases do produto - X X
CONCLUSÃO23/0
8/2
011
29
As ferramentas selecionadas apresentam característicasbastante 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 scrumoferecendo gestão de todos os artefatos Scrum, possui o quadro scrum de tarefas e excelentes dashboards do projeto e de suas sprints;
- Xplanner-Plus possui um modelo extremamente simples de planejamento de atividades e suporte a diferentes metodologias ágeis.
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.
C4Media, Editora do InfoQ.com. Versão online e gratuita disponível em <http://www.infoq.com>.
REFERÊNCIAS BIBLIOGRÁFICAS23/0
8/2
011
30
REFERÊNCIAS BIBLIOGRÁFICAS23/0
8/2
011
31
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.
SOMMERVILLE, I. Engenharia de Software. 8. ed. São Paulo: Pearson Addison Wesley, 2007.
TELES, Vinícius Manhães. Um Estudo de Caso da Adoção das Práticas e Valores do Extreme
Programming. Dissertação de mestrado - UFRJ, IM / DCC, 2005.