Live data from Hacker News

Technical debt is not debt; it’s not even technical

markgreville.ie

141–147 of 147 posts

Re: Technical debt is not debt; it’s not even technical

#141

Well, I did what the author suggested, and wrote down my definition. After a short internal dialog, I came up with this: "Technical debt is the burden that implementation choices may place on future development." Nothing in the article leads me to think that this is either incoherent or irrelevant. With regard to its coherence, I say that it is empirically verified: it actually happens! The claim that it is not techn…

> Arguing over dictionary definitions is not going to lead to anything useful in this matter.

> If we are going to be pedantic

The whole article was about going to be pedantic over dictionary definitions.

"Now, one major concern in academia is rigor. Academics like to get deep into a topic, examine the nuances, and bring clarity."

I suppose it's hard to argue against that words in "technical debt" were chosen poorly: it's not debt and it's not technical.

Maybe better definition is needed.

Re: Technical debt is not debt; it’s not even technical

#142
post #15

Technical debt is when you effectively borrow your future self's time and effort by taking a shortcut now that your future self has to work for to pay for it. It is literally a debt. I dont know what the article is trying to say, it sounds to me like something my boss would say after a 2 hour meeting in a delirious caffeinated state, but thats probably just because I am not familiar with the corporate use of the term…

Sometimes it is not avoidable

Re: Technical debt is not debt; it’s not even technical

#143
The need to maintain or replace / upgrade infrastructure places an obligation (liability) on the owner of the infrastructure to do so.

Perhaps technical liability would be more accurate, but I like the sound of technical debt.

There is always the temptation to say, 'We have made something. It works. Pure asset.' (E.g. concept of passive income.) But it is seldom true over the long term. The debt is almost always there, or will be as the rest of the world moves on and the existing asset needs to be developed or becomes obsolescent.

The trick for asset owners (asset defined as the right to future economic benefits) to profit from an asset is to spend some of the returns from the asset on paying others to maintain and refresh the asset. In this way, the asset owner enjoys the truly passive net benefit.

Infrastructure carries both the attributes of a static, tangible thing (a good) and a service.

I like that the coding world is so conscious of technical debt, and it makes sense: the sector is moving so fast, and the fixes can be applied with access to a skilled problem solver, a computer, access to software and time. The maintenance &/or switching costs are comparatively low in comparison to the benefits.

I think that providers of physical infrastructure could pay more attention. Maintenance contracts and dilapidation reserves do make (small) inroads into acknowledging the ultimate sclerosis that additional large infrastructure introduces to the built environment. But the time scales for its regeneration to a large extent alleviate developers from the obligation to apply a more overarching perspective of the debt it will place on future generations to improve on what has been laid down.

Rather than questioning the term, it should be rolled out more widely.

Re: Technical debt is not debt; it’s not even technical

#144
post #83

Well, I did what the author suggested, and wrote down my definition. After a short internal dialog, I came up with this: "Technical debt is the burden that implementation choices may place on future development." Nothing in the article leads me to think that this is either incoherent or irrelevant. With regard to its coherence, I say that it is empirically verified: it actually happens! The claim that it is not techn…

Yup. For instance, he mentions interest rate. Why? How is it useful to think about it and precisely define it in this context? Next article: the cloud isn't even a cloud, it isn't made out of small particles of water!

The "interest" is a metaphorical measure of how sustainable your situation is, and how urgently you need to address the "principal".

If you incur technical debt as a mismatch between your codebase and your requirements (owing to the evolution of requirements) initially you may just be able to work around the mismatch, but it starts to incur "extra" work - this has been called the "interest" in the extended metaphor. Everything you do that isn't addressing the mismatch keeps adding to the debt though, so eventually the "interest" becomes equal to your entire budget and no more forward progress can be made, and typically bankruptcy is called (give up on code base, propose rewrite to address the actual requirements) and the cycle starts again.

Re: Technical debt is not debt; it’s not even technical

#145

Earlier quoted context omitted.

There are two quotes from Cunningham in there: A little debt speeds development so long as it is paid back promptly with a rewrite. Objects make the cost of this transaction tolerable. The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. >> Cunningham disliked the notion that technical debt signified “doing a poor job now and a better one later.” T…

I am someone else who apparently never understood what technical debt was supposed to mean. I've always assumed engineers (myself included) write code to the best of their abilities to solve a given problem at the time. But we all know that, over time, features and such get added to the code base and it is stretched beyond what it was originally meant to do. That the code base would should be refactored to better acc…

Writing code to the "best of your ability" is something I've seen create a lot of problems because after you get about 75% done you probably realize how to do it better, and that happens repeatedly. In extreme cases I've seen mid-project framework changes multiple times.

Writing code that isn't great but works in order to ship a product in a timely manner incurs technical debt because you may have to do more work in the future to fix it once it is in use. But ideally your project is generating real income on that technical debt so it's probably better to have something to works right now vs something that's going to be perfect when it's done, eventually.

Re: Technical debt is not debt; it’s not even technical

#146
post #105

Well, I did what the author suggested, and wrote down my definition. After a short internal dialog, I came up with this: "Technical debt is the burden that implementation choices may place on future development." Nothing in the article leads me to think that this is either incoherent or irrelevant. With regard to its coherence, I say that it is empirically verified: it actually happens! The claim that it is not techn…

"...everything we do that is 'technical' has ... consequences that go beyond the technical: The mere fact that most of the technical things we choose to do are done for non-technical reasons is enough to establish that." Aha! But people do things just for technical reasons that don't affect the users in any way. One could claim that just refactoring code without changing anything is a "purely technical" exercise. Wha…

The examples you give look more like inefficient resource (developer time) allocation - AKA Yak Shaving - rather than technical debt.

Nevertheless, people doing things for just technical reasons does sometimes create technical debt, as when doing so over-complicates the implementation to no observable end. So? If anything, these cases stand as counter-examples to the author's argument that technical debt is not technical.

Re: Technical debt is not debt; it’s not even technical

#147
post #3

I agree with general sentiment that people mean different things by "technical debt" but don't buy the argument for the title. Article says: "Debt repayment has three properties that are straightforward to grasp — principal amount, interest rate, and term [...] when comparing technical debt, there is no agreement on the principal, [...] there is no concept of an interest rate [...] , term length isn’t a fixed concept…

Bankruptcy metaphor is applicable too: when enough debt accumulates, all the capable engineers start leaving the team, and newly hired once never stay for long. The project will either get scraped as unsuccessful, or rewritten/replaced with another one.

This is why it is important to refactor dangerous system deficiencies sooner. If tech debt takes 2 weeks to clean, one can always squeeze that into the plans. If tech debt takes 1 year to clean, it is nigh impossible to persuade the business give that much time.

Post reply on HN