this post was submitted on 20 Nov 2025
20 points (91.7% liked)

Programming

23517 readers
272 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
top 9 comments
sorted by: hot top controversial new old
[–] magic_lobster_party@fedia.io 2 points 2 hours ago

More code = more things that must be maintained = more things that can break. It’s natural that development slows down over time. Doesn’t necessarily mean there’s technical debt.

[–] Ludicrous0251@piefed.zip 11 points 6 hours ago (1 children)

Technical debt aside of course the development process looks like that - what's the alternative? Infinite feature growth? No one benefits from that.

As an example, I've got signal on my phone- it started with texting features, added images, calls, video calling, but at some point there's a limit on the number of useful ways to communicate.

I don't need it to be another social network.

I don't need it to tell me my horoscope, order a pizza, or organize my photos.

I don't need it to track my health, play games, read my work emails, or drive my car.

It doesn't need to integrate with VR, or AI, or whatever 2-letter buzz acronym comes up next week.

It's a secure messaging platform, I need it to send messages. Sure, there's always a cat and mouse game of encryption to keep ahead of, but infinite feature growth? It's not practical or necessary. Things can exist to do one thing reliably and well.

[–] Vincent@feddit.nl 3 points 6 hours ago

I'm very happy they've got polls now though, that'll streamline a lot of communication. Live location sharing would be good too.

[–] falseWhite@lemmy.world 27 points 8 hours ago* (last edited 8 hours ago) (1 children)

So basically refactor old features and code to remove tech debt before starting work on new features, so it's easier to implement them.

Developers always knew that. PMs always hated that.

[–] calliope@retrolemmy.com 10 points 7 hours ago

Refactoring is great, but there’s more.

The larger a project is or the busier developers are, the harder it is to become acclimated to parts of the code, too.

There are a few more examples from the article:

Bugs pile up. The build slows. Backwards compatibility imposes its own tax on progress. Original team members move on, while new members take time to acclimate.

He doesn’t mention this, but it also takes time to re-acclimate yourself to things you wrote six months ago. Good code and tests help but developers are human beings.

[–] NABDad@lemmy.world 5 points 8 hours ago (2 children)

Maybe I'm not looking deep enough into the question, but wouldn't this be because we do the easy parts first?

[–] Bronzebeard@lemmy.zip 2 points 4 hours ago* (last edited 4 hours ago)

It's easy to connect two features together.

It's a lot harder to get a new feature to interact properly with 30 existing features. If you have to change one thing about an existing feature to get it to work, you now have to look at how the other 29 deal with that change too. And any changes to accommodate that change also could require their own changes in those 29... And it cascades.

[–] falseWhite@lemmy.world 8 points 8 hours ago* (last edited 8 hours ago)

Did you read the article?

More features = more tech debt = slower development.

Refactor code to get rid of tech debt to speed up the development again.

[–] MonkderVierte@lemmy.zip 3 points 7 hours ago

Because each feature is a cost.