Estou entrando no scrum e no TDD e acho que tenho alguma confusão sobre a qual gostaria de receber seus comentários. Vamos supor que eu tenha uma história de usuário em minha lista de pendências. Para começar a desenvolvê-la como parte do TDD, preciso ter requisitos, até agora?
É verdade dizer que o gerente de produto e o controle de qualidade devem ser responsáveis por pegar a história do usuário e dividi-la em testes de aceitação?
Eu acho que o exposto acima é verdadeiro, pois os testes de aceitação precisam ser formais, para que possam ser usados como testes, mas também legíveis por humanos, para que o produto possa aprovar que são os requisitos, certo?
Também é verdade que, posteriormente, faço esses testes de aceitação e os uso como meus requisitos, ou seja, são um conjunto de casos de uso que eu implemento (por meio do TDD)? Espero não estar bagunçando muito, mas esse é o fluxo atual que tenho em mente agora.
Atualização
Acho que minhas intenções iniciais não eram claras, então tentarei reformular. Quero saber mais detalhes sobre o fluxo scrum de transformar uma história de usuário em código enquanto estiver usando TDD.
O ponto de partida é óbvio: um usuário apresenta uma necessidade (ou o representante do usuário como produto), que é uma descrição curta de 1 a 2 linhas no formato conhecido e que é adicionada à lista de pendências do produto.
Quando há um planejamento de primavera, as histórias de usuários são retiradas da lista de pendências e atribuídas aos desenvolvedores.
Para que um desenvolvedor escreva código, eles precisam de requisitos (especialmente no TDD, pois os requisitos são de onde os testes são derivados).
Quando, por quem e em qual formato os requisitos são compilados?
O que eu tinha em mente era que o produto e o controle de qualidade definem os requisitos por meio de testes de aceitação (estou pensando em usar o FitNesse automaticamente ou o tipo, mas esse não é o principal, acho) que ajuda a servir a dois propósitos ao mesmo tempo:
- Eles definem "Concluído" corretamente.
- Eles dão ao desenvolvedor algo para derivar testes.
Eu não tinha certeza de quando eles foram escritos (antes da sprint eles são escolhidos, isso pode ser um desperdício, pois informações adicionais chegarão ou a história não será escolhida. Durante a iteração, o desenvolvedor pode ficar parado esperando por eles. ..)