Gerenciando Product Backlog usando o Jira Software

Quando começamos a estudar o Scrum Guide logo nos deparamos com o artefato Product Backlog. O framework prescreve que o Product Owner deve manter este artefato com todos os itens necessários ao produto/projeto a ser desenvolvido, de maneira priorizada, atualizada e visível.

No entanto, algo que o framework não prescreve é como fazer isso e a ideia do post de hoje é justamente essa, mostrar uma ideia de como organizar o seu Product Backlog usando a ferramenta Jira Software, em sua versão SaaS. Não vou falar aqui de priorização de backlog, coisa que já falei em outros posts, mas de como usar esta ferramenta web para fazê-lo e explicando alguns conceitos importantes que podem ser aplicados independente da ferramenta que você venha a utilizar.

Jira Software

O Jira é a ferramenta líder de vendas para gestão de projetos de software no mundo todo, sendo um concorrente direto do Azure DevOps da Microsoft (o antigo TFS). A sua fabricante, Atlassian, possui uma suíte de soluções que vão desde o Trello, para gestão básica de quadros de trabalho, até ferramentas de chat e colaboração entre times, versionamento de código e construção de pipelines automatizados de deploy.

Mesmo que você não venha a usar a suíte completa (até porque sairia bem caro), usar o Jira pode ser uma excelente opção para tocar os seus projetos de maneira mais organizada. A ferramenta SaaS tem muitas funcionalidades interessantes e um grande fit com as metodologias ágeis como Scrum e Kanban, fornecendo todos os artefatos prontos ou configuráveis para os usuários.

Ao contrário do TFS (que te dá 5 usuários free), o Jira não possui versão free (a menos que conte o Trello como sendo um mini-Jira, hehe) e oferece apenas um trial de uma semana na época em que escrevo este artigo. O trial é suficiente para que consiga aprender a usar a ferramenta e seguir este tutorial. Então, crie uma conta no site da Atlassian antes de prosseguir.

Vale salientar que este tutorial cobre apenas a versão SaaS (cloud, online) do Jira, sendo que ele possui uma versão on-premise cuja interface é diferente, embora o funcionamento seja o mesmo.

Criando um novo projeto

Na tela inicial da ferramenta você tem um botão Create Project no canto direito. Use ele e defina um nome para o projeto. Se você tem apenas um time que toca diversos projetos, pode ser interessante colocar o nome do time aqui, ao invés do nome do projeto atual deles, para fins de histórico. Ao longo deste tutorial usarei o template Scrum, que foi selecionado como na imagem abaixo (esquerda).

Novo Projeto
Novo Projeto

Outras opções na criação do projeto incluem o método Kanban e isso influencia bastante a organização dos itens, os quadros e diversos outros fatores, embora seja possível mudar de um para outro.

Organizando o Product Backlog

Uma vez com o projeto criado, você vai ser direcionado para a tela de Backlog do seu projeto, sendo que aqui ele representa o Product Backlog, cuja gestão é de responsabilidade do Product Owner.

Product Backlog
Product Backlog

No Jira existem três níveis de backlog que auxiliam o Product Owner (principalmente) a se organizar, ambos acessíveis na parte esquerda, entre o menu lateral e o backlog, à saber:

  • Epics: épicos são features muito grandes e pouco detalhadas (alto nível de incerteza técnica), geralmente levando várias sprints para serem concluídas (pense na grandeza de semanas a meses de trabalho). Épicos são constituídos de múltiplas User Stories.
  • User Stories: o Jira assume o padrão de Histórias do Usuário para os famosos itens de backlog do produto que são citados no Scrum Guide como sendo a unidade de trabalho do Product Backlog. Uma User Story gera valor ao usuário por si só e entregar uma ou mais delas prontas (DONE). User Stories geralmente levam dias para serem entregues, possuem linguajar de negócio e grau de incerteza técnica médio, podendo ser quebradas em pedaços menores, chamados de Sub-Tasks, para se ter maior assertividade do trabalho a ser realizado.
  • Sub-Task: uma sub-task é uma tarefa que deve levar horas para ser feita, é extremamente técnica, com baixo grau de incerteza técnica e não entrega muito valor por si só, fazendo parte de um grupo que juntas, entregam o valor proposto pela User Story.

