31
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

Apresentacao Tcc Keila Freitas

Embed Size (px)

Citation preview

Page 1: Apresentacao Tcc Keila Freitas

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

Page 2: Apresentacao Tcc Keila Freitas

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.

Page 3: Apresentacao Tcc Keila Freitas

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.

Page 4: Apresentacao Tcc Keila Freitas

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.

Page 5: Apresentacao Tcc Keila Freitas

SOFTWARE LIVRE23/0

8/2

011

5

Fonte: http://wiki.sintectus.com/bin/view/GrupoLinux/PDFInstantaneoLinuxEssencial

Page 6: Apresentacao Tcc Keila Freitas

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)

Page 7: Apresentacao Tcc Keila Freitas

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.

Page 8: Apresentacao Tcc Keila Freitas

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

Page 9: Apresentacao Tcc Keila Freitas

METODOLOGIAS ÁGEIS PARA GESTÃO DE

PROJETOS DE SOFTWARE23/0

8/2

011

9

Page 10: Apresentacao Tcc Keila Freitas

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.

Page 11: Apresentacao Tcc Keila Freitas

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).

Page 12: Apresentacao Tcc Keila Freitas

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.

Page 13: Apresentacao Tcc Keila Freitas

EXTREME PROGRAMMING - XP23/0

8/2

011

13

Page 14: Apresentacao Tcc Keila Freitas

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).

Page 15: Apresentacao Tcc Keila Freitas

SCRUM23/0

8/2

011

15Fonte: Scrum – O tutorial definito.

Page 16: Apresentacao Tcc Keila Freitas

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.

Page 17: Apresentacao Tcc Keila Freitas

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).

Page 18: Apresentacao Tcc Keila Freitas

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.

Page 19: Apresentacao Tcc Keila Freitas

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.

Page 20: Apresentacao Tcc Keila Freitas

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.

Page 21: Apresentacao Tcc Keila Freitas

AGILEFANT23/0

8/2

011

21

Page 22: Apresentacao Tcc Keila Freitas

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.

Page 23: Apresentacao Tcc Keila Freitas

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.

Page 24: Apresentacao Tcc Keila Freitas

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).

Page 25: Apresentacao Tcc Keila Freitas

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.

Page 26: Apresentacao Tcc Keila Freitas

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.

Page 27: Apresentacao Tcc Keila Freitas

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

Page 28: Apresentacao Tcc Keila Freitas

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

Page 29: Apresentacao Tcc Keila Freitas

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.

Page 30: Apresentacao Tcc Keila Freitas

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

Page 31: Apresentacao Tcc Keila Freitas

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.