Challenge: for a week, don’t use a debugger and only use the tools you can use to debug in production.
- What did you notice?
- What workflow changes did you make to get to the same level of productivity as before?
Why abandon the debugger?
The debugger has it’s place, but it can be a crutch to crafting well-thought-out software.
As useful a tool as the debugger is, not being able to use a debugger reveals a lot about coding practices and processes.
Not being able to use a debugger becomes a forcing function, you need to have the right infrastructure and processes in place to catch bugs early:
- Great error handling and logging
- Rigorous tests
- Code reviews
- Good CI/CD practices
Even then, bugs will still slip into production.
I think main outcomes of out of this exercise are:
- Enhanced tooling and processes for catching bugs Layering human and and automated means adds varying ways of cleaning up code
- Upgrading production debugging capabilities You don’t want to realise that there is poor logging when the prod environment is down
- Better team understanding of how to debug in production
If we were to stop using the debugger today, what tools would you use to improve code quality?