Primeiro, quase nada na resposta do @ DXM corresponde à minha experiência com o Agile, e especialmente não com o Scrum.
O Manifesto Ágil afirma que, embora a documentação abrangente seja valiosa, o software de trabalho é MAIS valioso. Portanto, a documentação certamente não é uma coisa ruim, mas deve realmente servir a criação de software funcional.
Indivíduos e interações sobre processos e ferramentas
Software de trabalho sobre documentação abrangente
Colaboração do cliente sobre negociação de contrato
Respondendo a mudanças após seguir um plano
Ou seja, enquanto houver valor nos itens à direita, valorizamos mais os itens à esquerda.
Pregar todos os detalhes antes de começar a codificar provou ser um desperdício repetidamente, de modo que a documentação é geralmente tratada de maneira JIT (apenas a tempo). Ou seja, você documenta o que realmente vai codificar.
Uma das maneiras populares de fazer o Scrum é usar as Histórias de Usuário, que são mantidas pelo Dono do Produto e mantidas no Backlog do Produto. O Backlog do produto é uma lista de alto nível de todas as coisas que uma solução precisa fazer, e uma História do usuário geralmente é uma maneira adequada de descrever cada item da lista. As histórias de usuário não são obrigatórias, mas parecem ser uma boa maneira de não exagerar nos detalhes e inspirar colaboração.
Portanto, de qualquer maneira, quando uma história é concluída - a equipe criou, testou e implantou algo que atende aos critérios de aceitação, a história não é CHUCKED, é simplesmente marcada como concluída no backlog - para que o backlog tenha alguma indicação do que foi feito em cada corrida - histórias e os pontos associados a elas. É isso que permite calcular a velocidade e é uma documentação valiosa por si só.
Tudo isso dito, uma História de usuário pode ser toda a documentação necessária para entender um requisito, mas, mais provavelmente, é algo para gerar uma conversa entre o cliente e a equipe de desenvolvimento. Como tal, há várias coisas que você pode fazer em torno dessa conversa. Se for algo ad hoc cara a cara, como costuma ser, o analista / desenvolvedor pode (e possivelmente, dependendo da sua organização) deve escrever as decisões que foram tomadas e salvá-las em algum lugar, como Wiki ou repositório de documentação. Se for uma conversa por email, você pode salvar os emails. Se for uma sessão de quadro branco, tire uma foto do quadro com seu celular e salve-o. O ponto é que essas coisas são o que estão ajudando você a executar o código e podem ajudá-lo mais tarde, se precisar descobrir como ou por que você fez o que fez.
Outro método de capturar requisitos é incorporá-los imediatamente nos casos de teste (que eu acredito que é o que o DXM estava obtendo). Isso pode ser realmente eficiente, pois você precisa testar cada requisito de qualquer maneira. Nesse caso, você pode efetivamente armazenar seus requisitos em sua ferramenta de teste.
Se uma história for concluída (e aceita) e o usuário alterar sua necessidade, bem, provavelmente você precisará criar uma nova história. Se você usar um wiki para sua documentação, poderá vincular a nova história ao original e também vincular a história original às novas, para que alguém que a veja saiba que as coisas mudaram. Essa é a coisa legal dos wikis - é fácil e bastante indolor vincular coisas. Se você estiver adotando a abordagem orientada a testes, atualize o caso de teste para lidar com a mudança ou crie novos casos de teste para a nova história, se o novo e o antigo não forem mutuamente exclusivos.
No final, depende de qual é sua necessidade. Se o principal é acelerar o processo rapidamente, provavelmente é uma boa ideia alguém escrever um documento de integração para ajudá-lo. Então, alguém faça isso. Como mencionei, os Wiki são uma ótima ferramenta para manter esse tipo de coisa, então você pode considerar as soluções da Atlassian que podem integrar o Confluence Wiki com Jira e Greenhopper para rastrear suas histórias / tarefas / defeitos e gerenciar seu projeto em geral. Existem muitas outras ferramentas por onde escolher também.