O formato recomendado de escrita é partir do Issue Type menos granular (Epic) até o mais granular (Sub-Task), usando o menu Epics que fica à esquerda do backlog, mas antes do menu lateral. Sendo assim, acesse o nível Epic do seu Backlog.

Clique em Epics
Clique em Epics

Nesta tela da imagem acima, note que tem um link “Create Epic” ao lado da seção EPICS, clique nele para começar a criar os seus épicos com apenas o título e um resumo. Mais tarde você pode adicionar mais detalhes a cada um deles (mas não muito, eles são apenas visões) clicando no título dos mesmos

Criando um épico
Criando um épico

Após adicionar os seus épicos, você vai ver eles na coluna esquerda do painel. Note na imagem abaixo como o épico “Cartão no App” aparece depois do meu cadastro e com ele a opção “Create issue in epic”, que é justamente para criar elementos dentro dele. Caso já existam issues, elas aparecerão no painel da direita.

Épico criado
Épico criado

Clique no “Create issue in epic” para adicionar uma User Story (o Issue Type padrão), com um título, descrição (a história em si) e o que mais você precisar.

Criando uma US
Criando uma US

Para este exercício, pegue um projeto real do seu time ou então um problema fictício como um cadastro de cliente. O épico seria fazer a versão completa do cadastro, sendo que as User Stories poderiam ser “Adicionar novo cliente”, “Excluir cliente”, etc.

Se você atendeu à sugestão do Jira de usar User Stories, pense em todos as histórias de usuário que puder lembrar para cada um dos épicos. Alguns épicos simples talvez tenham apenas uma ou duas histórias, enquanto outros mais complicados podem ter várias. Não esqueça de, além de escrever o título e descrição da história (usando o formato padrão da User Story), escreva também os critérios de aceite.

É importante ter em mente que o Product Owner tem total liberdade neste momento. Crie, edite e exclua seus Epics e User Stories livremente. É comum escrevermos algumas histórias que mais tarde descobrimos serem épicos. É comum épicos serem quebrados em mais épicos para que o sistema não vire um mero waterfall-iterativo. Embora o time tenha acesso ao Product Backlog como um todo, não é a partir dele que eles se orientarão no dia-a-dia, como falarei mais adiante.

Organizando as sprints

A visão de backlog que usamos até o momento são de foco do Product Owner. O Time de Desenvolvimento trabalha usando a visão da sprint atual (current sprint) dentro do Jira. Assim que tiver algumas User Stories criadas, como abaixo, vai aparecer um botão de “Create Sprint” no canto superior direito.

US criadas
US criadas

Ao iniciar uma planning (ou agora, para fins de exercício), clique no botão “Create Sprint” e você será direcionado para o planejador de sprints. Na parte inferior da tela ele lista as User Stories existentes e, na parte superior, o escopo da sprint atual, que vai se tornar o Sprint Backlog. Explico: durante a Sprint Planning o Product Owner explica quais são as prioridades do Product Backlog.

Criando a Sprint
Criando a Sprint

Sobre cada história priorizada, o time clica nela e deve discutir quais as tarefas serão necessárias para que seja possível estimar o esforço (campo Estimate) de entrega daquela história.

Estimando US
Estimando US

Uma técnica muito comum utilizada para estas estimativas é a de Planning Poker, já citada aqui no blog. Caso o Time de Desenvolvimento julgue útil, eles podem “quebrar” as User Stories em Sub-Tasks dentro da própria visão da User Story que contém um link “Create Sub-Task”, abrindo a tela abaixo.

Create Sub-Task
Create Sub-Task

