Ho un programma che viene usato dai clienti per fare del lavoro computazionale. E quanto tempo ci vuole dipende sempre da quanti dati i clienti vogliono calcolare. Alcuni clienti hanno pochi dati, alcuni ne hanno molti (una quantità maggiore di clienti ha dati più piccoli, ma una volta con dati più grandi sono più ricchi). È possibile creare una versione scalabile di quel software, ma ciò ovviamente avrà un costo da implementare e il prezzo del software aumenterebbe. Il marketing naturalmente vorrebbe avere diverse opzioni, come per i clienti che hanno molti dati e possono pagare, suggerirebbero una versione più estesa, che supporta il ridimensionamento. Per gli altri, vorrebbero proporre una versione più economica, che richiederà più tempo.
Ma dal punto di vista dello sviluppo, si tratta di una specie di 2 versioni diverse della stessa cosa. E quindi se qualcosa è implementato (come una nuova finestra di dialogo), dovrebbe essere implementato in entrambe le versioni. Alcune parti, ovviamente, possono essere riutilizzate, ma alcune potrebbero richiedere un lavoro speciale (perché l'accesso ai dati è implementato). Quindi sembra che una versione sarebbe molto più economica dal punto di vista dello sviluppo. Sarebbe facile soddisfare le richieste di marketing costruendo la versione 2, dove 1 ha una possibilità di scalling illimitata, un'altra non ce l'ha (assumendo che sia possibile avere una variabile per quello). Ma piuttosto che dare il peggior programma ai clienti più poveri, solo perché non ne hanno davvero bisogno.
Esiste un po 'di pratica su come questo tipo di versioni è fatto e che cosa è un ragionamento che lo fa? Come se avessi Windows per desktop e Windows per server, la versione desktop avrà limiti su quanti utenti possono connettersi ecc.