One hallmark of a lousy app is that it's chock full of features. A good app does one critical and necessary thing well. A pile of features typically does nothing but add clutter and make the app harder to use.
You cannot compete by adding features. You compete by implementing the core capability better than your competitors do.
A plethora of features typically happens for several reasons: (1) The creator of the app doesn't actually know what that single key capability is, so they implement lots of features hoping that one will stick, or (2) The app is unsuccessful, so the creator keeps tacking on more and more fluff in the hopes of stumbling on something people will like, or (3) the creator can't make up their mind about anything (usually because they don't know what's "right"), and every decision they defer becomes an option or another feature.
None of these strategies solve the main problem, however: no communication. Nobody's taken the time to figure out what customers need because the only way to do that is to talk to customers and potential customers. Too many founders skip that step entirely. Instead, they guess, and the ("I have a Great! Idea!) guesses are usually wrong. Successful apps start out with conversations with (potential) customers. That's the only way to discover what they actually need.
I suppose there's a fourth possibility, which I think of as Microsoft Word syndrome. Some moron in Product has decided that people won't upgrade unless there are more and more features in every release, so the clutter accumulates with no real added capabilities. They'll also make specious UI changes while they're at it, making the app even harder to use. I'd be happy to pay for upgrades that fix longstanding bugs and make hard things easier to do, but that never seems to occur to these people. Those bugs never get fixed, which eventually causes me to abandon the product. They are their own worst enemy.
Also, to head off the tiresome "customers don't know what they want" and "customers lie" chestnuts. First, drop the contempt. You will not build a great product if you hold your customers in contempt. Next, don't ask for feature ideas—all that does is get people to make stuff up in order to please you. Instead, ask what problems they need to solve. Learn how they do it now and look for possible improvements. Then, work collaboratively on a solution. Nobody can assess a solution until they have it in their hands, however, so work incrementally and small, release often, and adjust based on feedback. You will all get it wrong more often than not, but that's just part of the process.
The people who fail often follow the waterfall model of one-time, up-front requirements gathering, then building exactly what's specified. Those up-front specifications are never correct. So-called spec-driven development, when based on a single unvalidated idea, will fail. Always.
Discussion about this post
No posts

