The Alure of the Infinite Sink
Amazon still does not have Dark Mode. It is 2026. Dark Mode was pioneered Windows Phone 7 in 2010. It's not important! There are other features that are more important than Dark Mode, for whatever reason that might be.
Software is about prioritization.
~
At the start of my career, something often came up when I was interested in solving a problem our software had. I often thought, "What if our software also did this?"
Or more specifically.
"If I added this to our software, is that making it closer to an 'everything doer'?"
"Is it worth adding this over other requests?"
Our software was a CMS. As you can imagine, this thought process happened often. A CMS is something that "publishes things on the internet, for people to find", which is huge in terms of software scope. These were very normal thoughts! I was adamantly against creating another 'everything doer' as it was difficult to market, it was confusing, and likely didn't perform as advertised. It was a terrible way to make software.
Some ideas made the cut, other things did not. Over time, I would say more things made the cut than did not; and this software arguably became worse over time because of feature bloat. It became closer to the 'everything doer' I had dreaded. Claiming to solve all problems, while solving only a few.
Why?
"There's not enough features here. It's too simple. We need reporting. Google forms does this. Excel does this. Etc."
While too much weight on the other side causes users to ignore your software because it's too complex for their specific goal. There's a real learning curve and time is expensive. Many people consider this, the Feature-Value Curve (sometimes called the Product Complexity Curve). People often see this added complexity as paying for something they wont use.
The real kicker, is that whether you focus on simplicity or complexity should primarily funnel into two metrics. Let's call them...
desired user acquisition rate, and the number of active users you want to maintain.
Good software balances this fulcrum; new users see a shallow refreshing pond and want to splash around. Experienced users see a deep reservoir they can dive performatively into as they have thousands of times; they too used to dabble.
As users get deeper into the pool they intimidate new users. The water is so deep how could I ever swim like that?
You want to facilitate their journey through your software, however long that journey may be. Common tactics include gamification of features through slow introduction, and pricing tiers for features that more experienced users may want. These are both excellent approaches.
There's something recently discovered that throws everything into complete chaos. That would be Large Language Models, or AI. This brings up some problems. Namely,
- Features can be added far more quickly than anyone has time to master.
- With this implied mastery, new users wont take the onboarding journey.
Now your development is a turbo sink, your spout pours code into it to fill up the basin of features. You can complete every feature everyone has ever wanted.
Your users are drowning.
Stop giving your users everything you want. Give them instead everything they need.
Amazon, Google, (not Microsoft), and Apple are kings at this.
Get your user through their goal faster.
Do nothing else.
Stop promising your users an infinite sink when all they want is a drain plug.