Are you testing the right version?
Have you ever received a bug report for an issue you just fixed? You were 100% certain it was the exact thing. How is this possible? Eventually you asked the right questions to find out they were using the version prior to your fix.
What about a fix that you verified locally, but some environment still has the issue after updating? And it turns out deployment was quietly broken (for a while!) for that environment?
This is why it’s important to have a way to report and verify what version of software is running.
I’ve had times where I was confused and frustrated because it seemed like any of my local code changes weren’t applying. It turned out I was testing some other version than what I was actually building. It’s embarrassing, but it happens. It’s even worse when you are deploying to a remote device of some sort, and the deployment quietly fails, so you are testing the same unchanged build over and over, hoping for different behaviour.
You can solve this by embedding a version number or commit hash somewhere in the build. Most platforms and/or frameworks have a best practice for how to do this, so it’s worth learning how and implementing it.
If you suspect your local changes aren’t taking effect, you can also quickly verify by:
- Adding temporary log messages (“Does this code ever hit?”)
- Setting breakpoints with a debugger
- Introducing a syntax error (if you have multiple checkouts, are you building the right one?)
It’s easy to be critical of yourself when this happens. Be kind to yourself.