Live data from Hacker News

Bad Code Isn’t Technical Debt, It’s an Unhedged Call Option

m3p.co.uk

1–10 of 25 posts

Re: Bad Code Isn’t Technical Debt, It’s an Unhedged Call Option

#5
post #3

Unless you're being paid by the hour or don't care when the product ships, it's always a good idea to just to the simplest implementation that works. Premature prevention of technical debt is the root of all evil.

"The simplest implementation that works" is not the antithesis of "Code without technical debt." For example, code that has not been thoroughly tested can not be said to "work." Likewise, one form of technical debt is code that is not the simplest possible implementation. For example, Dick and Jane each implement their own versions of the same functionality, producing code that is not DRY. This has local simplicity, because Dick and Jane did not need to coördinate their implementations, but it does not have global simplicity.

"Premature prevention of technical debt is the root of all evil."

If you are wittily comparing the reduction of technical debt with optimization, I am confused. Optimization often increases technical debt by adding complexity, so "premature" optimization is a little like buying a call option rather than selling one. The word "premature" gives us an out, of course, but overall I would say that optimization and the reduction technical debt are not isomorphic.

Re: Bad Code Isn’t Technical Debt, It’s an Unhedged Call Option

#7
post #3

Unless you're being paid by the hour or don't care when the product ships, it's always a good idea to just to the simplest implementation that works. Premature prevention of technical debt is the root of all evil.

My experience is the opposite.

The simplest solution is harder and takes longer.

I think easiest or quickest is what is really meant in this formulation, but rarely do either of these result in simplest. I start with the former and strive to iterate towards the latter, because the former starts cheaper but ends up more expensive in the long run.

Simplification is an optimization.

Re: Bad Code Isn’t Technical Debt, It’s an Unhedged Call Option

#8
post #3

Unless you're being paid by the hour or don't care when the product ships, it's always a good idea to just to the simplest implementation that works. Premature prevention of technical debt is the root of all evil.

Unfortunately, in practice the "simplest implementation that works" is understood as the crappiest implementation that seems to work.

IF you are young and naive, you could argue that this was an honest mistake. In every other case, trying to push to a client the "simplest thing that works" it is either professional negligence or borderline fraudulent cost externalization.

Not being paid by the hour is not a valid excuse. It is a symptom of either naivety or shady business practices.

Re: Bad Code Isn’t Technical Debt, It’s an Unhedged Call Option

#9
post #8
post #3

Unless you're being paid by the hour or don't care when the product ships, it's always a good idea to just to the simplest implementation that works. Premature prevention of technical debt is the root of all evil.

Unfortunately, in practice the "simplest implementation that works" is understood as the crappiest implementation that seems to work. IF you are young and naive, you could argue that this was an honest mistake. In every other case, trying to push to a client the "simplest thing that works" it is either professional negligence or borderline fraudulent cost externalization. Not being paid by the hour is not a valid exc…

You're arguing a strawman.

Trying to push to a client the crappiest implementation that seems to work is certainly everything you say that it is - but that's not the same thing as delivering the simplest implementation that works.

Post reply on HN