Eu acho que a melhor maneira de abordar isso é determinar primeiro o que você realmente deseja considerar um bug.
Muitos desenvolvedores não consideram algo que não está funcionando como planejado, mas atualmente não é um bug, porque honestamente não é um bug. Se você está trabalhando em algo e ainda possui defeitos, o bug específico não está completo e, portanto, não existe um defeito real. O inverso se aplica ao trabalho concluído, se você determinou que algo está completo e pronto para teste / liberação / produção e, posteriormente, encontra um defeito no código ou no uso, você definitivamente tem um bug.
Minha empresa usa a seguinte metodologia para determinar quando um bug deve ser corrigido:
Se o bug for crítico, ele será adicionado ao sprint atual relacionado a esse produto, na prioridade apropriada. Normalmente, planejamos aproximadamente 10% de tempo extra para permitir isso em um sprint, além de ter as coisas extras que realmente não planejamos concluir, mas se não tivermos bugs ou se algo foi concluído mais rápido do que esperávamos, podemos completo.
Se um bug não for crítico, basta adicioná-lo ao backlog e normalmente o concluímos no próximo sprint.
Por que esse é o fluxo ideal, existe algum vazamento óbvio e, às vezes, coisas que não são "críticas" da perspectiva da programação podem precisar ser concluídas imediatamente se o gerenciamento decidir que precisa ser concluído mais cedo do que pensamos que deveria ser concluída.
Em um lado, acho que a melhor coisa a fazer é escolher uma estrutura e depois ficar com ela. Algumas das maiores perdas de produtividade começam a ocorrer quando você começa a fazer coisas sem estrutura. Uma vez que você começa a degradar sua estrutura, é muito fácil descer tudo em declive.
Isso pode ter respondido demais à sua pergunta, mas esses são apenas meus pensamentos sobre como essas coisas devem ser tratadas.