Como uma equipe do Scrum explica as tarefas de infraestrutura na reunião de planejamento?


33

Como uma equipe Scrum considera as tarefas de desenvolvimento / infraestrutura na reunião de planejamento?

À primeira vista, eles não parecem histórias de usuários, pois não agregam valor ao usuário final.

No entanto, anexá-los como tarefas a uma história de usuário específica às vezes também não faz sentido. Por exemplo, diga que a tarefa é: "Setup Bamboo". Essa tarefa não é necessária para concluir nenhuma história do usuário, pois a equipe pode criar e implantar manualmente. Portanto, anexá-lo a uma história do usuário não faz sentido, pois essa tarefa não é necessária para concluir a história do usuário.

Portanto, isso sugere que essas tarefas se tornam histórias de usuários. Mas então, se a história da equipe apontá-los, isso muda a velocidade que é ímpar, já que o Dono do produto quer saber a velocidade contra seu backlog, não contra o backlog com várias histórias técnicas de usuários anexadas a ele.

Respostas:


25

Na verdade, não são histórias de usuários. São histórias de partes interessadas. A menos que o software seja realmente pago diretamente pelos usuários, é raro que uma história seja criada inteiramente para seu benefício.

Eu dou alguns exemplos:

  • artigos com palavras-chave, que permitem que os anunciantes tenham anúncios mais eficazes
  • CAPTCHAs, que existem para impedir que os moderadores tenham que lidar com spam manualmente.

A maioria das histórias técnicas realmente oferece um benefício comercial, mas raramente é para os usuários. Expressá-los de uma maneira diferente pode ajudar. Normalmente, uso o modelo de injeção de recursos de Chris Matts:

In order to <achieve my goal>
As <the stakeholder who wants the goal>
I want (<some users to do>) <some stuff>.

Isso reconhece explicitamente todos os tipos de partes interessadas, incluindo a equipe de desenvolvimento. Agora você também pode descrever suas histórias técnicas, destacando o benefício comercial:

In order to minimize the risk of deploying something broken
As the team deploying the code
We want to spend a few days on an automated deployment system.

Eu escrevi algumas postagens de blog sobre isso: elas não são histórias de usuários , injeção de recursos e manipulação de histórias técnicas . Espero que eles ajudem.


3
Semântica ... IMHO isso vai contra a filosofia Agile; adicionando a separação necessária, onde ela não fornece valor real, a não ser sentimentos confusos e quentes.
Aaron McIver 24/03

5
Você está falando por experiência ou teorização? Pergunto porque já usei esse modelo com várias equipes e descobri que colocar o objetivo em primeiro lugar realmente ajuda a estabelecer o que é necessário para alcançar a visão do projeto. Mike Cohn usa "para que" opcionalmente. Eu não acredito que seja.
Lunivore 24/03

1
Vejo que esse modelo é útil para ajudar a comunicar o valor da tarefa técnica a ser executada ao OP não técnico. Há uma diferença entre "como analista de controle de qualidade, desejo um servidor de integração contínua para que o aplicativo seja testado automaticamente todos os dias" e "Para reduzir a quantidade de testes manuais necessários no final do projeto e a probabilidade de um erro deslizando para a produção, como uma equipe de controle de qualidade, queremos testar um servidor de integração contínua ". Mostrar os negócios ocultos fornece ao OP informações suficientes para decidir se deve incluir ou não.
Soronthar 24/03

1
@Soronthar Onde termina então? "Para reduzir os níveis de frustração, como equipe de desenvolvimento, queremos criar nossas próprias regras" É de natureza circular. Essa é uma razão pela qual você permaneceu focado no usuário e é isso. As tarefas devem ser ocultadas do pedido; como o OP não deve se preocupar com esses detalhes.
Aaron McIver 24/03

9
Ah, e apenas no caso de não estar claro - eu me preocupo mais em realizar trabalhos úteis do que em Scrum. Ou magra. Ou BDD. Também acredito que o trabalho mais útil em software tem a ver com a aprendizagem e o gerenciamento de riscos. Quando a metodologia atrapalha a execução de um trabalho útil, tenho tendência para o trabalho útil.
Lunivore 25/03

