The Priceless Skill of Debugging
Bugs are impossible to avoid when writing software. Software systems of any kind tend to have bugs that need to be fixed on a constant basis. Therefore, as a developer, we need to build smart strategies for how to tackle them and minimize them. Debugging is a skill that a developer can grow with time.
We often dream about working in cool fresh projects and doing “green-field development” where no one has preceded us in writing code. It might be a cool idea, but the reality in software development is that you often end up maintaining your own code or someone else’s. Learning about efficient maintenance of software projects thus becomes very important.
Why is debugging usually so slow?
The first thing the developer needs to check when approaching a bug is to verify that the bug can be reproduced. This process of investigation itself can be very time consuming. Some dreadful bugs can take a complete workday to just detect, and by detecting I mean detecting a way to reproduce the bug.
Even a bug that is easily reproduced can be tough to fix, because there can be multiple factors combined that cause the issue, or that the cause is very hidden and not obvious to someone who hasn’t dealt with that particular part of the code before.
This is also why some bugs stay in production for a long while with no one fixing them. They take time to fix and don’t get prioritized because product owners prefer focusing on new features that bring value…