Я думаю, что лучший способ подойти к этому - определить, что вы действительно хотите рассмотреть в первую очередь.
Многие разработчики не считают, что то, что не работает должным образом, и над которым они сейчас работают, не является ошибкой, потому что, честно говоря, это не ошибка. Если вы в настоящее время работаете над чем-то, и у него все еще есть дефекты, то конкретная ошибка на самом деле не завершена, поэтому нет реального дефекта. Обратное относится к выполненной работе, если вы определили, что что-то завершено и готово к тестированию / выпуску / производству, и позже вы обнаружите дефект в коде или использовании, то у вас определенно будет ошибка.
Моя компания использует следующую методологию, чтобы определить, когда ошибка должна быть исправлена:
Если ошибка является критической, то она добавляется к текущему спринту, связанному с этим продуктом, с соответствующим приоритетом. Обычно мы планируем примерно на 10% больше времени, чтобы учесть это в спринте, а также иметь дополнительные вещи, которые мы на самом деле не планируем завершать, но если у нас нет ошибок или что-то было выполнено быстрее, чем мы ожидали, тогда мы сможем полный.
Если ошибка не критична, мы просто добавляем ее в очередь и обычно завершаем ее в следующем спринте.
почему это идеальный поток, есть некоторая очевидная утечка, и иногда вещи, которые не являются «критическими» с точки зрения программирования, могут потребоваться завершить немедленно, если руководство решит, что это должно быть завершено раньше, чем мы думаем, что это должно быть завершено.
Кроме того, я думаю, что лучше всего выбрать конструкцию, а затем придерживаться ее. Некоторые из самых больших потерь производительности начинают происходить, когда вы начинаете делать вещи без структуры. Как только вы начинаете деградировать свою структуру, ей очень легко идти вниз.
Возможно, это чрезмерно ответило на ваш вопрос, но это всего лишь мои мысли о том, как с этими вещами следует обращаться.