No Scrum, você deve dividir o backlog em um backlog funcional e um backlog técnico ou não?

12

Em nossas equipes Scrum, usamos um backlog, que geralmente contém tópicos funcionais, mas também contém tópicos técnicos. A vantagem de ter um backlog é que fica fácil escolher os tópicos para o próximo sprint, mas tenho algumas perguntas:

  • Primeiro, para mim, parece mais lógico ter um backlog técnico separado, onde os próprios desenvolvedores podem adicionar itens técnicos puros, como: podemos melhorar o desempenho nesse método, essa classe carece de alguma documentação técnica, ... Por ter um backlog, todos os desenvolvedores sempre precisam passar pelo proprietário do produto para adicionar seus tópicos à lista de pendências, o que parece um trabalho adicional e desnecessário para o proprietário do produto.
  • Segundo, se você possui um proprietário de produto que se concentra apenas nos itens puramente funcionais, os itens puramente técnicos (como documentação técnica ausente, código que corroa e deve ser refatorado), classes que sempre causam problemas durante a depuração porque não possuem uma base estável e deve ser refatorada, ...) sempre termina no final da lista porque "eles não atendem diretamente ao cliente". Por ter um registro técnico em separado e tempo reservado em cada sprint para esses itens técnicos puros, podemos melhorar os aplicativos funcionalmente, mas também mantê-los saudáveis ​​por dentro.

Qual é a melhor abordagem? Um atraso ou dois?

Patrick
fonte

Respostas:

15

Não sou especialista, mas eu diria que você pode ter apenas uma lista de pendências por equipe. A equipe precisa decidir quais questões são urgentes e quais podem ser adiadas. Se você separar os problemas em tipos separados de pilhas, vai contra a ideia central que está no centro do scrum, que é a de que há um conjunto de problemas e cada sprint a equipe trabalha nos mais urgentes deles. Se você (sub) dividir as equipes, poderá dividir os tipos de tarefas que são relevantes para elas, mas basicamente criará equipes que trabalham em paralelo. Urgência / necessidade é o fator número um na hora de planejar o próximo sprint. Você pode categorizar as tarefas, mas isso não deve atrapalhar seu processo de decisão.

Onno
fonte
10

Gostaria de adicionar minha voz àqueles que recomendam uma lista de pendências por produto. Criar outra lista de pendências é uma resposta racional, mas na verdade evita o problema principal: por que o Dono do Produto não prioriza itens técnicos em detrimento dos itens de recurso? Você deve se concentrar em resolver isso em vez de contornar isso. Você pode usar a técnica dos 5 porquês , por exemplo, para tentar entender as coisas.

Pode haver muitas razões pelas quais o pedido não prioriza questões técnicas. Por exemplo, talvez a equipe de tecnologia não esteja explicando o custo a longo prazo (em $$$) de não pagar a dívida técnica. Talvez seja algo completamente diferente. Há uma boa chance de que se deva a um problema de comunicação, e a solução a longo prazo é trabalhar e resolvê-lo - remover o impedimento.

Além disso, tenho uma outra pergunta para você pensar: por que a dívida técnica surgiu em primeiro lugar? Idealmente, trabalhos como refatoração, etc. devem ocorrer nas histórias funcionais e serem concluídos no sprint. Eles não devem ser histórias extras por si só, caso contrário, você não possui um código potencialmente expedível.

MelR
fonte
6

O que você está se referindo é chamado de "dívida técnica". Às vezes, pode ser difícil ver como o trabalho da dívida técnica se encaixa no processo scrum, da mesma maneira que os defeitos.

O que você está propondo é semelhante a sugerir que também haja um 'backlog de defeitos' separado, dividindo o backlog em 3.

Pessoalmente, eu não recomendaria a divisão da lista de pendências do produto. A idéia do backlog do produto é representar itens de trabalho pendentes . Nessa perspectiva, a única diferença entre um recurso e um item de dívida técnica é que o requisito veio da equipe de desenvolvimento, não do cliente. Ainda é um item de trabalho e ainda precisa ser gerenciado, inclusive priorizando-o em relação a outros itens de trabalho. Isso é especialmente verdadeiro se o item da dívida técnica exigir testes, nesse caso, ele deve passar exatamente pelo mesmo processo de controle de qualidade que um recurso regular.

