Scrum: Tudo bem para que o design / UX da história do usuário ocorra no mesmo sprint que a implementação

9

Atualmente, estou em um sprint (duas semanas) em que o designer é encarregado de definir os requisitos e o UX de uma história de usuário específica.

No mesmo sprint, devo implementar esse design. Durante o planejamento do sprint, tive que adivinhar quanto tempo levaria essa história indefinida do usuário.

Hoje finalmente recebi o design. Infelizmente, o design é incompleto / vago e é mais semelhante aos requisitos de um cliente do que um design. No entanto, a partir disso, ainda vejo que não tenho estimativas suficientes.

Para piorar a situação, não é a primeira vez. No último sprint, aconteceu exatamente a mesma coisa. Eu sinalizei isso em nossa retrospectiva e o scrum master não tinha uma resposta de como resolver isso, em vez de dizer "isso é apenas desenvolvimento para você". Ironicamente, ele fica irritado se a queima não estiver no alvo ...

Agora vou ter que pedir / trabalhar com o designer para fazer seu trabalho. Isso vai me sustentar, pois completei todas as minhas outras tarefas.

Então minha pergunta é

  • A) como você lida com dependências no planejamento de sprint? EDIT: Está tudo bem para o design / UX da história do usuário ocorrer no mesmo sprint que a implementação
  • B) como devo abordar agora o sprint? Re-estimar a história do usuário atual e ver a burndown se transformar em uma queima e ser vista como incompetente / improdutiva? Ou adicione uma nova tarefa ao sprint atual, seguindo as linhas de "ajudar o designer a criar um design adequado"

  • Allan
    fonte
    Vale ressaltar que sua pergunta na linha de assunto é muito diferente das perguntas na parte inferior do seu texto. Seria útil se você editasse isso para escolher um ou outro.
    Pd

    Respostas:

    14

    como você lida com dependências no planejamento de sprint?

    Idealmente, as dependências que não são de desenvolvimento são tratadas antes do planejamento do sprint, para que você tenha uma boa definição do item da lista de pendências para avaliar os esforços.

    Mas, se esse foi o "último desenvolvimento para você" no último sprint, provavelmente seria apenas o desenvolvimento para você neste sprint, então você realmente deveria ter aumentado sua estimativa lá e depois nas próximas tarefas que estão em um estado semelhante. Isso não é vingativo, e seria um erro deixá-lo acontecer como tal.

    O que ele faz é mostrar a incerteza da estimativa sem um projeto relativamente sólido para se estimar. Talvez isso incentive seus gerentes a garantir que um item de lista de pendências de produtos esteja definido corretamente; mas, na pior das hipóteses, irá cobrir suas costas. Ninguém reclama quando um trabalho está abaixo do orçamento.

    No entanto, você não fez isso, e agora sua pergunta é ...

    como devo agora me aproximar do sprint?

    Todo o objetivo do Scrum como uma ferramenta de gerenciamento de projetos é identificar problemas com antecedência, o que você fez. Sinalize isso para sua gerência, deixe-os decidir o que fazer com o sprint. Se eles tentarem culpar você, seja humilde e pergunte como sugerem que você lide com situações semelhantes no futuro, para evitar o mesmo problema, mesmo que você não acredite realmente que é justo.

    No final das contas, esses são problemas de gerenciamento de projetos e, se você tentar resolvê-los dentro de sua própria bolha, estará se preparando para falhar. E, quando o fizer, ficará zangado porque isso cairá sobre você, não sobre os gerentes que falharam em resolver o problema quando você o indicou.

    pdr
    fonte
    Obrigado pela resposta. Para expandir, meu scrum master quer que sejamos realmente ágeis para que possamos mudar / iterar uma história de usuário assim que ela tiver sido codificada. Portanto, ele não gosta de muita documentação / design inicial e, em vez disso, devemos codificar / planejar. É claro que isso me leva à situação em que me encontrei. O manifesto ágil parece apoiar sua posição. Então é que estamos sendo muito ágeis para o nosso próprio bem?
    Allan
    Como exemplo, uma de nossas histórias de usuários pode ser "O usuário deseja poder jogar contra outro jogador humano". Em nosso planejamento de sprint, eu provavelmente dividiria isso em algumas tarefas, como: mostrar servidores, escolher o servidor ao qual se conectar, conectar-se ao servidor. Idealmente, o designer me diria como os servidores são exibidos, quais filtros de lista estão disponíveis, o que acontece se não houver servidores etc. É claro que essa lista de coisas só está disponível para mim depois que ele foi projetado e, neste caso, está ocorrendo no mesmo sprint. Esta lista também está sujeita a alterações / iterações durante o sprint.
    Allan
    11
    @ Allan: O que seu scrum master está falhando em entender é que, se o designer precisa concluir seu trabalho antes que um desenvolvedor possa começar, esse é um projeto inicial. Fazer isso acontecer no sprint não remove nenhum custo do projeto inicial, mas o torna menos visível E dificulta a estimativa do seu desenvolvimento. Se você puder encontrar uma maneira de interagir com seu designer, isso é ótimo, faça parte do sprint e faça o esforço apropriado para uma tarefa colaborativa. Mas, de antemão, tudo bem, desde que seja honesto e, de preferência, feito antes do sprint.
    Pd2
    Se isso é típico de suas histórias de usuário, eu argumentaria que suas histórias são muito grandes. Dado o seu exemplo, eu esperaria ver "o usuário pode ver a lista de servidores", "o usuário pode se conectar ao servidor e ver a lista de oponentes disponíveis" como histórias.
    Jules
    6

    Primeiro, existe uma grande diferença entre dependências entre histórias / tarefas e incerteza no escopo / esforço de uma história / tarefa.

    As dependências são tratadas dando à tarefa / história dependente uma prioridade mais baixa do que a tarefa / história da qual depende e, possivelmente, uma anotação que não pode ser iniciada antes que a outra tarefa / história seja concluída.

    A incerteza deve ser tratada na reunião de planejamento, esclarecendo o trabalho que precisa ser feito na história. Se não for possível remover o suficiente da incerteza, a história provavelmente não atende à sua "Definição de Pronto" e não deve ser aceita no sprint.
    Se, por algum motivo, a história realmente precisar entrar no sprint, sua única opção é adicionar um buffer de risco à estimativa.

    Para o sprint atual, se você não puder trabalhar em uma história, relate-o na próxima reunião diária e realize todo o trabalho possível para atingir o objetivo geral do sprint da equipe. Você também pode anotar a história como sendo bloqueada e por quê.
    Após o início de um sprint, é impossível, em princípio, adicionar novas tarefas ao sprint.
    Além disso, se uma tarefa se mostrar mais trabalhosa do que o estimado, você não altera a estimativa, mas relata fielmente qual é o progresso e o esforço restante na tarefa.

    No final, no Scrum, é a equipe que promete entregar algo. Se essa promessa não puder ser feita, é um fracasso de toda a equipe, nunca de um indivíduo dentro da equipe.

    Bart van Ingen Schenau
    fonte
    Esta foi uma boa resposta também. Se eu pudesse marcar duas respostas como corretas, eu teria.
    Allan
    3

    Durante o planejamento do sprint, tive que adivinhar quanto tempo levaria essa história indefinida do usuário.

    Esse foi o erro que você cometeu. Ninguém pode forçar a equipe a aceitar uma tarefa no sprint e é seu trabalho afirmar que a tarefa não pode ser estimada e aceita no sprint, a menos que haja pelo menos estrutura de arame (por exemplo). Parece que seu scrum master é na verdade um gerente de projeto, o que só piora as coisas.

    Como abordar essa tarefa se for necessário realizá-la no sprint (por razões comerciais válidas)? Bem, primeiro você precisa definir o prazo para o design, após o qual não poderá implementá-lo. Por exemplo: a história é aceita, mas o design deve ser entregue na primeira semana e implementado na segunda. Em seguida, você deve trabalhar em estreita colaboração com o designer para garantir que seja possível implementá-lo no sprint. O Scrum assume uma equipe multifuncional e cabe a você organizar seu trabalho com o designer. Dito isto, se você aceitar a tarefa no sprint - que depende da equipe decidir - cabe à equipe gerenciar o trabalho de maneira a ser concluída dentro do sprint e gerenciar os riscos associados. Você não deve esperar que outro termine seu trabalho para concluir seu trabalho. É possível que você esteja prestes a revelar uma disfunção maior em sua organização.

    Maxim Krizhanovsky
    fonte
    Obrigado Darhazer. Sim, o scrum master também é o gerente de projetos. O scrum master declarou que deve haver planejamento e documentação mínimos. Em vez disso, devemos criar recursos à medida que avançamos, com revisões contínuas durante o sprint para iterar / alterar o que foi construído conforme determinado pelo gerente do projeto (daí o design e a implementação que ocorrem no mesmo sprint). Tendo vindo de uma função em que o design era bastante sólido no início, estou me adaptando dificilmente a essa cultura de código por fio.
    Allan
    3
    "... o scrum master também é o gerente de projetos." - não é bom. "... planejamento e documentação mínimos ..." - o que exatamente está nas suas Definições de Pronto e / ou Concluído? "... revisões durante o sprint para iterar / alterar o que foi construído conforme determinado pelo gerente do projeto ..." - essa deve ser a decisão da equipe, não o scrum master, certamente não o gerente do projeto e (se DEVE ser alguém ) deve ser o proprietário do produto!
    Phill W.
    @PhillW. Não temos uma definição de pronto. Temos apenas uma lista de pendências com vários estados de detalhes para um recurso. Os detalhes são detalhados à medida que avançamos. Feito é oficialmente quando as partes interessadas assinam, mas isso é realmente um marco e é o gerente / scrum master / produtor (a mesma pessoa) que diz quando está pronto. Agora faço "scrum" há um ano, pouco tempo depois de começar, eu estudei um pouco sobre scrum, pois senti que nosso modo era estranho. Quanto mais eu leio, mais me sinto como se estivéssemos fazendo scrum "Cargo cult". Mas a política torna difícil para mim fazer qualquer coisa sobre ele ...
    Allan
    1

    As tarefas sobre design são expressas como histórias e quais são as definições de sua equipe de

    • uma história está pronta
    • uma história é feita

    Cada história deve ter seus próprios requisitos e condições de aceitação, mas acho que é uma boa prática ter um conjunto de regras aplicáveis ​​a todas as histórias. Por exemplo, uma história está pronta se (e somente se!): Os estudos de arquitetura de ponta a ponta estão concluídos, o design está disponível, a história foi estimada pela equipe. As condições mínimas de aceitação podem ser: o teste automatizado está pronto, OK e foi integrado ao processo de testes, a revisão do código está concluída.

    Se uma história não estiver pronta, não a incorpore ao seu sprint. Se a condição de aceitação não for atendida, não estará concluída.

    No seu caso, a equipe pode decidir que, para estar pronta, uma história de desenvolvimento precisa ter um design completo (pelo menos uma estrutura de arame, ajuste isso à sua própria realidade). Nesse caso, você não pode lidar com design e desenvolvimento no mesmo sprint. A equipe também pode decidir que uma história de UX / design produz pelo menos um design de estrutura de arame. Se não for o caso, a história não será aceita e, portanto, as histórias que dependem dela não poderão ser iniciadas.

    Você deve convencer facilmente seus gerentes de que ter regras fortes para preparar é uma coisa boa: reavaliar a complexidade durante o sprint é uma prática ruim. Isso significa que a velocidade da equipe é incerta e, em seguida, eles, como gerentes, têm uma visão ruim do trabalho da equipe e do futuro.

    Keufran
    fonte
    0

    Um Sprint geralmente começa quando a história é clara - nesse estágio, o Backlog do Produto é estabelecido e priorizado. Se você começou sem ter o design, deve ficar claro o que pode ser feito sem o design e o que não ...

    Se você precisar improvisar enquanto o design está "colidindo" entre o cliente e o pedido, seu pedido deve informar a equipe sobre novos recursos assim que aparecerem: este é o significado de "flexibilidade" no Scrum - adapte-se às situação. A equipe de desenvolvimento, o Scrum Master e o proprietário do produto precisam se comunicar permanentemente, caso contrário, não haverá reação em tempo real à mudança.

    Um pouco mais de treinamento não pode prejudicar ... Talvez trabalhar com o designer seja uma oportunidade para você adquirir novas habilidades de experiência do usuário? ... é observar o copo meio cheio em vez de meio vazio :))

    ScrumMasterChangeFacilitator
    fonte