I have a program that is used by customers to do some computational work. And how long it takes always depends on how much data customer wants to compute. Some customers have a little data, some have a lot (bigger amount of customers have smaller data, but once with bigger data are richer). It's possible to make a scalable version of that software, but that of course will cost to implement, and price of software would rise. Marketing of course would like to have different options, like for customers that have a lot of data and can pay, they would suggest more expansive version, that supports scaling. For others, they would like to suggeest cheaper version, that will take longer.
But from development view, these are kind of 2 different version of same think. And therefore if something is implemented (like new dialog window), it should be implemented in both versions. Some parts of course can be just reused, but some might need special work (because how data access is implemented). So it looks like have one version would be much cheaper from development perspective. It would be easy to fulfill marketing demands by building 2 version, where 1 have unlimited scalling posibility, another don't have that (assuming that it's possible to have some variable for that). But than it feels like giving worst program to poorer customers, just because they don't really really need it.
Is there some practice how this kind of versions are done and what's a reasoning doing that? Like you have windows for desktop and windows for servers, desktop version will have limits how many users can connect etc.