12

Velocidade é uma medida da capacidade da equipe de realizar um trabalho útil (em oposição ao Drag). As tarefas de infraestrutura ainda agregam valor ao usuário final, embora indiretamente, tornando a equipe mais eficiente a longo prazo. Não tenho problemas para rastrear essas coisas como histórias de usuários (o usuário é a equipe de desenvolvedores neste caso) e priorizá-las adequadamente. Um Dono do produto em boa comunicação com o (s) cliente (s) deve ser capaz de descobrir onde essas tarefas podem se encaixar sem interromper as entregas.


3
Eu acho que é perigoso para as equipes embaçar a distinção entre coisas que são diretamente valiosas para o usuário e coisas que esperançosamente fornecem valor indireto. Em particular, uma abordagem de "tudo o que gostamos é valioso" incentiva o revestimento de ouro e a infraestrutura do desenvolvedor por causa da infraestrutura. Encorajo vivamente as pessoas a contar apenas histórias com valor comercial direto em relação à velocidade, porque é a única coisa pela qual os clientes pagam em dinheiro.
William Pietri

3
Valsando com ursos. Tudo o que você faz que é realmente valioso é principalmente valioso, porque ninguém fez isso antes (caso contrário, existem outras maneiras mais baratas de fazê-lo). A maior parte do que fazemos, que é valiosa, é aprender a fazer coisas novas. As tarefas de infraestrutura nos ajudam a obter feedback sobre as coisas novas e a aprender mais rapidamente. Estou com a @Kristo se isso nos ajudar a aprender mais rapidamente.
Lunivore 25/03

@Livivore - A diferença é que ninguém lhe paga por aprender. Eles pagam pelo que você faz com o aprendizado. As equipes sempre devem levar algum tempo para aprimorar suas ferramentas e seus conhecimentos. Mas contá-lo como velocidade confunde-o com o tipo de trabalho que a equipe está lá para fazer.
William Pietri

Não se trata apenas de ferramentas e conhecimento. Experimento de Ashley Johnson: Pense no último projeto que você fez. Pense em quanto tempo levaria para fazê-lo novamente com as mesmas pessoas, os mesmos requisitos, a mesma tecnologia, mas tendo aprendido tudo o que aprendeu. As cotações dos PMs variam de 25% a 33% - o restante é o quanto aprendemos em projetos de software. Leia a publicação de Dan North no Deliberate Discovery: dannorth.net/2010/08/30/introducing-deliberate-discovery
Lunivore

11

Faça-os gradualmente.

Se nenhuma parte interessada quiser, não faça história. Apenas cuide disso, um pouco de cada vez. Por exemplo, a primeira vez que você implanta manualmente. Na segunda vez, você automatiza um pouco disso. Na terceira vez, você automatiza um pouco mais. Eventualmente, sua compilação não é o maior problema, então você se concentra em outra coisa.

Você terá mais dessas tarefas focadas no desenvolvedor no início, e tudo bem; sua velocidade (medida pelas histórias) será apenas menor. Essa é uma representação correta da situação. Mas você sempre terá alguns, por isso é importante que a equipe tenha o hábito de fazer o que é necessário para melhorar o processo.


+1: Spike a solução pela primeira vez e refatore-a para ser melhor e mais confiável na segunda vez.
24511 S.Lott

Então, como você garante que as tarefas focadas no desenvolvedor não estejam assumindo o sprint, especialmente quando você ainda não estabeleceu uma boa métrica de velocidade? Eu não gostaria de perder uma entrega antecipada, porque passamos muito tempo com coisas que ajudarão a longo prazo.
Kristo

E você deve reservar um tempo para refletir regularmente e fazer melhorias no processo como essa de qualquer maneira.
Michael

@ Krristo, não acho que seu gerente de produtos / clientes o deixaria escapar disso. Mesmo sem uma velocidade estabelecida, você adivinhará e negociará o valor a ser entregue para os primeiros sprints. Além disso, se você disparar como @ S.Lott sugere que você não estará entregando de qualquer maneira.
Michael

