A good piece of software exists and is enjoyed by many users. It's basically done and development has slowed down, but it nevertheless continues to be useful to its users.

Later, a new piece of software enters the same market to solve the same $task. It has to rewrite everything from zero, which may take years. As they make improvements over the years, each announcement keeps them on top of the news cycle, with each inch they move towards the finish line.


$newproduct erodes the mindshare from $oldproduct. It has been present at the forefront of the public's minds and quickly gains marketshare, and users who were familiar with $oldproject prior to the introduction of $newproject start to age out of the market.

This happens even if $oldsoftware is free/open-source and $newsoftware is proprietary, if $newsoftware is missing important features of $oldsoftware, if $newsoftware is a gear in the capitalist machine and will eventually spit its chewed up users out when they get sold to the highest bidder, etc.

I should probably put some more thought into this and format it as a blog post

On the other hand it can basically be read as a playbook for disrupting open source

@sir yeah? However open source can make waves not only with new features and closing in on 100% feature-complete. I feel like I've often found out about stable projects because someone somewhere found a new way to use one, built a plugin for something etc, which gives them newsworthiness again as well.

@sir it read to me more like a playbook for disrupting anything


Eventually, tech debt accumulates to a point, the piece of software becomes so bloated, someone go and rebuild from scratch. Software with a large user base AND large set of features are very prone to this phenomenon

@ninja this *can* happen, but it's not the only fate for software

@sir There just isn’t enough money in open source. It’s an economic problem.

Software below the poverty line

@sir I think in almost all cases I’ve seen this happen it’s because the original project stagnated rather than reaching completion. The last few cases seem to be some variation of a developer placing a stick in the mud for their pet feature set while the requirements of the users move on.

I know your last post touched on projects being done, but how do you handle the case where the scope slowly shifts over time? When is it allowed to add new features or delete old ones?

This is exactly where I'm at with Sublime Text and Visual Studio Code. Things are flipped because Sublime Text licensing costs money (and I've been happy to support them with 2 and 3) but VS Code is knocking it out of the park, and is Open Source. But *Microsoft*...

However $newsoftware sometimes comes along and solves problems that $oldsoftware wouldn'taddress, e.g. slack Vs IRC. Since moving to slack and telegram, I turned off IRC and never went back

@sir this reminds me of another situation I call The macOS Programming Problem:

Building a Rails app on macOS required figuring out how to install Postgres, Homebrew, etc. On Debian it was a routine apt-get. Much was written about setting up a Rails env for macOS; none for Debian.

When I asked people why they bought MacBooks, they explained that at least someone had figured out how to do Rails dev on it, unlike Debian.

Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!