I’d argue Kudzu has visibility bias. It grows on sunny roadsides, railway corridors, and disturbed land. Basically all the places where people see it so attribute it to being more pervasive than it is. It's also mostly harmless[2].
Bad code is the inverse. It’s more pervasive than people think it is and builds up precisely in the places that are not disturbed. More like Privet than Kudzu. But that isn’t nearly as catchy.
If you want to dig into the quasi redemption story of why Kudzu isn’t this terrible evil we’ve given it to this was a decent episode of 99%PI at around the 18 minute mark[1].
Bad code as an invasive species is the freshest take I've heard. I have a hard enough time arguing with people that tech debt isn't about bad code, but shifting priorities and requirements. This is going to be a really useful analogy for me going forward, thanks!
show comments
YuechenLi
I thought we solved the kudzu problem by having goats graze on them and rip them out by the roots, right? So maybe we should set goats on legacy git repos as well.
show comments
omoikane
Coincidentally, the same plant in Japanese is kuzu (クズ, or 葛), which shares the same pronunciation as the word for trash (屑). So bad code is trash.
I’d argue Kudzu has visibility bias. It grows on sunny roadsides, railway corridors, and disturbed land. Basically all the places where people see it so attribute it to being more pervasive than it is. It's also mostly harmless[2].
Bad code is the inverse. It’s more pervasive than people think it is and builds up precisely in the places that are not disturbed. More like Privet than Kudzu. But that isn’t nearly as catchy.
If you want to dig into the quasi redemption story of why Kudzu isn’t this terrible evil we’ve given it to this was a decent episode of 99%PI at around the 18 minute mark[1].
[1] https://99percentinvisible.org/episode/roman-mars-describes-...
[2] https://www.smithsonianmag.com/science-nature/true-story-kud...
Bad code as an invasive species is the freshest take I've heard. I have a hard enough time arguing with people that tech debt isn't about bad code, but shifting priorities and requirements. This is going to be a really useful analogy for me going forward, thanks!
I thought we solved the kudzu problem by having goats graze on them and rip them out by the roots, right? So maybe we should set goats on legacy git repos as well.
Coincidentally, the same plant in Japanese is kuzu (クズ, or 葛), which shares the same pronunciation as the word for trash (屑). So bad code is trash.
Interesting Kudzu discussion on HN in 2024:
https://news.ycombinator.com/item?id=41780229
> as a way to combat soil erosion
I heard it differently. I heard that it was imported for aesthetic reasons (like starlings).
Nasty stuff. We're starting to see it up here, in New York. I remember it well, from Maryland.
Yay climate change!
I often "hit the reset button" on projects. It used to be waiting until the pain was great enough, but LLMs make it a lot easier.
The hardware auto-detection tool in Red Hat Linux was also called Kudzu, before udev times: https://fedoraproject.org/wiki/Anaconda/Features/NoMoreKudzu
This is a wonderful analogy.
The cost of the code should be weighed against its benefits; at design review, code review, and launch review.