O Scrum pode usar especificações técnicas no Backlog do Produto em vez de histórias de usuários?


14

Na empresa em que estou trabalhando, começamos a fazer projetos Scrum. Não foi tão difícil convencer os gerentes a passar da cascata para o Scrum. Estamos fazendo um projeto em que reconstruímos nossa plataforma do zero. Portanto, a maioria das funcionalidades é conhecida e a maioria das melhorias é bastante técnica.

Nisso, poderia ser justificado ter tarefas técnicas em vez de histórias de usuários. Nosso backlog possui todos os tipos de tarefas técnicas, como:

  • Reescreva a classe DB do MySQL para o PostgreSQL.
  • Implemente o log do sistema.
  • Reescreva o cache do objeto.

As coisas que surgem durante os levantamentos incluem que longas "tarefas de pesquisa" são desejadas, mas nunca são feitas. Além disso, os membros da equipe afirmam no meio do sprint que tarefas não planejadas precisam ser adicionadas.

Como um Scrum Master deve lidar com isso? Será que, para esse tipo de projeto, Scrum NÃO é o caminho a percorrer?

Respostas:


10

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:

  1. Suas especificações não possuem um ponto de vista explícito ou proposição de valor.
  2. Seus itens de backlog não estão vinculados às metas da Sprint.
  3. Seu processo de preparação do backlog está ausente ou com falha ao criar picos de história para o backlog do produto.
  4. Seu processo de planejamento da Sprint não decompõe adequadamente os itens do Backlog do produto em itens do Backlog do Sprint.
  5. Sua equipe não está incluindo adequadamente a incerteza sobre os itens da lista de pendências nas estimativas de planejamento da Sprint.
  6. 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.


Você não precisa iniciar todas as respostas com TL; DR, é bom ter um resumo no início sem um cabeçalho! : P
Dave Hillier 04/04

9

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.


Portanto, é bom ter apenas tarefas sem uma história real do usuário, neste caso? Muitas vezes, os programadores dizem no planejamento de reuniões que: não sabemos quanto tempo essa tarefa leva, pois não sabemos exatamente o que está incluído. Portanto, eles primeiro querem investigar.
sanders

2
O Scrum deve funcionar para você, não se prenda ao "que está correto" - as tarefas são boas, se as tarefas precisarem de investigação, a investigação deve ser feita com timebox e eu pessoalmente limitaria a quantidade de "investigação" que pode ser planejada em um sprint - o resultado dessa investigação pode então alimentar a próxima reunião de planejamento.
Michael

4

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:

  1. Como gerente técnico, quero que meu banco de dados mude do MySQL para o X, para aumentar a escalabilidade
  2. Como desenvolvedor, quero um sistema de registro abrangente, para poder diagnosticar com mais eficiência

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.


Obrigado. Para onde vão os picos no processo Scrum? Quando eu quiser descobrir algo que vou precisar neste próximo sprint. Digamos que eu faça um pico de 4 horas, e o resultado pode ser que eu tenho 20 horas em desenvolvimento. Como você deve lidar com isso quando essas horas são necessárias para o sprint atual?
sanders

Um "pico" é período encaixotado tempo utilizado para pesquisar um conceito e / ou criar um protótipo simples, produzir uma prova de conceito, expandir o conhecimento, etc
Ioannis Tzikas

@IoannisTzikas não é uma resposta à minha pergunta ;-)
Sanders

1

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.


1

Algumas das estratégias abaixo podem ajudar,

  1. 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.

  2. 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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.