Aqui você define um nome para a sub-task e sua descrição, sendo que você pode adicionar estimativas para as sub-tasks depois, se quiser. As estimativas, em especial a da histórias, compõem o esforço da sprint e são usadas mais tarde para geração de gráficos e extração de métricas ágeis importantes para o time. Se você optar por quebrar e/ou estimar as tarefas é uma decisão do time, mas essa atividade é auxiliar para descobrir o esforço da história. Entende-se que somente a entrega completa da história agrega valor ao cliente e consequentemente nos permite dar uma sprint como bem sucedida.

Após descobrir o esforço de cada uma das User Stories prioritárias do P.O. (a unidade de medida padrão é Story Points, mas também pode ser configurado), o time decide qual o volume de histórias que cabem na sprint arrastando as mesmas para a parte superior do planejador de sprint, sendo que no rodapé da mesma aparece o esforço total.

Arrastando histórias
Arrastando histórias

Se esse time já rodou sprints anteriores usando a mecânica de pontos eles já devem ter algum histórico de velocidade. Caso contrário terão de chutar mesmo, posteriormente analisando na Sprint Retrospective o quão próximo estavam da realidade.

Uma vez definido o escopo da próxima sprint, você clica no botão azul “Start Sprint” que aparece na imagem anterior, lhe permitindo configurar os últimos detalhes desta sprint, como o Sprint Goal e as datas de início e fim.

Iniciando a sprint
Iniciando a sprint

O Time de Desenvolvimento irá trabalhar somente olhando o backlog da sprint que pode ser acessado usando o menu Active Sprint na esquerda, e via de regra, o escopo não deve ser mudado durante o desenvolvimento da mesma. Nessa tela de Active Sprint o time tem um Kanban virtual que apesar de não ser tão bom de usar quanto o Trello, é bem útil e completamente personalizável, o que pode ser assunto para outro post.

Active Sprint
Active Sprint

Boas Práticas

Algumas boas práticas para quem está começando a usar o Jira Software agora e até mesmo está começando com Scrum:

  • Como Product Owner, refine o seu backlog quase que diariamente, detalhando as histórias mais importantes, consultando o time sobre o impacto de cada uma delas, consultando os stakeholders, analisando o mercado, etc. O seu backlog sempre deve estar atualizado, priorizado e visível antes de uma Sprint Planning for começar.
  • Cada história pode estar associada a um membro do time (campo Assigned To). Converse com seu time para que ninguém associe mais de uma história a si mesmo para evitar problemas.
  • Como Product Owner, use e encoraje os três níveis de backlog, isso ajuda a deixar tudo mais organizado e ao time entender para onde o projeto está caminhando.
  • Priorize visualmente o seu backlog, deixando o que é mais prioritário no topo. Apesar de existir campos que auxiliam nisso, as demais configurações são facilmente negligenciadas por não serem muito visuais.
  • Use o padrão de User Stories em suas Issues para focar na entrega de valor para o usuário final e facilitar o entendimento dos requisitos por parte do Time de Desenvolvimento.
  • Estime em Story Points as suas histórias e não em horas. Isso tem uma série de benefícios mas principalmente descola alguns conceitos de chão de fábrica como produtividade em horas.
  • use Tags (tem um campo pra isso) nas suas User Stories para facilitar consultas, relatórios e dashboards mais tarde (aba Reports). Use a imaginação, tags podem ser qualquer coisa.
  • não se preocupe em usar tudo que a ferramenta oferece, aprenda o básico que faz sentido pra você e depois vá usando o restante conforme for necessitando.

Espero que tenham gostado do post e até a próxima!

Neste artigo ensino como manter um bom nível de qualidade e detalhamento do backlog.

* OBS: curtiu o post? Então dá uma olhada no meu livro de Scrum e Métodos Ágeis e/ou no meu curso sobre o mesmo assunto!

Curso de Scrum e Métodos Ágeis
Curso de Scrum e Métodos Ágeis
O que achou desse artigo?
[Total: 1 Média: 5]

Publicado por

Luiz Duarte

Pós-graduado em computação, professor, empreendedor, autor, Agile Coach e programador nas horas vagas.