MattDavey
fonte
4

Concordo com a Onno no sentido de que deve haver apenas um único atraso por projeto. Caso contrário, a equipe está basicamente tomando em suas próprias mãos algumas decisões que por direito pertencem ao proprietário do produto.

Mesmo itens "puramente técnicos" devem ter algum valor prático para que os usuários (e, portanto, o proprietário do produto) sejam elegíveis para o backlog do sprint. É sua tarefa explicar o benefício desses ao proprietário do produto e convencê-lo do valor agregado que justifica o custo. E esse processo obriga você a refletir sobre essas questões e selecionar as mudanças técnicas que agregam mais valor ao projeto com o mínimo de esforço.

Péter Török
fonte
2

Concordo com todas as respostas acima. No calor da realidade comercial, a OP continuará priorizando as histórias funcionais sobre as técnicas. Muitas vezes, para a frustração da equipe. A equipe deve abster-se de histórias técnicas sem nenhum valor para o usuário (quem se importa com uma otimização, se a velocidade não é um problema?) E aprender a ver algumas outras tarefas técnicas, conforme implícitas nas histórias funcionais. A "definição de concluído" também desempenha um grande papel. As histórias funcionais restantes ficam no backlog para o pedido priorizar.

Por exemplo, documentação técnica: a disponibilidade de documentação técnica (quando aplicável) é um item típico que pertence ao DOD e, portanto, a atualização é implícita em todas as histórias funcionais.

Por exemplo, código de refatoração: deve ser feito quando beneficia o desenvolvimento do produto. Não antes (a equipe não deve assumir em que direção o produto evoluirá) e nem mais tarde quando já tiver se transformado em dívida técnica. A revisão do projeto também poderia fazer parte do Departamento de Defesa.

Kris Van Bael
fonte
0

Eu concordo com MelR. Se houver algo "técnico", precisamos examinar por que estamos fazendo isso - ou mesmo qual é a causa e efeito a curto e longo prazo (para o usuário) ?.

Eu já vi muitos atrasos em que as chamadas "tarefas técnicas" podem ser facilmente escritas de uma forma que agregue valor aos negócios.

As tarefas técnicas também costumam ser o resultado de grandes histórias detalhadas, pois pode ser a maneira mais fácil de explicar as coisas. Mas isso pode causar iterações mais lentas do verdadeiro valor agregado (ou oportunidades de feedback) ou ainda pior a falha dos sprints.

Em relação ao "código que é desgastado e deve ser refatorado", como Patrick menciona, acredito que precisamos perguntar - qual área da funcionalidade do sistema esse código está afetando? e qual é o efeito a longo prazo no usuário se não o refatorarmos agora?

Depois, há o assunto de "deixar as coisas um pouco melhor do que as encontramos" para reduzir a dívida técnica de longo prazo e isso pode ser feito como parte das pequenas histórias de cada sprint sem muito impacto no projeto mais amplo?

Por fim, não vejo a necessidade de dois atrasos, pois isso abre a oportunidade de diminuir as necessidades com prioridade adequada - mas há a necessidade de um proprietário do produto que seja educado nas preocupações dos impactos técnicos e tenha uma forte capacidade de identificar o verdadeiro valor para para dividir histórias verticalmente - a Adobe oferece uma boa explicação sobre o fatiamento vertical .

James
fonte
0

Não, você nunca deve criar histórias técnicas. Este é um erro comum. Suas histórias devem refletir os requisitos de negócios. O material técnico nunca é realmente um requisito comercial. Esse é o papel do scrum master e da equipe para avaliar todas as tarefas técnicas que eles terão que realizar para alcançar o objetivo ou a história.

Se sua história é sobre a criação de uma tela de login, por exemplo, você terá que considerar a criação do banco de dados também se ainda não tiver sido criada.

Não vejo o problema de criar, com o PO, tarefas nas quais a equipe de TI é o usuário. Se a tarefa puder ser entendida pelo OP e puder ser avaliada em termos de valor comercial, sim, você terá uma maneira de criar histórias técnicas. Você acabou de usar o sistema.

Bastien Vandamme
fonte