Tecnicamente, non importa.
Guarda Netflix. Quanti prodotti vedi? Solo uno. Eppure, Netflix è un conglomerato di dozzine di servizi che possono essere sviluppati e distribuiti indipendentemente, utilizzando uno stack tecnologico indipendente.
Ora guarda un sito web SquareSpace casuale. E poi sceglierne un altro. Possono non avere nulla in comune. Due prodotti diversi, utilizzando due diversi set di funzionalità. E ancora, il codice di programmazione sottostante è lo stesso per entrambi.
Quindi, se la domanda non è tecnica, cos'è e, cosa più importante, chi decide?
Il punto attuale è come presentare il prodotto a un cliente. Potrebbe avere senso presentare una serie di funzionalità come un singolo prodotto. Oppure potrebbe essere più utile presentare il sistema come più prodotti.
Porta Microsoft Office. Codice condiviso (eccetto Excel), più prodotti. Hai PowerPoint e hai Word, non perché sarebbe tecnicamente impossibile combinare entrambe le funzionalità di un editor di testo e un editor di presentazione in un unico prodotto software, ma piuttosto perché gli utenti non capirebbero come utilizzare tale prodotto (secondo Microsoft ).
Ora considera Visual Studio. Se scrivo codice C # per le applicazioni server, e questo è tutto ciò che faccio, non mi interessa davvero Visual Basic, F # o C ++. E non mi interessa nemmeno Silverlight, WPF o Windows Form. Tuttavia, è tutto in Visual Studio, in una forma di funzionalità. Tutto in un posto. Un punto interessante è che non è sempre stato così. Negli anni novanta, dovevi installare IDE diversi per lingue diverse: se hai usato due lingue, hai finito con Microsoft Visual Basic e Microsoft Visual C ++ sul tuo computer.
Pertanto, la decisione spetta esclusivamente al marketing. Una volta presa la decisione, spetta a te sviluppare il prodotto software in modo da garantire una sufficiente coesione tra le parti del sistema ed evitare la duplicazione del codice.