Creo que la mejor manera de abordar esto es determinar qué es lo que realmente desea considerar un error primero.
Muchos desarrolladores no considerarán que algo que no funciona como está previsto actualmente no es un error, porque honestamente no es un error. Si actualmente está trabajando en algo y todavía tiene defectos, entonces el error específico no está completo, por lo que no hay un defecto real. Lo inverso se aplica al trabajo completado, si ha determinado que algo está completo y listo para la prueba / lanzamiento / producción y luego encuentra un defecto en el código o uso, entonces definitivamente tiene un error.
Mi empresa utiliza la siguiente metodología para determinar cuándo se debe corregir un error:
Si el error es crítico, se agrega al sprint actual relacionado con ese producto, con la prioridad adecuada. Por lo general, planeamos en aproximadamente un 10% de tiempo extra para permitir esto en un sprint, así como también tener las cosas adicionales que realmente no planeamos completar, pero si no tenemos errores o algo se completó más rápido de lo que esperábamos, entonces podemos completar.
Si un error no es crítico, simplemente lo agregamos al trabajo atrasado y normalmente lo completamos en el próximo sprint.
Por qué este es el flujo ideal, hay una filtración obvia, y a veces las cosas que no son 'críticas' desde una perspectiva de programación pueden necesitar completarse de inmediato si la gerencia decide que debe completarse antes de lo que pensamos que debería ser. terminado.
Por otro lado, creo que lo mejor que puedes hacer es elegir una estructura y luego quedarte con ella. Algunas de las mayores pérdidas para la productividad comienzan a ocurrir cuando comienzas a hacer cosas sin estructura. Una vez que comienzas a degradar tu estructura, es muy fácil que vaya cuesta abajo.
Eso puede haber respondido demasiado a su pregunta, pero esos son solo mis pensamientos sobre cómo se deben manejar estas cosas.