When we think of regression, we think of bugs. That’s the first thing that pops into our minds. As with many other things, there’s a deeper meaning, if we just look closer.
We have two kinds of usage for the word regression. We use it to describe a test suite (unit tests, integrgation tests, end-to-end tests. etc.) that we run at the end of specific testing cycle, to make sure everything is still working. We also use the term, technically, to describe an event when automated tests (or manual) broke, when before it has passed. The first usage comes from the second; because we broke so much that had worked before, we needed to build a whole suite of automated tests to make sure nothing slipped by before the next release.
We use the term “regression” to describe the system quality that has regressed. In short, something that worked before, now doesn’t. We have changed course, and instead of making progress, we are now regressing.
If we want to move forward, or in any direction really, we don’t want to go back. Right?
We don’t, when it comes to quality.
We do, when the change is hard.
Process regression
So many times, we forget that regression is not just about bugs. When we’re making progress, with new processes or agile habits, every time we stumble, or hit a wall, we start thinking: It wasn’t that bad before. Sure, we had a lot of X problems (where X was the problem of the past, like people leaving because of command-and-control), but at least we didn’t need to deal with Y (where Y is the current challenge we’re facing, like losing control to a self-organizing agile team).
When we do hit that wall, it’s very easy for us to regress. It makes sense, too. To make progress, we needed to get out of our comfort zone. When the going gets tough, it’s easy to get back there, because we feel comfortable there. It’s natural. It’s easier then climbing that wall.
But here’s the thing: Before you start to regress, stop for a minute. Think of why you’ve started this agile journey in the first place. When you did, you wanted the prize at the end. That prize (better quality, better results, less waste, any improvement you’re chasing) is still there.
“But it’s a long, hard road!”
Yes, it is. Going agile is hard.
To make progress, you need to fight regression.
Making progress is no simple matter.