I think I caused some confusion with the last post.
I'm not opposed to "version 2.0"'s. I fully recognize that there are business constraints on any software development project, and that a lot of times you can't implement functionality that's needed in the time you've been given. So you get the software into a useful state and save the stuff you can't get to for later releases.
No problem with that, we're all in agreement.
But, there's also a finish line with any software development project. A point where it does what you need for it to do. It's functionally complete, and the only way to justify further development is to create tangential features that don't really do much to boost the functionality of the software.. it just adds bullet points for the marketing people to put on the box. You're no longer solving a real problem: you're attempting to turn a final-purchase sale into a subscription.
That's what I don't get.
If you've got a long list of new "features" that truly need to be added, then you need to take a step back, reassess the problem, and figure out where your software fails to solve the problem, and start from scratch (from an infrastructure standpoint... I'm not saying you chuck out all the useful algorithms or recode UIs) for the next generation of the product.