The purpose of this article is not to claim that MVVM is a bad architecture. Rather, I wish to highlight some of the reasons why I think it leads to confusion among many developers, along with some practical information on how to deal with the awkward separation of concerns that this pattern can present.