@ Kristo: Você faz isso gradualmente e reflete regularmente. Quando você começa, tudo que você sabe é que você definitivamente estará fazendo a quantia errada. A cada semana, fale sobre se você deve fazer mais ou menos infraestrutura e se está focando nas coisas de maior valor. É sempre um ato de equilíbrio.
William Pietri

6

IMHO, a abordagem ideal é colocar o esforço de infraestrutura como tarefas na história do usuário, onde ele primeiro valoriza; como você mencionou.

Tomando o seu exemplo; criar e implantar manualmente implica que é um esforço contínuo e não tem forma de conclusão. Existe indefinidamente.

O mesmo poderia ser dito para o código que automatiza qualquer parte do esforço em um aplicativo típico que foi feito anteriormente manualmente. Definir esse esforço como uma tarefa em uma história de usuário define completo; que, por sua própria natureza, tem valor para o usuário final.

Você certamente pode criar e implantar o aplicativo em todos os sprints, mas isso se torna parte das tarefas do dia a dia que não são formalmente rastreadas por meio da lista de pendências e tudo isso se torna discutível.


Obrigado por esta resposta. Finalmente, esclarece como isso deve ser feito: "a abordagem ideal é colocar o esforço de infraestrutura como tarefas na história do usuário, onde ele primeiro valoriza".
Igor Popov

Na verdade, esse trabalho de infraestrutura deve fazer parte da Definição de Concluído.
Igor Popov

4

Histórias de usuários definem um valor de negócio da perspectiva do usuário. Por esse motivo, as tarefas de infraestrutura são geralmente consideradas como um "desperdício". Isso não significa que eles não são necessários. Isso significa que realizar mais tarefas de infraestrutura fornecerá menos valor comercial. Por esse motivo, as tarefas de infraestrutura não devem ser consideradas como um histórico de usuários e não devem ser anexadas a nenhuma história de usuário.

Em uma reunião de planejamento, a equipe deve considerar quais tarefas de infra-estrutura serão absolutamente necessárias durante o próximo sprint. O compromisso será feito com essas tarefas de infraestrutura em mente. Isso afetará a velocidade da equipe, que é o resultado correto, porque a velocidade mede quanto valor comercial a equipe pode oferecer.


2

Eu nunca igualei as histórias de usuários a fornecer valor ao usuário final. Pode ser comum, mas não é assim que lidamos com histórias de usuários. Às vezes, esses tipos de tarefas são considerados picos, mas também tivemos histórias de usuários regulares, pontos estimados como qualquer outra história de usuário.


Algumas equipes trabalham dessa maneira, mas isso dificulta a mensuração do valor entregue. Pessoalmente, sugiro que as equipes criem apenas histórias que tenham valor comercial. (Spikes tem valor de negócio porque os produtos as pessoas estão comprando informações sobre as opções futuras e seus custos.)
William Pietri

Mas qual é o valor do negócio? É um termo amplo, e qualquer coisa que permita a uma empresa lançar software mais cedo / melhor / etc tem valor para essa empresa.
Andy Wiesendanger

A distinção que estou traçando é entre coisas de valor direto principalmente para a equipe e coisas de valor direto principalmente para as pessoas que você realmente está lá para servir. Eu acho que você só deve contar o último em relação à velocidade, porque esse é o único valor que importa. As coisas feitas para melhorar a criação de valor são contabilizadas em velocidade por meio da melhoria da velocidade a longo prazo. Contá-lo imediatamente distorce os incentivos e conta o ganho duas vezes.
William Pietri

2

Pelo que vi, grande parte da infraestrutura é considerada um dado. Isso inclui coisas como:

  • Sistema de controle de revisão;
  • Sistema de construção automatizado;
  • IDE e outras ferramentas de desenvolvedor;
  • Servidores de desenvolvimento;
  • Processo de implantação; e
  • Processo e padrões do projeto.

A maioria das metodologias com as quais trabalhei não dá muita atenção a elas. Eles formam o que eu chamo de Liberação 0. Essas coisas devem estar em vigor antes de você começar o desenvolvimento. Depois que você começar a trabalhar nas histórias, quaisquer mudanças nessas coisas poderão ser rastreadas como melhorias no processo.

