I work in a largish, multi-team software development shop that builds a vertical B2B solution suite for a highly regulated domain. We are trying to become more Agile; we are iterating better than we have in the past, but there is still a lot of waterfalling going on.
Over the last year, we have become pretty hardcore in adopting the principle that engineers must fix their own defects (those found internally and those that escape to the end users). Not only are they supposed to correct them, they are supposed to correct them on their own time, without impacting plans.
I get the internal stuff, and in theory I buy all of the accountability arguments of the escaped items too. In practice though I have observed the interruptions to correct the defects is both velocity- and morale-killing and they make predictable project plans darn near impossible to build. Plus unhappy engineers are darn near impossible to keep.
It is not that we have bad engineers who are just generating bugs left and right; it is that we have highly complex systems with mixes of new and legacy technology and significant external, internal, and governmental timeline pressures resulting in an environment that does not result in pristine software. Bugs exist and that's a fact.
I am trying to make peace with this. I feel like I can be more open to our approach, but I also want to minimize the highly costly disruptions the process puts upon the teams and the human costs of the demands of off-hours work. I feel like we are trying to solve a quality problem backwards by fixing bugs instead of focusing on preventing their generation in the first place.
Are there any experienced project managers out there with some words of wisdom to share on this topic?