You've seen them. Those really big view models that take on far too much responsibility. They send messages to other view models, they call services, and they run business logic. It's really hard to understand how these things work, and even harder to avoid breaking them when they need to change.
See how the message bus pattern -- far from its original intent -- is actually coupling your view models. See why business logic always seems to end up in the wrong layer. And most importantly, learn a better alternative.
Writing clean view models is easy, but only if you have the tools to help you.