Bad code is kudzu | ✰Vicki Boykis✰ ✰Vicki Boykis✰Tech Blog Essays RSS GitHub About Changes AI Bad code is kudzuSep 1 2026Cultivation of the Vines, Henri MartinKudzu is a plant that was once introduced from East Asia to the eastern United States as a way to combat soil erosion.But, kudzu, once introduced, grows aggressively and can overtake sidewalks, houses, foundations, and even trees.The only way to kill kudzu is to prune it aggressively, as a concentrated strategy enacted together by all the people who live near where the kudzu grows.You know where I’m going with this. An app feature, once added to a codebase, can be extremely hard to remove.Even simple features become very sticky because not only do you have to remove the code, but what’s worse is that people start writing code on top of your code, and before you know it, you are two years deep into an implemented feature no one wants.Deleting code is hard, particularly because it’s a thankless task that usually doesn’t go on promo packets, which is why we end up shipping hundreds of thousands of lines of sparkle emoji magic wand AI features, but deleting code is silent.But in this new era, we must delete code even harder, because if we don’t constantly remove complexity, we are going to drown in generated kudzu slop that overtakes codebases.In the era where it’s easy to add stuff, leave yourself a plan to remove the features you added, particularly since it’s much easier than before, too.For example, in May, I added a feature to add hashtag bubbles to my blog. I’m a millennial, social hashtags are my love language. I thought I would use them all the time, I thought my site visitors would use them all the time to beautifully navigate my sage writings. I used a combination of elegant machine learning techniques.I left it alone for a few months to see if users actually used it in production, and the answer was a resounding no.In my Plausible analytics, they didn’t make the top 30 visited pages for the past 3 months.It’s possible a few folks got something out of them, but it’s not worth maintaining, especially when it’s so easy to put them back in. (This data is since May 1.)So, it’s time to prune the kudzu, in much the same way it was so easy to create. Commit history for this feature is now: - 77e2c5a — Changelog entry - 85000e2 — Move search bar back to the header - 91b6fde — Remove tag sidebar and tag bubbles 💆♀️#engineering culture #ai #software craft← Write for peopleMade with Hugo ʕ•ᴥ•ʔ Bear |
The author posits that complex code management in software development mirrors the problem of kudzu, an aggressive plant that invades and overtakes an area. Just as kudzu requires an aggressive, concentrated strategy from all nearby residents to be eliminated, developers must adopt equally aggressive strategies to manage and remove complexity from codebases. The author argues that once a feature is implemented in a codebase, it becomes highly sticky; removing the code is difficult because new code is often built on top of the existing structure, making the task of deletion a thankless and often overlooked endeavor. This difficulty is compounded by the modern trend of generating vast amounts of code, such as AI-generated features, which risks overwhelming the codebase with complexity if not actively managed.
In the current era where adding new features is relatively easy, developers must proactively establish a plan to remove features they have added, recognizing that this is easier than it was previously. The text provides an example of this principle applied to feature development, noting an instance where a feature involving hashtag bubbles was implemented using machine learning techniques. Upon review using analytics, the author found that this feature did not achieve the desired user engagement, suggesting it was not worth maintaining, especially since the infrastructure to reinstate it is simple. This experience underscores the necessity of evaluating features for their actual utility rather than simply their existence.
The central message is that in the age of rapid feature addition, constantly removing complexity is essential to prevent codebases from being suffocated by generated content. The emphasis is shifted toward disciplined code pruning as a critical practice to combat the accumulation of technical debt and ensure that software remains manageable and efficient. |