Embora a equipe de desenvolvimento possa ter informações, a maioria desses itens deve ser tratada por uma equipe de suporte ao projeto. A padronização desses itens em vários projetos deve ter um retorno significativo para a organização.


1
+1: Se isso não estiver no lugar, o Agile é realmente difícil. Infraestrutura e plataforma estáveis ​​e comprovadas, um tipo de pré-requisito para agilidade.
24511 S.Lott

1

Considere o seguinte:

  • Equipe Scrum adicionando recursos principais a um conjunto de produtos existente.

  • É necessário atualizar a tecnologia / ferramentas / utilitários de desenvolvimento para manter-se atualizado com base nas melhores práticas de engenharia.

  • Faz sentido carregar antecipadamente uma versão com este trabalho para que, ao longo da versão, os problemas do Sprints possam ser resolvidos.

  • Como a empresa obtém valor indireto desses itens, sugiro que, no interesse da transparência, esses sejam PBIs ( Product Backlog Items ).

  • A equipe dimensiona esses itens e os trata como tratariam qualquer PBI.

Esse problema para mim se resume ao fato de que não quero perder tempo tentando descobrir como ocultar esse trabalho como tarefas sob outros PBIs mais centrados nos negócios.

Não quero que o tamanho do PBI seja distorcido por esse tipo de trabalho de infraestrutura. Quero ver o que está sendo feito e entender o que estou pagando.

Também acho que vale a pena que a equipe entenda o compromisso que a empresa está assumindo investindo na infraestrutura necessária para fornecer soluções de qualidade.


0

O XP recomenda sugerir um "zero de iteração" em que todas as ferramentas e infraestrutura estão configuradas. Escrever histórias para eles é opcional, mas provavelmente é uma boa ideia. Ser capaz de testar sua infraestrutura (criação incremental, teste e implantação automatizados, notificações etc.) é benéfico


2
XP não recomenda isso. Algumas pessoas fazem isso, mas definitivamente não faz parte da Extreme Programming, conforme definido por Beck, et al. Pessoalmente, acho que a Iteração Zero é uma má ideia.
William Pietri 24/03

Outro problema: você nem sempre começa no zero, pode perceber que precisa de algo agora ou no próximo sprint.
Andy Wiesendanger 24/03

@ William: consulte "Planejando a programação extrema" de Kent Beck, capítulo 15, página 66.
Steven A. Lowe

Isso não é uma recomendação. Eles dizem que é uma ideia e dizem: "Se você não trabalhou com sua tecnologia antes, considere passar duas semanas usando a tecnologia logo antes de começar a programar". E eles não sugerem "toda a infraestrutura", apenas scripts automatizados básicos de teste, criação e implantação.
William Pietri 28/03

@ William: aha, eu vejo o que você está chegando. Eu não quis dizer todo o software de infra-estrutura, apenas o material que você mencionou
Steven A. Lowe

0

Em nossa equipe, fazemos o seguinte:

  1. Suponha um fator de foco menor .
  2. Tente incluir essas tarefas nas histórias de usuários que realmente precisam implementá-las.
  3. Se algumas tarefas são totalmente necessárias, mas não fornecem valor comercial direto (como a migração de testes de unidade de uma estrutura para outra), no início do sprint, criamos uma lista de "tarefas contínuas" . Essas são tarefas relacionadas ao desenvolvimento que não são histórias, mas a equipe de desenvolvimento deseja que elas sejam concluídas. Listamos essas tarefas no quadro-negro, mantendo-as separadas das histórias. Durante o sprint, em cada reunião diária, analisamos o que foi feito para alcançá-los.

O passo 2 é o mais importante. Como em uma prática ágil, no Scrum, você tenta fazer o mínimo possível para realizar suas tarefas. Tome isso como uma maneira de não desperdiçar sua vida fazendo trabalhos desnecessários: minha experiência mostra que até 50% das coisas "que seriam legais" acabam sendo abandonadas e mantidas a longo prazo.

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.