Before anyone even touches "microservices" they should be forced to read Domain-Driven Design. If you do not have a "Bounded Context" and are not splitting your "microservices" by that then you're doing it very wrong.
A lot of the benefits I've seen people using "microservices" to fix what are just horrible design issues in their framework / codebase of choice.