Desenvolvimento ágil com JIRA, Greenhopper e Tempo Plugin

jira_logo_landing  greenhopper_logo_landing  Tempo - Painless time tracking

É cada vez mais um consenso que o desenvolvimento ágil é o caminho correto para qualquer iniciativa que dependa de software. Porém, não há consenso quanto às formas de dar governança e transparência sobre os Sprints, o Product Backlog, Roadmap de entrega, Impedimentos, volume de trabalho do time, entre outras coisas. Em um contexto de prestação de serviços isto é ainda mais importante, pois sempre é necessário reportar o progresso e eficiência do time para alguns stakeholders.

Considero o JIRA o melhor Issue Tracker disponível, e já o uso há 7 anos em quase todos os projetos. Ele possui 2 plugins fantásticos que em conjunto trazem um ferramental excelente para projetos ágeis: o Greenhopper e o Tempo Plugin. A Atlassian oferece licenças Starter para até 10 usuários que são perfeitas para times pequenos. Os 3 plugins juntos custam US$ 30 por ano. Neste post vamos sugerir uma abordagem de gestão da tarefas, Sprints, Product Backlog e Timesheets usando os 3, na mesma linha que a Rivendel vem fazendo. (Vamos pular a instalação dos 3, mas ela é bem simples. Estamos com a instalação em uma instância Small da Amazon)

Criando um projeto no JIRA

No Dashboard inicial do JIRA, clicar em Projects -> Create Project. Vamos criar um projeto chamado Bootstrap Rivendel, colocando tarefas referentes à criação e preparação da empresa.

add_new_project

Criando um quadro no Greenhopper

Vamos clicar em Agile -> Manage Boards no menu principal e depois em Create a new board. Fazendo isto, teremos a opção entre um Scrum Board e um Kanban Board. Vamos escolher Scrum Board. A diferença entre as 2 abordagens foge um pouco da proposta deste post.

Manage Boards - Rivendel JIRA
scrum_or_kanban

Chegamos com isso ao modo Plan do mural, ainda vazio.

Scrum Board Boostrap - Agile Board - Plan mode

Organizando e planejando o Product Backlog

Antes de começar a criar tarefas, podemos criar alguns épicos para organizar um pouco as coisas. Na sequência podemos criar as primeiras histórias e associá-las aos épicos.

 

Scrum Board Boostrap - Epicos
historia_com_epicos

Com as histórias criadas, podemos ordená-las por prioridade e estimá-las. Clicando no título ou no código da história (ex: BOOT-5) podemos entrar na visualização detalhada no canto direito, e usar esta visualização para preencher as estimativas.

detail_view
backlog_ordenado_e_priorizado

Agora precisamos encaixar as histórias em Sprints, pré-requisito para termos um Roadmap de entregas.

plano_sprints

Cotidiano dentro dos Sprints

Já podemos iniciar o Sprint 1, e com isso passamos a trabalhar diariamente na Work View, conforme abaixo. Durante os Daily Meetings cada membro do time conta no que estava trabalhando no dia anterior e no que vai trabalhar no dia em questão.

Neste momento todos garantem que as tarefas estão corretamente dispostas nas colunas “To Do”, “In Progress” e “Done”. A Work View é ótima porque facilita muito o trabalho com times distribuídos, que são cada vez mais comuns. É possível criar novas colunas e customizar o workflow, mas não abordaremos isto neste post.

work_view

Controle de Impedimentos

Para reportar e controlar impedimentos no Greenhopper, precisamos configurar um Custom Field chamado Flagged. Para garantir que ele está habilitado, com um usuário administrador devemos acessar Issues -> Fields. Dentro da lista de campos, devemos clicar na opção de configuração do campo Flagged e clicar na opção Screens. Na nova tela, devemos habilitar o campo nas 3 telas disponíveis.


flagged_screens
flagged_field_screens

É necessário editar o campo Flagged e habilitar o Search Template de “Multi Select Searcher” e aí realizar uma reindexação do JIRA, para que este campo que foi habilitado passe a aparecer nas buscas em geral.

Flagged_Enable_Search_Template

Com isso, podemos agora configurar o nosso Scrum Board para destacar em vermelho as tarefas que estão com Impedimentos. Para isso, vamos editar a história BOOT-13 e marcar o campo Flagged como “Impediment”. A configuração de cores é feita dentro do Board, na aba de Card Colors. Devemos escolher para colorir os cartões de acordo com Queries, e a query para destacar em vermelho as tarefas com impedimentos é Flagged = Impediment, conforme imagem abaixo.

Configure Board - Flagged as Impediment - Rivendel JIRA

Pronto, agora no Work View destacará em Vermelho as tarefas que estiverem com impedimentos, facilitando o controle dos mesmos.

Work_View_com_Impedimento

Timesheets

Estou para conhecer alguém que goste de preencher Timesheets, mas o Tempo Plugin torna o processo muito mais suave e agradável. Não foi por acaso que ele foi considerado o melhor Add-on de todos os produtos Atlassian em 2012.

Seu menu principal traz diversas opções para agregar os Timesheets: por Usuário, Projeto, Equipe, Issue ou uma agregação avançada. Vamos para a visualização por Projeto.

menu_tempo

Entrando no Timesheet do projeto, vamos apontar horas na tarefa BOOT-13, logando 3 horas de trabalho no dia 13/05 e estimando as horas restantes como 13. Podemos planejar e estimar duração de tarefas a qualquer momento, mas o plugin é bem pouco exigente, e permite que o apontamento de horas seja feito da forma que a pessoa quiser.

log_work_issue

 A seguir vamos mostrar a visualização tabular de Timesheets, mas ela é somente uma entre as muitas opções de visualização e relatórios do plugin. Ele é bem rápido e fácil de usar, e já fica integrado ao login e tarefas do JIRA, o que deixa-o extremamente conveniente para quem já usa o JIRA para gerenciar seu desenvolvimento.

Timesheets_Tabular_View

Não vamos mais entrar em tantos detalhes sobre as funcionalidades do Tempo, mas colocamos aqui um vídeo curto detalhando suas funcionalidades.

Bom, por hoje é só! Espero que tenham gostado e que o post seja útil para muitas pessoas. Até a próxima 🙂

21