Hacker News new | comments | show | ask | jobs | submit login

Better debugging is one of those things that helps one group of developers solve problems they couldn't otherwise solve. Unfortunately, it also allows another group of developers to make a bigger mess before failing under their technical debt.

I have definitely noticed a correlation between developer debugging skills and clean code practices. Obviously, this doesn't mean one is causing the other, but I would love if there was any research looking into this.

It does make me wonder if our time would be better spent finding ways to improve consistency and professionalism in our practices, rather than another new tool to get you out of the mud.




You've basically described the primary difference schools of programming thought. Should programming be the act of taking well-defined/understood requirements, a nice clean environment (and dependencies), careful thought, and producing a program that is correct by construction and has little need for debugging? Or is programming a messy affair of poorly defined requirements, crazy environments, and more exploratory, where debugging would then consume more effort than actual coding?

I believe more in the latter school, though of course, they are both extremes and I'm a moderate. The mud is unavoidable and we might as well build winches to pull ourselves out rather than spend time trying to carefully avoid it.


I haven't really seen such a clean divide. There is definitely a group of developers that prefer building over everything else. This group loves tooling because it enhances their ability to keep adding new things. I also suspect that this group is a product of their environment. They are exceptional at debugging because debugging is the primary way of working. A problem is to be understood and additions made, not changed. Change ruins their understanding.

But even this definition feels too confined. There have been some developers I worked with that must have started out this way and then learned 'engineering' practices. They were all exceptional to work with. I wish more of this group could get to that level. Hence my interest in putting bread crumbs on the path to learning, rather than yet another pill to lose weight fast.


There is definitely a big difference between an inexperienced developer and one who is experienced and follows rigid organization practices. But even these latter people probably debug a lot, you just don't see it from the outside.

Debugging is as close to experimental science as we get in computer science. It is the act of understanding a complex system, and even if we built that system entirely by ourselves (unlikely), it eventually "gets away from us" and takes on a life of its own. It is impossible to understand everything, and debugging is a great way of allowing us to forget details and uncover them later.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: