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

But "technical debt" may also means he didn't do it in your preferred way. This double meaning really bothers me. It's like technical debt.



I’ve become more aware (again?) lately of the differences between ugly code and debtful code.

When hunting down a bug in bad code every method you read becomes a honey trap. It could be here, so you have to stop and grok this messy pile and that mental gymnastics removes parts of the todo list from your working memory. You pingpng around and when you find the problem you can’t remember why you were looking for it.

Then there’s code where you say “ugh”, take a breath and keep going.

If the smell doesn’t rise to the point of potential confusion about the purpose or goals of the code, if it’s a small inefficiency you can’t (yet) spot in the flame charts, then move on to bigger issues.

That said, I’ve paired to debug with people who defend their bad variable naming choices and the source of their problem was that their own code (and bad naming) confused them. You make them rename and they see the problem immediately.


The idiom that always comes to mind for me is "good fences make good neighbors."

In the long run ugly lines of code are so much better than a broken architecture or too much coupling.


True. If the blast radius is small it only matters if you see the same three lines of code in twenty places.


They aren't just giving in to your tastes?


There are so many things that could go wrong in delivering a piece of code. Just the ones I've seen enough times to build rules of thumb about exceeds my own powers of recall. And some people reliably trip over certain failure modes, while others avoid them subconsciously, never even realizing there was a hazard to begin with.

My new motto is: filter out the reversible decisions and worry about the rest. When something in the former set breaks, make it a teachable moment.


Yes, one must be able to discern between technical debt and taste.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: