Proposed better title ideas (to remove the first few paragraphs, meandering and time-stealing):
enemyship with tech debt now over, now fighting cognitive load
move over tech debt, cognitive load is the true enemy
tech debt is a subset of cognitive load
why it's so much worse than just tech debt
Sietsebb
A very thoughtful article. Recommended.
I'd like to describe it a little, because the title does not do it justice (as Uwe, the author acknowledges). My description is deliberately loose in places; I’ll mark those with (*). Also, I’m only summarizing the questions and structure; do read the article for the answers.
So the author starts from technical debt, and after finding ‘what is it?’ a somewhat fruitless approach, asks ‘what does it do?’(*)
What does technical debt do? It hurts.(*) Very well, how does it hurt? So they get a bit more specific about how the hurt manifests — and then they turn around.
‘These painful things,’ they ask, ‘what else causes them?’ Suddenly the little branching tree of ‘technical debt causes X, which causes Y and Z’ acquires a fan of roots.
They spend some time looking at some of the new roots of the problem tree — in detail, and concretely, like the rest of the essay. And then they note that discussing TD often crowds out these other topics.
Which brings us to the final sections, titled ‘Why do we limit our perception?’ and ‘Now what?’
By now you probably know whether the article will interest you. I personally recommend it, but I said so already :) Bedtime, logging off now. Good night!
adam_d_ruppe
I first misread the title as "Forgive" technical debt, which I'd be coming in like "omg yes" (for that, I'd just accept some things are not going to change and close as won't fix. like with the finance analogy, if you have a 1% loan... probably not worth paying that off early, just let the debt ride as long as possible and you actually end up ahead!).
But nope, that's not the title, the content is more about giving a reasonable definition and getting to causes. Pretty decent article overall, I agree with focusing on the result. The way I like to define tech debt is something you pay interest on; a decision that leads to additional ongoing effort in the long run, and this article being even more specific with "implementation effort creep" and "runtime stability detoriation" are solid. I'd add that it is really important to remember the users' time, not just development or operations or whatever.
However, I do have one point I want to push back on. The author lists one cause of tech debt as:
Extremely tight deadlines forcing developers to compromise quality
Certainly true sometimes, but tbh my experience has often been the opposite: extremely loose deadlines letting developers goof around with experimental toys or architecture astronaut nonsense and other symptoms of second system syndrome leading to a monstrosity you have to deal with later. The text mentions "overly complex architectures" and "poorly written requirements", but frankly, giving developers more time has a decent chance of making this worse, not better.
It is so important to remember the users. Software is supposed to help other people do their job. Management needs to take an active role to keep the developers on target and keep up the tight feedback loop with reality. https://www.youtube.com/watch?v=NnP5iDKwuwk
martinald
Great read. A lot of technical debt I've seen is really "product pivots" of various intensity.
Eg, product A sets out to do X. Turns out that users actually don't like X but really engage with one particular feature.
So you start building for that feature. But it doesn't map well to the data model of your product. You ship a load of hacks to get it working. Before you know it you've got a load of "technical debt".
A classic one I see is when someone builds a product, then it ends up that it doesn't get much direct traction, but people want to whitelabel it.
This is why I really like the cognitive load part of the article. Dealing with a whitelabeled platform with probably some level of customisation for some clients for me at least adds a whole new dimension of cognitive load. Everything gets n times more difficult (testing, releases, etc).
Corbin
I think that the author wandered a little. Technical debt is measured in lines of code. We can estimate how much technical debt our employers have accrued by estimating how much code they claim to own and manage.
mighmi
Proposed better title ideas (to remove the first few paragraphs, meandering and time-stealing):
enemyship with tech debt now over, now fighting cognitive load
move over tech debt, cognitive load is the true enemy
tech debt is a subset of cognitive load
why it's so much worse than just tech debt
Sietsebb
A very thoughtful article. Recommended.
I'd like to describe it a little, because the title does not do it justice (as Uwe, the author acknowledges). My description is deliberately loose in places; I’ll mark those with (*). Also, I’m only summarizing the questions and structure; do read the article for the answers.
So the author starts from technical debt, and after finding ‘what is it?’ a somewhat fruitless approach, asks ‘what does it do?’(*)
What does technical debt do? It hurts.(*) Very well, how does it hurt? So they get a bit more specific about how the hurt manifests — and then they turn around.
‘These painful things,’ they ask, ‘what else causes them?’ Suddenly the little branching tree of ‘technical debt causes X, which causes Y and Z’ acquires a fan of roots.
They spend some time looking at some of the new roots of the problem tree — in detail, and concretely, like the rest of the essay. And then they note that discussing TD often crowds out these other topics.
Which brings us to the final sections, titled ‘Why do we limit our perception?’ and ‘Now what?’
By now you probably know whether the article will interest you. I personally recommend it, but I said so already :) Bedtime, logging off now. Good night!
adam_d_ruppe
I first misread the title as "Forgive" technical debt, which I'd be coming in like "omg yes" (for that, I'd just accept some things are not going to change and close as won't fix. like with the finance analogy, if you have a 1% loan... probably not worth paying that off early, just let the debt ride as long as possible and you actually end up ahead!).
But nope, that's not the title, the content is more about giving a reasonable definition and getting to causes. Pretty decent article overall, I agree with focusing on the result. The way I like to define tech debt is something you pay interest on; a decision that leads to additional ongoing effort in the long run, and this article being even more specific with "implementation effort creep" and "runtime stability detoriation" are solid. I'd add that it is really important to remember the users' time, not just development or operations or whatever.
However, I do have one point I want to push back on. The author lists one cause of tech debt as:
Extremely tight deadlines forcing developers to compromise quality
Certainly true sometimes, but tbh my experience has often been the opposite: extremely loose deadlines letting developers goof around with experimental toys or architecture astronaut nonsense and other symptoms of second system syndrome leading to a monstrosity you have to deal with later. The text mentions "overly complex architectures" and "poorly written requirements", but frankly, giving developers more time has a decent chance of making this worse, not better.
It is so important to remember the users. Software is supposed to help other people do their job. Management needs to take an active role to keep the developers on target and keep up the tight feedback loop with reality. https://www.youtube.com/watch?v=NnP5iDKwuwk
martinald
Great read. A lot of technical debt I've seen is really "product pivots" of various intensity.
Eg, product A sets out to do X. Turns out that users actually don't like X but really engage with one particular feature.
So you start building for that feature. But it doesn't map well to the data model of your product. You ship a load of hacks to get it working. Before you know it you've got a load of "technical debt".
A classic one I see is when someone builds a product, then it ends up that it doesn't get much direct traction, but people want to whitelabel it.
This is why I really like the cognitive load part of the article. Dealing with a whitelabeled platform with probably some level of customisation for some clients for me at least adds a whole new dimension of cognitive load. Everything gets n times more difficult (testing, releases, etc).
Corbin
I think that the author wandered a little. Technical debt is measured in lines of code. We can estimate how much technical debt our employers have accrued by estimating how much code they claim to own and manage.
Proposed better title ideas (to remove the first few paragraphs, meandering and time-stealing):
A very thoughtful article. Recommended.
I'd like to describe it a little, because the title does not do it justice (as Uwe, the author acknowledges). My description is deliberately loose in places; I’ll mark those with (*). Also, I’m only summarizing the questions and structure; do read the article for the answers.
So the author starts from technical debt, and after finding ‘what is it?’ a somewhat fruitless approach, asks ‘what does it do?’(*)
What does technical debt do? It hurts.(*) Very well, how does it hurt? So they get a bit more specific about how the hurt manifests — and then they turn around.
‘These painful things,’ they ask, ‘what else causes them?’ Suddenly the little branching tree of ‘technical debt causes X, which causes Y and Z’ acquires a fan of roots.
They spend some time looking at some of the new roots of the problem tree — in detail, and concretely, like the rest of the essay. And then they note that discussing TD often crowds out these other topics.
Which brings us to the final sections, titled ‘Why do we limit our perception?’ and ‘Now what?’
By now you probably know whether the article will interest you. I personally recommend it, but I said so already :) Bedtime, logging off now. Good night!
I first misread the title as "Forgive" technical debt, which I'd be coming in like "omg yes" (for that, I'd just accept some things are not going to change and close as won't fix. like with the finance analogy, if you have a 1% loan... probably not worth paying that off early, just let the debt ride as long as possible and you actually end up ahead!).
But nope, that's not the title, the content is more about giving a reasonable definition and getting to causes. Pretty decent article overall, I agree with focusing on the result. The way I like to define tech debt is something you pay interest on; a decision that leads to additional ongoing effort in the long run, and this article being even more specific with "implementation effort creep" and "runtime stability detoriation" are solid. I'd add that it is really important to remember the users' time, not just development or operations or whatever.
However, I do have one point I want to push back on. The author lists one cause of tech debt as:
Certainly true sometimes, but tbh my experience has often been the opposite: extremely loose deadlines letting developers goof around with experimental toys or architecture astronaut nonsense and other symptoms of second system syndrome leading to a monstrosity you have to deal with later. The text mentions "overly complex architectures" and "poorly written requirements", but frankly, giving developers more time has a decent chance of making this worse, not better.
It is so important to remember the users. Software is supposed to help other people do their job. Management needs to take an active role to keep the developers on target and keep up the tight feedback loop with reality. https://www.youtube.com/watch?v=NnP5iDKwuwk
Great read. A lot of technical debt I've seen is really "product pivots" of various intensity.
Eg, product A sets out to do X. Turns out that users actually don't like X but really engage with one particular feature.
So you start building for that feature. But it doesn't map well to the data model of your product. You ship a load of hacks to get it working. Before you know it you've got a load of "technical debt".
A classic one I see is when someone builds a product, then it ends up that it doesn't get much direct traction, but people want to whitelabel it.
This is why I really like the cognitive load part of the article. Dealing with a whitelabeled platform with probably some level of customisation for some clients for me at least adds a whole new dimension of cognitive load. Everything gets n times more difficult (testing, releases, etc).
I think that the author wandered a little. Technical debt is measured in lines of code. We can estimate how much technical debt our employers have accrued by estimating how much code they claim to own and manage.
Proposed better title ideas (to remove the first few paragraphs, meandering and time-stealing):
A very thoughtful article. Recommended.
I'd like to describe it a little, because the title does not do it justice (as Uwe, the author acknowledges). My description is deliberately loose in places; I’ll mark those with (*). Also, I’m only summarizing the questions and structure; do read the article for the answers.
So the author starts from technical debt, and after finding ‘what is it?’ a somewhat fruitless approach, asks ‘what does it do?’(*)
What does technical debt do? It hurts.(*) Very well, how does it hurt? So they get a bit more specific about how the hurt manifests — and then they turn around.
‘These painful things,’ they ask, ‘what else causes them?’ Suddenly the little branching tree of ‘technical debt causes X, which causes Y and Z’ acquires a fan of roots.
They spend some time looking at some of the new roots of the problem tree — in detail, and concretely, like the rest of the essay. And then they note that discussing TD often crowds out these other topics.
Which brings us to the final sections, titled ‘Why do we limit our perception?’ and ‘Now what?’
By now you probably know whether the article will interest you. I personally recommend it, but I said so already :) Bedtime, logging off now. Good night!
I first misread the title as "Forgive" technical debt, which I'd be coming in like "omg yes" (for that, I'd just accept some things are not going to change and close as won't fix. like with the finance analogy, if you have a 1% loan... probably not worth paying that off early, just let the debt ride as long as possible and you actually end up ahead!).
But nope, that's not the title, the content is more about giving a reasonable definition and getting to causes. Pretty decent article overall, I agree with focusing on the result. The way I like to define tech debt is something you pay interest on; a decision that leads to additional ongoing effort in the long run, and this article being even more specific with "implementation effort creep" and "runtime stability detoriation" are solid. I'd add that it is really important to remember the users' time, not just development or operations or whatever.
However, I do have one point I want to push back on. The author lists one cause of tech debt as:
Certainly true sometimes, but tbh my experience has often been the opposite: extremely loose deadlines letting developers goof around with experimental toys or architecture astronaut nonsense and other symptoms of second system syndrome leading to a monstrosity you have to deal with later. The text mentions "overly complex architectures" and "poorly written requirements", but frankly, giving developers more time has a decent chance of making this worse, not better.
It is so important to remember the users. Software is supposed to help other people do their job. Management needs to take an active role to keep the developers on target and keep up the tight feedback loop with reality. https://www.youtube.com/watch?v=NnP5iDKwuwk
Great read. A lot of technical debt I've seen is really "product pivots" of various intensity.
Eg, product A sets out to do X. Turns out that users actually don't like X but really engage with one particular feature.
So you start building for that feature. But it doesn't map well to the data model of your product. You ship a load of hacks to get it working. Before you know it you've got a load of "technical debt".
A classic one I see is when someone builds a product, then it ends up that it doesn't get much direct traction, but people want to whitelabel it.
This is why I really like the cognitive load part of the article. Dealing with a whitelabeled platform with probably some level of customisation for some clients for me at least adds a whole new dimension of cognitive load. Everything gets n times more difficult (testing, releases, etc).
I think that the author wandered a little. Technical debt is measured in lines of code. We can estimate how much technical debt our employers have accrued by estimating how much code they claim to own and manage.