Microservices don't make it any better. They tend to have a lot of implicit contracts that people don't necessarily express well through the API. All it does is give you a boundary that is fuzzy depending on the protocol used to communicate between the services.