Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In software I have noticed that the best coders spend a lot of time removing code and the worst coders keep piling crud on top of crud on top of crud.

This is natural, if you think about it. Let's say we have a body of code which fails for an edge case. Without understanding the code too deeply, most programmers can find a way of hacking in special handling for the edge case. This process can repeat for quite some time before a codebase collapses under its own weight.

It takes significantly more brainpower to re-analyze the entire problem and come up with a coherent, elegant solution for the expanded problem definition.



And the thing is, bolting in some code that handles a single edge case most likely takes significantly less time and effort than rethinking the whole approach. And, when you're facing only a single small problem to deal with and don't have reasons to expect that more are coming, would it be justified to redesign a big pile of code just because of a minor issue?


"It depends" :-)


Bolting a tiny bit of code on to deal with an edge case, is an edge case of what I was saying.

Generally the the generalization applies

;)


...which inevitably doesn't happen and cost increases exponentially...

"Technical debt" is a major product killer.




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

Search: