Ask HN: What's a good business model for selling standalone software?
Hello all!

We are selling standalone boring, mainly desktop (although it runs on beefier laptops as well) software. It's for Windows and written in boring technologies (C99 for the engine and C# for GUI).
We are considering various business models when it comes to selling it in the future as our current one causes a lot of problems. Some options and thoughts I have about them right now:

1)What I call a "classical model" which we tried so far: release 1.0 version, sell it for a fixed price. Continue to support it for a while with bugfixes/features. At some point move to developing 2.0 version, sell it again (giving discounts for current 1.0 customers).

Advantages: simple, the customers can use software they purchased forever

Disadvantages: at some point you need to start collecting features/development for the next version. This means you will not be shipping new things for a while and "sit" on developments in house. This creates numerous problems, the most severe are: I)you are releasing all the new things at once making the release period hell as all the bugs/suggestions/problems hit you at one point in time and II) you can't give customers what they want/need immediately even if they want to pay for it right now as you need a significant improvements for the next version. III) You don't get quick feedback from the customers (only from testers which will always be less complete) about the things you are working on. It may turn out you have spent a few months working on something people don't really want or they want it in a different way.

2)Pure subscription.

Advantages: I)Everyone is on the newest version all the time II)Everyone can cancel/renew at any point III)Incentives aligned: developers can ship new stuff immediately, no reason to sit on new developments

Disadvantages: you can't purchase software and "own it". I like the idea that software once purchased can be run in 3-5-10 years from now and it's not developers' business when/how you choose to run it.

3)Some mix of the above. For example one time purchase and then subscription for updates.

Potential problems:

I)Difficult to determine what happens to people who cancel subscription (do they get the latest version at the time - that's difficult to support, what they need to pay if they renew in a few months?)

II)What happens when someone want to jump from subscription to one-time payment + updates?

III)It's seems to be recipe for a situation where there are 100s of "current versions" people are running and that's very difficult to support. It would be nice if everyone is on a newest one (or some ancient one that doesn't need support anymore).

It seems like it's very difficult to choose a business model that let people "own" the software but which also keeps incentives for the developers to ship new developments regularly. I guess that can be worked around with frequent release schedule (so you don't sit on stuff for too long) but that's very difficult to accomplish in a small development team.

I also think in case of various subscription/subscription hybrid ideas it's very important to be very clear about the policy towards people who cancel/want to renew after some time.

Any advice/suggestions are much appreciated!