I motivi principali dell'utilizzo di MVVM sono Separation of Concerns (SOC) e Single Responsibility Principle (SRP). Poi hai Flessibilità, Manutenzione e Test.
L'obiettivo di MVVM era applicare quanto sopra su WPF. WPF fornisce "plumbing" per consentire un facile utilizzo di MVVM tramite Data Binding.
Per SOC e SRP leggere: Separazione delle preoccupazioni (Wikipedia) e Principio di responsabilità singola (Wikipedia). Ma la base è: alla logica non interessa che il pulsante sia rosso e situato nell'angolo in alto a sinistra. Ci interessa solo l'interfaccia utente.
La flessibilità in questo caso è la capacità che un ViewModel può fornire a diverse viste, oppure una vista può utilizzare diversi ViewModels, che un ViewModel può utilizzare più di un modello e che un modello può essere utilizzato su ViewModel separati.
La manutenzione è una conseguenza di SOC e SRP. È molto più semplice modificare parti del codice o dell'interfaccia utente senza influire su altre sezioni.
Per i test, ora puoi eseguire test automatici della tua logica senza aprire una finestra. Puoi isolare i test e prendere in giro tutto ciò che è necessario (se non del tutto).
Per il proprietario del prodotto ciò che hai da dire è che diventerà più facile apportare modifiche e affermare (test) che l'applicazione si comporta come previsto.
Agli sviluppatori: renderà la tua vita più facile.
Se non stai utilizzando WPF, consulta MVC (Wikipedia) o MVP (Wikipedia)