Como gerenciar a lista de pendências / histórias de usuários do produto

8

Estamos prestes a iniciar um novo projeto usando o Agile (usando o TFS), e eu tenho algumas perguntas sobre "boas práticas" relacionadas ao backlog do produto: -

Quando começamos a adicionar histórias aos usuários, é uma boa ideia colocá-los (digamos) em uma iteração "Backlog" ou simplesmente deixar a iteração em branco? Obviamente, quando chegar a hora de começar a trabalhar nos EUA, ele será movido para o backlog de iteração apropriado.

Ao dividir um épico em USs menores, eu simplesmente fecharia o épico original, pois ele não é mais necessário? Ou devo criar os novos EUA como filhos do épico? (é responsabilidade de alguém encerrar o épico depois que todas as crianças americanas forem concluídas).

Por fim, o backlog do produto deve listar todos os EUA, independentemente do status ou apenas aqueles que não foram iniciados (por exemplo, na iteração "backlog" proposta)?

Sei que essas perguntas não são de vida ou morte, mas seria bom saber como outras pessoas gerenciam os pedidos em atraso de seus produtos para que possamos organizar as coisas corretamente desde o início.

Andrew Stephens
fonte

Respostas:

6

Não estou familiarizado com o TFS (isso é uma ferramenta de software?), Mas posso dar algumas respostas com base no Schwarber.


1. Recipientes de histórias

Existem apenas dois contêineres de histórias em que você deveria estar pensando: o backlog do produto e o sprint. As ferramentas de software para rastrear o scrum podem permitir que você mantenha os registros anteriores do sprint antigos para análise histórica e tudo bem, mas você deve encerrar um histórico posterior do sprint (por exemplo, verifique se tudo está concluído ou movido) antes de executar qualquer trabalho no próximo backlog do sprint.

Às vezes, há uma tendência de criar o backlog do próximo sprint em uma ferramenta de software enquanto ainda está no sprint atual. Não faça isso. Se esse backlog futuro do sprint estiver lá, as pessoas tentarão colocar histórias nele. Isso interrompe o processo de planejamento adequado, aumenta as tensões e confunde os problemas de programação.

Se você não conseguir manter os limites adequados entre seus sprints, estará executando, em essência, vários sprints semelhantes. Você é multitarefa. No mínimo, a sobrecarga da alternância de tarefas o tornará mais lento; pesquisas indicam que uma troca de contexto completa em humanos, do quebra-cabeça A para o quebra-cabeça B, leva 15 minutos. Minha experiência sugere que esse arrasto pode ter 50% ou mais de sua produtividade.

2. Epopeias

Mantenha seus épicos por perto. Alguém pediu esse recurso, provavelmente voltará e desejará saber o status do épico. Essa pessoa, departamento ou cliente estará pensando na "história" que eles enviaram, agora promovida à epopeia. Eles não vão pensar nas histórias menores envolvidas e podem nem reconhecer que a história Foo está relacionada ao seu pedido. O épico é uma alça conveniente para a comunicação entre o desenvolvimento e o cliente.

Como os épicos não são realmente trabalhados, apenas as histórias associadas, eles passam diretamente da lista de pendências do produto para a pilha finalizada.

3. Para onde vão as histórias?

Uma história deve estar apenas em um contêiner por vez. Ele deve começar no backlog do produto, mover para um backlog do sprint e terminar. Se alguém procura sua história no backlog do produto e não a encontra, isso deve significar que está em andamento ou concluído.

4. Considerações finais sobre como gerenciar um backlog profundo do produto

A ordem de classificação forçada fica sem sentido quando você tem centenas de itens no backlog do seu produto. Claro, a maneira como você organiza os itens 20 a 70 pode ser bastante significativa, mas quem realmente se importa se o número 300 for antes ou depois do número 301?

Uma solução possível para isso é ter vários registros de subcomponentes que alimentam um registro de produtos principal. Por exemplo, você pode ter interface do usuário, banco de dados, back-end, API, infraestrutura e dívida técnica como seus subcomponentes. Cada lista pendente de componente pode ser delegada a uma pessoa diferente para gerenciamento. Uma reunião periódica teria que decidir quais histórias serão transferidas para o principal backlog do produto. Para manter um equilíbrio adequado de histórias no backlog do seu produto, é melhor decidir a priori uma diretriz (não regra) para as proporções de histórias que são promovidas para o backlog principal. Uma história de API para cada duas histórias de interface do usuário? Quantas histórias você pode obter da Dívida técnica em comparação com o número de histórias de back-end que você precisa?

Este sistema adiciona uma complexidade considerável e requer muita coordenação extra. Isso só deve ser realizado quando o backlog do produto cresce tanto que o Dono do produto não consegue pensar em todas as histórias de uma só vez.

David Paigen
fonte
5

Uma iteração no Agile não é tanto um contêiner para histórias de usuários, mas uma pequena versão de software após o SDLC por um período pequeno e facilmente gerenciável.

O Backlog não é uma iteração, é essencialmente um contêiner para histórias de usuários, épicos e tarefas que você ainda não tem tempo para resolver no sprint atual. Ao planejar com antecedência o próximo sprint, você deve reavaliar as prioridades atuais dos itens na lista de pendências, versus o nível de esforço para entregar cada um na determinação do que pertence ou não à próxima iteração.

Não planeje mais de uma iteração com antecedência

Isso não é ágil e derrota todo o objetivo do desenvolvimento iterativo em sua totalidade. As necessidades e requisitos de negócios geralmente são voláteis demais para fazer planos de longo prazo sobre requisitos rígidos de software, e é por isso que mantemos nossa atenção focada apenas na iteração atual e na qual trabalharemos assim que entregar essa iteração.

Se a gerência desejar estimativas de longo prazo (com base na lista de pendências atual, como existe no momento), é possível analisar o tamanho dos itens atuais da lista de pendências para fornecer uma data estimada de conclusão.

Sua pergunta sobre em qual iteração colocar as histórias de backlog me diz que você provavelmente está tentando planejar suas iterações com muita antecedência.

Ao dividir um épico em USs menores, eu simplesmente fecharia o épico original, pois ele não é mais necessário? Ou devo criar os novos EUA como filhos do épico? (é responsabilidade de alguém encerrar o épico depois que todas as crianças americanas forem concluídas).

Um épico deve ser aceito quando atingir satisfatoriamente sua meta de negócios declarada. Isso ocorre basicamente quando todas as histórias de usuários filhos foram concluídas e aceitas.

maple_shaft
fonte
Acho que há alguma confusão na maneira como o TFS armazena e relata artefatos. Ele não tem o conceito de lista de pendências de produtos como tal - quando você solicita a exibição do PB, ele simplesmente lista todos os EUA que não estão fechados, independentemente da iteração (se houver) em que estão. Na minha pergunta original, eu estava pensando que, ao colocá-los em uma iteração falsa chamada "Backlog", deixaria claro para todos que os EUA ainda não foram iniciados - embora, em retrospectiva, isso não seja diferente de criar um EUA e deixar sua iteração em branco.
Andrew Stephens
2
@AndrewStephens Eu acho que seu problema é que os relatórios padrão incorporados ao TFS estão desassistindo você. Isso pode ser facilmente remediado porque, se bem me lembro, é bastante fácil escrever relatórios personalizados para o TFS. Na medida em que a lista de pendências for considerada, a maioria dos softwares de MP tratará qualquer história de usuário não programada como lista de pendências. Talvez você possa mexer no relatório para mostrar isso como tal.
maple_shaft