Non è una questione di troppi fattori tanto quanto un problema di computabilità. (La prova di ciò è lasciata allo studente)
Dovrai confrontare un prototipo dell'operazione fondamentale o "kernel" dell'applicazione della tua applicazione.
Questa è esattamente la stessa cosa che fanno gli ingegneri di altri domini.
Se non sai come si presenta il kernel della tua applicazione nella fase di pianificazione, non puoi farlo. Inoltre, non è possibile pianificare un programma, in quanto non si sa quanto lavoro è da completare.
È una di quelle cose con cui l'esperienza aiuta. Potresti essere in grado di trovare un esperto locale che ti dia un preventivo se puoi descrivere il kernel.
Se non riesci a descriverlo ancora, è meglio progettare semplicemente per la scalabilità e scalarla in su o in giù dopo aver ottenuto un prototipo funzionante. (Decidi di non decidere.)
Siti come highscalability.com documentano alcune pratiche del settore per la scalabilità.