Depende da natureza das histórias de usuários.
Pode ser eficaz criar uma ramificação para cada história do usuário, o progresso em diferentes histórias é visível, elas podem ser contornadas, se necessário, se as histórias não forem concluídas no sprint, o progresso poderá permanecer no ramo para o próximo sprint . As revisões finais podem ser executadas no final de uma história do usuário no ramo da história de uso e mescladas se o código estiver no padrão.
Para trabalhar da maneira que as histórias precisam ser refinadas, para evitar tarefas de mesclagem incontroláveis no final de um sprint. Histórias pequenas permitirão uma atualização constante da ramificação do desenvolvedor por meio do sprint que os desenvolvedores que trabalham em outras histórias de usuários precisam obter constantemente (VCM básico).
Isso cria despesas gerais do processo que precisam criar e mesclar ramificações constantemente, o que, em alguns casos, pode ser resolvido com scripts de automação, mas a equipe ainda precisa estar muito confortável com o VCS.
No final de um sprint, você mescla seu ramo de desenvolvimento na integração / produção, etc.
Também trabalhei em equipes nas quais todos trabalham em uma ramificação de desenvolvedor, após a conclusão de uma história de usuário, o código é enviado para essa ramificação para revisão e teste e se alguém fornece algo que quebra a construção do desenvolvedor, eles precisam obter as cervejas da equipe.