It should work this way: you spend N months making a useful product that fills a real need, start selling it, and ideally make just enough money to cover the time you spent working on it. As soon as you start selling it and money comes in, you start working on another product. This has flaws though. You have to have the cash up front to pay your own bills for the first N months. And you risk not making up the time you spent.
But what I see happening is worse: people make products that sell, get greedy over the money they can make, and milk that product to death, first by paid upgrades (which isn't inherently unethical) but then turning to subscriptions or free but selling you to ad- or data-companies.