Too Many Bugs
An engineering manager asked me, "What do you do when you notice that your team is shipping more and more bugs?"
"More and more of the work that's going out is coming back with regressions, with user complaints, with crashes, and the like. What do you do in that situation?"
As with most advice, the answer is it depends. You have to figure out what the underlying reasons could be, as well as the context in which they are happening. What we do know, is that humans are going to make mistakes. Programmers are going to ship bugs.
The first thing that's notable to me about the scenario is that there is likely a perception from leadership (or anyone above our protagonist) that there are increased bugs and they're more severe and people are complaining and so now it becomes a critical issue that needs to be investigated by the engineering manager. Fix your team!
Let's dive in.
Where do we start?
So if we take it as a understood that people are going to make mistakes, and that bugs are currently in your production code, then where can we look to minimize the rate of occurence of these bugs? Here are a few I can think of:
- Gaps in testing and review: Most companies have automated tests, staging environments, QA, and so on. So these bugs are getting through each step!
- Shipping culture shift: I've found that teams tend to ebb and flow between "just ship it" and "everything must be perfect". Maybe the team (and company) is in the former mode.
Process
Most companies have a code review process. At places I've worked, it looks fairly standard. Someone makes a change, someone different reviews it, approves it, and then it can go into main if the test suite passes. Usually it then gets deployed to a preview environment, where folks poke at it until it's deemed fit for production. At this point, take a step back and consider: if a bug getting through all of those layers, I don't think you can blame any one person or step.
Well... As the EM, it's your responsibility to own it and to figure out how to improve the situation. So you might end up taking the heat here. ...Congrats?
Anyways, tactically it is very tempting to focus on each piece of the process. You might actually have major strides to gain there! Don't have a test suite at all? Adding one will help. Have one, but it's always flaky/red? Getting it to green will help. Etc. So definitely evaluate the process.