TL; DR
O Scrum não exige o uso de histórias de usuários; eles são simplesmente uma prática ágil útil. Embora o Dono do produto certamente possa usar especificações técnicas em vez de histórias de usuários para criar o Backlog do produto, a maioria dos outros problemas de processo decorre de uma falha em adotar práticas eficazes e ágeis de Scrum.
Vários problemas com seu processo
Seu Scrum parece estar quebrado de várias maneiras, incluindo:
- Suas especificações não possuem um ponto de vista explícito ou proposição de valor.
- Seus itens de backlog não estão vinculados às metas da Sprint.
- Seu processo de preparação do backlog está ausente ou com falha ao criar picos de história para o backlog do produto.
- Seu processo de planejamento da Sprint não decompõe adequadamente os itens do Backlog do produto em itens do Backlog do Sprint.
- Sua equipe não está incluindo adequadamente a incerteza sobre os itens da lista de pendências nas estimativas de planejamento da Sprint.
- Sua equipe não está respeitando os fundamentos do time-boxe ou a integridade do Sprint.
Embora o Scrum nem sempre seja o ajuste certo para cada projeto, nesse caso, seria mais preciso dizer que o Scrum não está funcionando porque a equipe não está realmente fazendo o Scrum. Sua pergunta sobre histórias de usuários é apenas uma pequena parte dos problemas de processo maiores enfrentados por sua equipe.
Por que os programadores ágeis adotam histórias de usuário
As especificações técnicas são uma maneira fundamentalmente quebrada de comunicar requisitos. Os requisitos que não são protegidos do ponto de vista não fornecem nenhuma orientação útil para os desenvolvedores. Usando seus exemplos publicados:
- Reescreva o cache do objeto. Por quê? Qual é o objetivo? Quem recebe o benefício? Quem pode fornecer esclarecimentos sobre a tarefa? Se isso está vinculado a um requisito não-funcional, que objetivo do projeto isso aborda?
- Implemente o log do sistema. Por quê? Quem vai ler os registros? Quais informações os logs precisam conter? Como você saberá se o formato ou os dados do log são úteis?
Do ponto de vista de um desenvolvedor, não poder responder a esse tipo de pergunta leva exatamente ao tipo de problemas do processo que você descreve. É isso que as histórias de usuários fazem: elas fornecem o contexto muito necessário e agem como espaços reservados para conversas adicionais com as partes interessadas ou usuários finais sobre recursos específicos.
Você não deve usar histórias de usuário porque considera um requisito de estrutura ou porque é uma prática ágil amplamente aceita. Em vez disso, você deve trabalhar para criar e usá-los efetivamente, pois isso torna as tarefas de programação mais fáceis e a profissão de programa mais divertida. Sua milhagem pode variar, é claro.
Eu não acho que o problema aqui seja o Scrum, como tal, acho que o problema é que não há um produto claramente definido e (já experimentei isso muitas vezes) nenhuma direção clara.
Eu acho que suas tarefas técnicas são boas, possivelmente do lado grande, mas mensuráveis e definíveis, então são absolutamente boas para uma história.
As tarefas de pesquisa são uma enorme bandeira vermelha para mim no Scrum, porque oferecem poucos benefícios visíveis e podem criar um enorme escopo. Defendo a limitação inicial de um sprint, eles não devem ser adicionados e certamente não devem ser adicionados às custas dos objetivos comprometidos. Se forem necessários para concluir uma tarefa de sprint acordada, essa dependência deve ter sido clara no planejamento (caso contrário, o que eles estavam estimando?).
Na minha experiência, projetos com muitos "picos de investigação" são uma cobertura para os desenvolvedores que não estão realmente fazendo muita coisa e desejam gastar tempo descobrindo sobre a nova coisa bacana e brilhante em vez de criar valor comercial. Não estou sugerindo que sua equipe esteja fazendo isso, mas um projeto precisa de objetivos claros e, se os desenvolvedores tiverem liberdade para "pesquisar", eles o farão e continuarão, enquanto você permitir.
fonte
O Scrum diz que é melhor você ter um produto entregável ao seu cliente. No entanto, o ponto aqui é que ele não especifica o produto a ser entregue e o cliente .
Em outras palavras, no seu caso específico, você pode definir seu produto a ser entregue como aprimoramentos de código, alterações na plataforma, reescrever e redesenhar etc. etc. e considerar seu gerente técnico como seu cliente.
Isso faz 100% de sentido para mim. Você cria um backlog que conta as histórias do usuário de seus produtos e quem é o usuário? Gerente técnico. Assim, itens como:
E o que você entrega ao seu cliente (gerente técnico) é um sistema de registro.
No entanto, em relação às tarefas de pesquisa e desenvolvimento das quais você falou, recomendo que você leia sobre picos no Scrum. São essencialmente mini-tarefas pontuais que ajudam a determinar o tempo necessário para executar tarefas desconhecidas maiores.
fonte
Como Scrum Master, você pode considerar sprints mais longos devido à natureza do trabalho. Isso fornecerá um pouco mais de um buffer para as tarefas de "pesquisa". No entanto, acho que você precisa garantir que as tarefas produzam algum tipo de produto de trabalho / prova de conceito no código. O que mais você espera que um programador faça? Peça a eles para que algo funcione e use essas informações para determinar se A: faz o que queremos B: executa melhor C: quanto tempo vai demorar para ficar mais atualizado e começar a ter alguma idéia de quanto tempo vai demorar? levar para fazer alguma coisa.
Se você descobrir que não sabe tanto quanto pensou sobre a reescrita atual, poderá ir para ciclos de sprint mais curtos. Não tenha medo de ajustá-los à medida que avança; é isso que significa ser ágil. Após sua pesquisa, você também pode optar por usar a nova tecnologia. Esse pode ser outro motivo para diminuir os sprints antes de ficar muito fora de controle. Você pode descobrir no meio de um sprint que o novo material não vai funcionar. Pare o sprint e ajuste-o com a tecnologia antiga. Afinal, seus desenvolvedores deveriam ter sido capazes de comparar e contrastar os métodos antigos e novos.
Você está manipulando as necessidades de seus desenvolvedores e, neste caso, reescrevendo o aplicativo. Suponho que existem Proprietários de Produtos que desejam que esse projeto seja concluído mais cedo ou mais tarde e não aceitarão a necessidade de "pesquisa" como desculpa a longo prazo.
fonte
Algumas das estratégias abaixo podem ajudar,
Sim, você pode ter um backlog com histórias técnicas .
Como uma história de usuário, isso também deve ser Histórias Técnicas, com foco nos benefícios que trará para o usuário final. Aqui estão algumas dicas para escrevê-lo. São histórias que trarão valor intrínseco ao produto, como você deseja mudar para um back-end melhor etc.
Para tarefas de investigação (pesquisa), use Spike
Um pico é um experimento que permite que os desenvolvedores aprendam o suficiente sobre algo desconhecido em uma história de usuário, por exemplo, uma nova tecnologia, para poder estimar essa história de usuário. Um pico deve ter uma caixa de tempo. Isso define o tempo máximo que será gasto aprendendo e corrige a estimativa do pico.
fonte